build method
Generates the outputs for a given BuildStep
.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
await initAssets(buildStep);
options.config.entries.where((element) => element.value is String).forEach((e) {
map[e.key] = e.value as String;
});
var g = GQGrammar(
typeMap: map, generateAllFieldsFragments: options.config["generateAllFieldsFragments"] ?? false);
var parser = g.buildFrom(g.start());
var schema = await readSchema(buildStep);
parser.parse(schema);
final inputs = g.generateInputs();
final enums = g.generateEnums();
final types = g.generateTypes();
final client = g.generateClient();
var dir = Directory(outputDir);
var exists = await dir.exists();
if (!exists) {
await dir.create(recursive: true);
}
await File('$outputDir/$inputsFileName.dart').writeAsString(inputs);
await File('$outputDir/$enumsFileName.dart').writeAsString(enums);
await File('$outputDir/$typesFileName.dart').writeAsString(types);
await File('$outputDir/$clientFileName.dart').writeAsString(client);
}