build method

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

Runs the GraphLink code generator for the current BuildStep.

Reads all .graphql / .graphqls files under lib/, parses the merged schema, and writes generated Dart files to outputDir.

Implementation

@override
Future<void> build(BuildStep buildStep) async {
  final now = DateTime.now();
  await initAssets(buildStep);

  // Merge any unknown string options into type mappings (custom scalars).
  options.config.entries
      .where((e) => e.value is String && !_knownOptions.contains(e.key))
      .forEach((e) => typeMappings[e.key] = e.value as String);

  final config = _buildConfig();
  final grammar = createGrammar(config);

  final schema = await readSchema(buildStep);
  grammar.parse(schema);

  await generateDartClientClasses(grammar, config, now);
}