fix: review import templates #33
@@ -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 = {
|
const modelViewData = {
|
||||||
models: [
|
models: [
|
||||||
{
|
{
|
||||||
@@ -62,6 +75,7 @@ export function generateCleanArchitecture(
|
|||||||
classFilename: toCamelCase(baseName),
|
classFilename: toCamelCase(baseName),
|
||||||
classVarName: toCamelCase(baseName),
|
classVarName: toCamelCase(baseName),
|
||||||
description: schemaObj.description || '',
|
description: schemaObj.description || '',
|
||||||
|
imports: modelImports,
|
||||||
vars: varsMap
|
vars: varsMap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
{{#models}}
|
{{#models}}
|
||||||
{{#model}}
|
{{#model}}
|
||||||
|
{{#imports}}
|
||||||
|
import { {{classname}} } from './{{classFilename}}.dto';
|
||||||
|
{{/imports}}
|
||||||
/**
|
/**
|
||||||
* {{classname}} DTO
|
* {{classname}} DTO
|
||||||
* {{#description}}{{description}}{{/description}}
|
* {{#description}}{{description}}{{/description}}
|
||||||
|
|||||||
Reference in New Issue
Block a user