Skip to content

Commit

Permalink
fix(generator): filter out imports that refer to the type defined in …
Browse files Browse the repository at this point in the history
…current file
  • Loading branch information
antoni committed Nov 9, 2020
1 parent 8623bdc commit 36407e2
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/core/generators/interface.ts
Expand Up @@ -14,23 +14,29 @@ import { getScalar } from '../getters/scalar';
export const generateInterface = (name: string, schema: SchemaObject) => {
const { value, imports, schemas } = getScalar(schema, name);
const isEmptyObject = value === '{}';
const definitionName = pascal(name);

let model = isEmptyObject
? '// tslint:disable-next-line:no-empty-interface\n'
: '';

if (!generalJSTypesWithArray.includes(value)) {
model += `export interface ${pascal(name)} ${value}\n`;
model += `export interface ${definitionName} ${value}\n`;
} else {
model += `export type ${pascal(name)} = ${value};\n`;
model += `export type ${definitionName} = ${value};\n`;
}

// Filter out imports that refer to the type defined in current file (OpenAPI recursive schema definitions)
const externalModulesImportsOnly = imports.filter(
(importName) => importName !== definitionName,
);

return [
...schemas,
{
name: pascal(name),
name: definitionName,
model,
imports: generalTypesFilter(imports),
imports: generalTypesFilter(externalModulesImportsOnly),
},
];
};

0 comments on commit 36407e2

Please sign in to comment.