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 {
  final now = DateTime.now();
  await initAssets(buildStep);
  options.config.entries.where((element) => element.value is String).forEach((e) {
    map[e.key] = e.value as String;
  });
  var g = GLGrammar(
    typeMap: map,
    generateAllFieldsFragments: options.config["generateAllFieldsFragments"] as bool? ?? false,
    nullableFieldsRequired: options.config["nullableFieldsRequired"] as bool? ?? false,
    autoGenerateQueries: options.config["autoGenerateQueries"] as bool? ?? false,
    defaultAlias: options.config["defaultAlias"],
    operationNameAsParameter: options.config["operationNameAsParameter"] as bool? ?? false,
    identityFields: (options.config["identityFields"] as YamlList?)?.cast<String>() ?? [],
  );

  var schema = await readSchema(buildStep);
  var parsed = g.parse(schema);
  if (parsed is Success) {
    await generateDartClientClasses(
        g,
        GeneratorConfig(
            schemaPaths: [],
            mode: "client",
            identityFields: g.identityFields,
            typeMappings: map,
            outputDir: outputDir),
        now);
  }
}