chiffondb_generator 0.1.0 copy "chiffondb_generator: ^0.1.0" to clipboard
chiffondb_generator: ^0.1.0 copied to clipboard

Code generator for ChiffonDB Dart annotations. Generates type-safe ChiffonStore extensions from @NodeType and @EdgeType annotated classes.

chiffondb_generator #

Code generator for ChiffonDB Dart annotations.

Generates type-safe ChiffonStore extensions and JSON utilities from classes annotated with @NodeType and @EdgeType.

Installation #

Add to your pubspec.yaml:

dependencies:
  chiffondb: ^0.1.0

dev_dependencies:
  chiffondb_generator: ^0.1.0
  build_runner: ^2.4.0

Usage #

1. Annotate your classes #

import 'package:chiffondb/chiffondb.dart';

part 'my_schema.chiffondb_store.dart';

@NodeType()
class Person {
  @Id()
  final String id;
  final String name;
  final int age;

  const Person({required this.id, required this.name, required this.age});
}

@EdgeType()
class Knows {
  @FromNode()
  final Person from;

  @ToNode()
  final Person to;

  final DateTime since;

  const Knows({required this.from, required this.to, required this.since});
}

2. Run the code generator #

dart run build_runner build

This produces my_schema.chiffondb_store.dart containing:

  • A ChiffonStore class that wraps a Connection and exposes applyAllSchemas().
  • Per-type schema DSL constants ($PersonSchemaDsl, $KnowsSchemaDsl, …).
  • Internal JSON encode/decode helpers.

3. Apply schemas #

final store = ChiffonStore(connection);
await store.applyAllSchemas();

License #

Apache 2.0 — see LICENSE.

Author #

SUZUKI Tetsuya tetsuya.suzuki@gmail.com

0
likes
140
points
38
downloads

Documentation

API reference

Publisher

verified publisherszktty.jp

Weekly Downloads

Code generator for ChiffonDB Dart annotations. Generates type-safe ChiffonStore extensions from @NodeType and @EdgeType annotated classes.

Repository (GitHub)
View/report issues

License

Apache-2.0 (license)

Dependencies

analyzer, build, chiffondb, source_gen

More

Packages that depend on chiffondb_generator