box_generator 0.3.0

Dart native

A registry generator for using Box without mirrors

Dart Box Generator #

Generates Box bindings for @entity annotated classes.

Setup #

Add dev dependencies build_runner and box_generator to pubspec.yaml:

dev_dependencies:
    build_runner: <version>
    box_generator: <version>

Usage #

Annotate the class you want to generate Box bindings for and add the generated file as a part. Add a constructor with named parameters.

import 'package:box/box.dart';

part 'employee.g.dart';

@entity
class Employee {
  @key
  final String id;
  final String name;

  Employee({this.id, this.name});
}

You can customize serialization by adding a fromJson constructor and a toJson method.

Employee.fromJson(Map<String, dynamic> json) : this(
    id: json['id'],
    name: json['name'],
);

Map<String, dynamic> toJson() => {
    'id': id,
    'name': name,
};

Whenever you make a change to an annotated class, execute:

pub run build_runner build

Now you can any Box implementation as follows:

var registry = Registry()..register(Employee$BoxSupport()));
var box = MemoryBox(registry);
0
likes
50
pub points
13%
popularity

A registry generator for using Box without mirrors

Repository (GitHub)
View/report issues

Uploader

stijn.van.bael@appify.be

License

MIT (LICENSE)

Dependencies

analyzer, box, build, source_gen

More

Packages that depend on box_generator