generateModels function
void
generateModels({})
Implementation
void generateModels({
required Set<String> usedModels,
required Map<String, dynamic> schemas,
required ModelGenerator generator,
required String outputPath,
required String projetName,
required String featureName,
}) {
final generated = <String>{};
void generateRecursive(String modelName) {
final schemaKey =
schemas.containsKey(modelName) ? modelName : stripResponse(modelName);
if (generated.contains(modelName) || !schemas.containsKey(schemaKey)) {
return;
}
generated.add(modelName);
final code = generator.generateWithImports(
modelName,
schemas[schemaKey]!,
featureName,
projetName,
);
File('$outputPath/${modelName.snakeCase}.dart').writeAsStringSync(code);
final deps = generator.usedImports.toList();
for (final dep in deps) {
generateRecursive(dep);
}
}
for (final model in usedModels) {
generateRecursive(asResponse(model));
}
print('✅ Models generated at $outputPath');
}