supadartRun function
List<GeneratedFile>
supadartRun(
- DatabaseSwagger swagger,
- Storage storageList,
- bool isDart,
- bool isSeparated,
- YamlMap? mappings,
- List<String> exclude,
- Map<String, List<String>> mapOfEnums,
- bool isPostGIS,
- bool jsonbToDynamic,
)
Implementation
List<GeneratedFile> supadartRun(
DatabaseSwagger swagger,
Storage storageList,
bool isDart,
bool isSeparated,
YamlMap? mappings,
List<String> exclude,
Map<String, List<String>> mapOfEnums,
bool isPostGIS,
bool jsonbToDynamic,
) {
final dartClasses =
generateDartClasses(swagger, mappings, exclude, jsonbToDynamic);
final clientExtension = generateClientExtension(swagger);
final storageClientExtension = generateStorageClientExtension(storageList);
final modelExports = generateExports(swagger, mappings);
final enums = generateEnums(mapOfEnums);
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,
isPostGIS: isPostGIS,
);
return isSeparated
? supadartGenerator.generateDartModelFilesSeparated()
: supadartGenerator.generateClassesSingleFile();
}