feat: collect and render model imports for referenced types in Clean Architecture generation
This commit is contained in:
@@ -54,6 +54,19 @@ export function generateCleanArchitecture(
|
||||
};
|
||||
});
|
||||
|
||||
// Collect imports for types referenced via $ref in properties
|
||||
const referencedTypes = new Set<string>();
|
||||
Object.values(rawProperties).forEach((prop) => {
|
||||
if (prop.$ref) {
|
||||
referencedTypes.add(prop.$ref.split('/').pop() || '');
|
||||
} else if (prop.type === 'array' && prop.items?.$ref) {
|
||||
referencedTypes.add(prop.items.$ref.split('/').pop() || '');
|
||||
}
|
||||
});
|
||||
const modelImports = [...referencedTypes]
|
||||
.filter(Boolean)
|
||||
.map((name) => ({ classname: name, classFilename: toCamelCase(name) }));
|
||||
|
||||
const modelViewData = {
|
||||
models: [
|
||||
{
|
||||
@@ -62,6 +75,7 @@ export function generateCleanArchitecture(
|
||||
classFilename: toCamelCase(baseName),
|
||||
classVarName: toCamelCase(baseName),
|
||||
description: schemaObj.description || '',
|
||||
imports: modelImports,
|
||||
vars: varsMap
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
{{#imports}}
|
||||
import { {{classname}} } from './{{classFilename}}.dto';
|
||||
{{/imports}}
|
||||
/**
|
||||
* {{classname}} DTO
|
||||
* {{#description}}{{description}}{{/description}}
|
||||
|
||||
Reference in New Issue
Block a user