build method
Generates the outputs for a given BuildStep.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
final specDefinitions = await loadSpecDefinitions(buildStep);
for (final specDefinition in specDefinitions) {
final outputSpecId = specDefinition.outputSpecFileId;
final outputAttributeId = specDefinition.outputAttributeFileId;
final specLibrary = Library(
(b) => b
..body.addAll([
ClassSpecBuilder(specDefinition),
ClassSpecTweenBuilder(specDefinition),
])
..directives
.add(Directive.import(outputAttributeId.pathSegments.last)),
);
final attributeLibrary = Library(
(b) => b
..body.addAll([ClassSpecAttributeBuilder(specDefinition)])
..directives.add(Directive.import(outputSpecId.pathSegments.last)),
);
await buildStep.writeAsString(
outputSpecId,
_dartFormatter.format('${specLibrary.accept(_emitter)}'),
);
await buildStep.writeAsString(specDefinition.outputUtilFileId, '');
await buildStep.writeAsString(
outputAttributeId,
_dartFormatter.format('${attributeLibrary.accept(_emitter)}'),
);
}
}