generateForClass method

Future generateForClass(
  1. ClassElement element,
  2. SubjectGenContext<Element> genContext,
  3. SubjectCodeContext codeContext
)

Implementation

Future generateForClass(
    ClassElement element,
    SubjectGenContext<Element> genContext,
    SubjectCodeContext codeContext) async {
  codeContext.additionalImports
      .add(AliasImport.gen("package:lyell/lyell.dart"));

  var constructorName = "";
  var constructor = element.unnamedConstructor!;
  if (element.getNamedConstructor("dog") != null) {
    constructorName = ".dog";
    constructor = element.getNamedConstructor("dog")!;
  }
  var structurized = await structurize(
      element.thisType, constructor, genContext, codeContext.cachedCounter);
  codeContext.additionalImports.addAll(structurized.imports);

  writeGeneratedConverter(
      element, structurized, constructorName, codeContext);
  if (structurized.fieldNames.isNotEmpty) {
    writeGeneratedBuilder(element, structurized, constructorName, codeContext);
    writeGeneratedExtension(
        element, structurized, constructorName, codeContext);
  }
}