build method
Generates the outputs for a given BuildStep
.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
// final allFiles = await buildStep.findAssets(_allFilesInLib).toList();
final definitions = await buildStep
.findAssets(_allFilesInLib)
.asyncExpand((input) => _extractGraphQL(input, buildStep))
.toList();
final schemaDocument = DocumentNode(
definitions: definitions,
);
final schema = Schema(
BuiltMap.of({buildStep.inputId: schemaDocument}),
(id) => 'lib/switch.dart',
);
final context = ContextRoot<AssetId>(
schema: schema,
key: buildStep.inputId,
config: GraphQLCodegenConfig(),
);
schemaDocument.accept(ContextVisitor(context: context));
final library = print.printRootContext(print.PrintContext(context));
final formatter = DartFormatter();
final emitter = DartEmitter(useNullSafetySyntax: true);
final generatedCode = library.accept(emitter);
final output = AssetId(
buildStep.inputId.package,
p.join('lib', 'switch.dart'),
);
buildStep.writeAsString(
output,
formatter.format(
"// Generated file, do not modify\n// ignore_for_file: type=lint\n\n${generatedCode}"),
);
}