generate method
FutureOr<Map<String, InitializerAggregateResults> >
generate(
- LibraryReader library,
- BuildStep buildStep
inherited
Generates Dart code for an input Dart library.
May create additional outputs through the buildStep
, but the 'primary'
output is Dart code returned through the Future. If there is nothing to
generate for this library may return null, or a Future that resolves to
null or the empty string.
Implementation
@override
FutureOr<Map<String, R>> generate(
LibraryReader library, BuildStep buildStep) async {
final values = <String, R>{};
for (final annotatedElement in library.annotatedWith(typeChecker)) {
final generatedValue = generateForAnnotatedElement(
annotatedElement.element,
annotatedElement.annotation,
buildStep,
);
await for (final value in normalizeGeneratorOutput<R>(generatedValue)) {
if (values.containsKey(value.key)) {
values[value.key]!.merge(value.value);
} else {
values[value.key] = value.value;
}
}
}
return values;
}