build method

  1. @override
Future<void> build(
  1. BuildStep buildStep
)

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);
}