buildGeneratedCode function
        
String
buildGeneratedCode(
    
    
- LibraryElement element,
- TemplateCompilerOutputs outputs,
- String sourceFile,
- CompilerFlags flags,
Implementation
String buildGeneratedCode(
  LibraryElement element,
  TemplateCompilerOutputs outputs,
  String sourceFile,
  CompilerFlags flags,
) {
  final buffer = StringBuffer();
  // Generated code.
  final allocator = Allocator.simplePrefixing();
  final compilerOutput = outputs.templateSource?.sourceCode ?? '';
  // Write the input file as an import and an export.
  buffer.writeln("import '$sourceFile';");
  if (flags.exportUserCodeFromTemplate) {
    buffer.writeln("export '$sourceFile';");
  }
  if (outputs.injectorsOutput.isNotEmpty) {
    final imports = StringBuffer();
    final body = StringBuffer();
    final file = LibraryBuilder();
    final dart = SplitDartEmitter(imports, allocator: allocator);
    for (final injector in outputs.injectorsOutput) {
      final emitter = InjectorEmitter();
      injector.accept(emitter);
      file.body.addAll([
        emitter.createFactory(),
        emitter.createClass(),
      ]);
    }
    // Write imports AND backing code required for generated injectors.
    file.build().accept(dart, body);
    // ... in a specific order, so we don't put inputs before classes, etc.
    buffer.writeln(imports);
    buffer.writeln(compilerOutput);
    buffer.writeln(body);
  } else {
    // Write generated code.
    buffer.writeln(compilerOutput);
  }
  return buffer.toString();
}