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 outAsset = buildStep.allowedOutputs.single;

  final pubspecYaml = await buildStep.readAsString(buildStep.inputId);
  final pubspec = Pubspec.parse(
    pubspecYaml,
    sourceUrl: buildStep.inputId.uri,
  );

  final library = _buildLibrary(pubspec);

  final emitter = DartEmitter.scoped(
    orderDirectives: true,
    useNullSafetySyntax: true,
  );
  final buffer = StringBuffer();
  library.accept(emitter, buffer);
  await buildStep.writeAsString(outAsset, buffer.toString());
}