Używając stosu source_gen do stworzenia generatora kodu, jak mogę stworzyć generator, który generuje kod, który byłby wejściem innego generatora (a dokładniej json_serializable
)?
Rozważ na przykład:
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);
}
''';
}
}
To jest przykład generatora kodu, który generuje kod wyjściowy, który należy następnie wysłać json_serializable
Co mogę zrobić, aby json_serializable
poprawnie generować tutaj?
await Process.start('bash',arguments,runInShell: true);
ale jest to rodzaj ostateczności. właściwie próbowałem już całą logikę generowania kodu jeden dzień temu na tym linku repo, więc .. Myślę, że mogę być pomocny.
flutter generate
/ pub run build_runner build
. W przeciwnym razie użycie tego byłoby bardzo nietypowe.