realm_generator 0.2.0-alpha.1
realm_generator: ^0.2.0-alpha.1 copied to clipboard
Generates RealmObject classes from Realm data model classes. This package is part of the official Realm Flutter and Realm Dart SDKs.
Description #
Dart code generator that generates RealmObject
classes based on Realm
data model classes using naming conventions.
This package is part of the official Realm Flutter and Realm Dart SDKs https://github.com/realm/realm-dart
Usage #
- Add a dependency to realm package or realm_dart package to your application.
To generate RealmObjects
-
Run
flutter pub run realm generate
for Flutter projects -
Run
dart run realm_dart generate
for Dart projects
Conventions #
-
Every Dart class annotated with
@RealmModel()
and named with an underscore like_ClassName
, is considered a Realm data model class and the code generator will generate aRealmObject
class that can be used with Realm Flutter™ and Realm Dart™. -
The Dart file containg Realm schema classes needs to have a part defintion name in the format
part "filename.g.dart"
.For example: In file
cars.dart
there should be a part definitionpart "cars.g.dart"
-
The underscore in the class name is requried.
class _Car
. -
Every field that references another
RealmObject
must use the schema class name of that RealmObject. For example:class _Car { late _Car secondCar; }
-
The generator will infer the
Realm
type from the Dart type of every property of the class.
Example #
Filename: cars.dart
part "cars.g.dart"
@RealmModel()
class _Car {
late String make; //required field
late String? model; //optional field
String kilometers = 500; //default value
late _Car? secondCar; //Object relationship 1:1
final List<_Car> allOtherCars; //Object relationship 1:Many
}
Debugging #
-
On first use .dart_tool/build/entrypoint/build.dart needs to be generated with pub run build_runer build
-
Use a terminal to launch a debuggee with command
dart --observe --pause-isolates-on-start --enable-vm-service:5858/127.0.0.1 --disable-service-auth-codes .dart_tool/build/entrypoint/build.dart build