Usando a pilha source_gen para criar um gerador de código, como posso criar um gerador que gere código que seria a entrada de outro gerador (mais especificamente json_serializable
)?
Por exemplo, considere:
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);
}
''';
}
}
Este é um exemplo de um gerador de código que gera o código que precisa ser enviado para json_serializable
O que posso fazer para que seja json_serializable
gerado corretamente aqui?
await Process.start('bash',arguments,runInShell: true);
mas é o último recurso para jogar. na verdade, eu tentei todas as lógicas de geração de código um dia atrás neste link de repo, então acho que posso ser útil.
flutter generate
/ pub run build_runner build
. Caso contrário, seria muito incomum de usar.