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 {
const apiAnnotation = TypeChecker.typeNamed(ApiAnnotation);
final apis = library.annotatedWith(apiAnnotation);
final apisJsonModels = <ApiJsonModel>[];
for (final element in apis) {
final name = ClassUtility.getClassName(element.element);
apisJsonModels.add(ApiJsonModel(
name: name,
));
}
if (apisJsonModels.isNotEmpty) {
return jsonEncode(apisJsonModels);
}
return null;
}