Використовуючи стек source_gen для створення генератора коду, як я можу зробити генератор, який генерує код, який був би входом іншого генератора (точніше json_serializable
)?
Наприклад, врахуйте:
class Example extends Generator {
@override
String generate(LibraryReader library, BuildStep buildStep) {
return '''
@JsonSerializable(nullable: false)
class Person {
final String firstName;
final String lastName;
final DateTime dateOfBirth;
Person({this.firstName, this.lastName, this.dateOfBirth});
factory Person.fromJson(Map<String, dynamic> json) => _PersonFromJson(json);
Map<String, dynamic> toJson() => _PersonToJson(this);
}
''';
}
}
Це приклад генератора коду, який виводить код, який потім потрібно надіслати json_serializable
Що я можу зробити, щоб json_serializable
тут генерувались правильно?
await Process.start('bash',arguments,runInShell: true);
але це начебто в крайньому випадку. насправді я просто спробував усі логіки генерування коду один день тому на цьому посиланні на репо, так що ... я думаю, я можу бути корисним.
flutter generate
/ pub run build_runner build
. Інакше це було б дуже незвично у використанні.