supadartRun function
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();
}