build method

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

Generates the outputs for a given BuildStep.

Implementation

@override
FutureOr<void> build(BuildStep buildStep) async {
  final input = buildStep.inputId;

  final output = AssetId(input.package, 'lib/jsons.dart');

  final pubspecFile = AssetId(input.package, 'pubspec.yaml');

  final yamlRaw = safeCast<YamlMap>(
    loadYaml(
      await buildStep.readAsString(pubspecFile),
    ),
  );

  final config = Config.fromPubspec(yamlRaw ?? YamlMap());
  final resources = createResources(input.package, config);

  final generated = generate(buildStep, resources);

  await buildStep.writeAsString(output, generated);
}