build method
Generates the outputs for a given BuildStep.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
var targetId = buildStep.inputId.toString();
if (targetId.contains('.vm_test.') ||
targetId.contains('.node_test.') ||
targetId.contains('.browser_test.')) {
return;
}
LibraryElement inputLibrary = await buildStep.inputLibrary;
// Create our adapter for the resolver
final resolver = BuildRunnerLibraryResolver(buildStep.resolver);
// Convert AssetId to FileId
final inputId = buildStep.inputId.toFileId();
final outputId = buildStep.inputId
.changeExtension('.reflection.dart')
.toFileId();
List<LibraryElement> visibleLibraries =
await buildStep.resolver.libraries.toList();
List<WarningKind> suppressedWarnings = _computeSuppressedWarnings();
String generatedSource = await GeneratorImplementation().buildMirrorLibrary(
resolver,
inputId,
outputId,
inputLibrary,
visibleLibraries.cast(),
true,
suppressedWarnings,
);
await buildStep.writeAsString(
buildStep.inputId.changeExtension('.reflection.dart'),
generatedSource,
);
}