Utilizzando lo stack source_gen per creare un generatore di codice, come posso creare un generatore che generi codice che sarebbe l'input di un altro generatore (più specificamente json_serializable
)?
Ad esempio, considera:
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);
}
''';
}
}
Questo è un esempio di un generatore di codice a cui emette il codice che deve quindi essere inviato json_serializable
Cosa posso fare in modo che json_serializable
venga generato correttamente qui?
await Process.start('bash',arguments,runInShell: true);
ma è una specie di ultima risorsa da giocare. in realtà ho appena provato tutte le logiche di generazione del codice un giorno fa su questo collegamento repository quindi .. Penso di poter essere utile.
flutter generate
/ pub run build_runner build
. Altrimenti sarebbe molto insolito da usare.