generate method
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<String> generate(LibraryReader library, BuildStep buildStep) async {
final values = <String>{};
for (final element in library.allElements) {
if (element is ClassElement && needsGenerate(element)) {
final generatedValue = generateForElement(element, buildStep);
for (final value in [generatedValue]) {
assert(value.length == value.trim().length);
values.add(value);
}
}
}
if (values.isEmpty) {
return '';
}
return '// ignore_for_file: unnecessary_statements\n\n${values.join('\n\n')}';
}