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 {
  var sourceClasses = <SourceClass>[];
  var entryLib = await buildStep.inputLibrary;
  var units = entryLib.units;
  for (var unit in units) {
    for (var classElement in unit.classes) {
      var sourceClass = createSourceClass(classElement);
      if (sourceClass != null) {
        sourceClasses.add(sourceClass);
      }
    }
  }
  if (sourceClasses.isNotEmpty) {
    var outputId = buildStep.inputId.changeExtension('.g.dart');

    StyleClassLibrary styleClassLibrary = StyleClassLibrary(sourceClasses);
    var formattedCode = Future.value(styleClassLibrary.toFormattedString());
    buildStep.writeAsString(outputId, formattedCode);
  }

  //  var resolver = buildStep.resolver;
  // // Get a `LibraryElement` for another asset.
  // var libFromAsset = await resolver.libraryFor(
  //     AssetId.resolve(Uri.parse('some_import.dart'),
  //     from: buildStep.inputId));
  // // Or get a `LibraryElement` by name.
  // var libByName = await resolver.findLibraryByName('my.library');
}