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 libAssetIds = await libraryAssetIds(buildStep);
  // Accessing libraries.
  for (final libAssetId in libAssetIds) {
    final library = LibraryReader(
      await buildStep.resolver.libraryFor(libAssetId),
    );
    // Calling generator.generate.
    log.fine('Running ${generator.runtimeType} on: ${libAssetId.path}.');

    // Create output file name.
    await buildStep.writeAsString(
      AssetId(
        buildStep.inputId.package,
        _outputFile(libAssetId),
      ),
      arrangeContent((await generator.generate(library, buildStep)) ?? '',
          generatedBy: 'Generated by ${generator.runtimeType}. '),
    );
  }
}