supadartRun function

List<GeneratedFile> supadartRun(
  1. DatabaseSwagger swagger,
  2. Storage storageList,
  3. bool isDart,
  4. bool isSeparated,
  5. YamlMap? mappings,
  6. List<String> exclude,
)

Implementation

List<GeneratedFile> supadartRun(
  DatabaseSwagger swagger,
  Storage storageList,
  bool isDart,
  bool isSeparated,
  YamlMap? mappings,
  List<String> exclude,
) {
  final dartClasses = generateDartClasses(swagger, mappings, exclude);

  final clientExtension = generateClientExtension(swagger);
  final storageClientExtension = generateStorageClientExtension(storageList);
  final modelExports = generateExports(swagger, mappings);
  final enums = generateEnums(swagger);

  bool needsIntl = false;
  bool needsDartConvert = false;
  bool needsDurationFromString = false;
  for (var dartClass in dartClasses) {
    final classCode = dartClass.classCode;
    if (classCode.contains("DateFormat")) {
      needsIntl = true;
    }
    if (classCode.contains("json.") ||
        classCode.contains("jsonDecode") ||
        classCode.contains("jsonEncode")) {
      needsDartConvert = true;
    }
    if (classCode.contains("Duration")) {
      needsDurationFromString = true;
    }
    // Exit early if all conditions are met
    if (needsIntl && needsDartConvert && needsDurationFromString) break;
  }

  final supadartGenerator = SupadartGenerator(
    clientExtension: clientExtension,
    storageClientExtension: storageClientExtension,
    dartClasses: dartClasses,
    modelExports: modelExports,
    enums: enums,
    isDart: isDart,
    needsIntl: needsIntl,
    needsDartConvert: needsDartConvert,
    needsDurationFromString: needsDurationFromString,
    mappings: mappings,
  );
  return isSeparated
      ? supadartGenerator.generateDartModelFilesSeparated()
      : supadartGenerator.generateClassesSingleFile();
}