build method
Generates the outputs for a given BuildStep
.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
final Set<_IconResult> icons = {};
await for (final input in buildStep.findAssets(_allDartFiles)) {
final node = await buildStep.resolver.compilationUnitFor(input);
final visitor = _Visitor();
node.accept(visitor);
icons.addAll(visitor.access);
}
for (final style in styles) {
final formatter = DartFormatter();
final emitter = DartEmitter(useNullSafetySyntax: true);
final library = printLibrary(
style,
icons.where((element) => element.style == style),
);
final contents = formatter.format("${library.accept(emitter)}");
buildStep.writeAsString(
AssetId(
buildStep.inputId.package,
p.join('lib', 'font_awesome', '${style}.dart'),
),
contents,
);
}
}