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 routerCode = await _generateEndpointRouter(buildStep);
final applications = _locateApplicationEntryPoint(library);
if (applications.isEmpty) return null;
// Build the generated output
final output = StringBuffer()
..writeln('import "package:sarus/sarus.dart";')
..writeln();
for (final import in _imports) {
output.writeln('import "package:$import";');
}
output.writeln(r'RouterConfig get $router {');
output.writeln(' final router = RouterConfig();');
output.writeln();
output.writeln(routerCode);
output.writeln(' return router;');
output.writeln('}');
return output.toString();
}