diff --git a/package.json b/package.json index eb5ab104..b6f0d6bd 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "handlebars": "4.7.6", "js-yaml": "3.14.0", "mkdirp": "1.0.4", - "path": "0.12.7", "rimraf": "3.0.2" }, "devDependencies": { diff --git a/rollup.config.js b/rollup.config.js index 973c75da..ef6c9f85 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -65,6 +65,7 @@ module.exports = { 'fs', 'os', 'util', + 'path', 'http', 'https', 'handlebars/runtime', diff --git a/src/openApi/v2/parser/getModelComposition.ts b/src/openApi/v2/parser/getModelComposition.ts index 2bcdd633..060b83a1 100644 --- a/src/openApi/v2/parser/getModelComposition.ts +++ b/src/openApi/v2/parser/getModelComposition.ts @@ -15,11 +15,19 @@ export function getModelComposition(openApi: OpenApi, definitions: OpenApiSchema }; const modes = definitions.map(definition => getModel(openApi, definition)); - modes.forEach(model => { - composition.imports.push(...model.imports); - composition.enums.push(...model.enums); - composition.properties.push(model); - }); + modes + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); return composition; } diff --git a/src/openApi/v3/parser/getModelComposition.ts b/src/openApi/v3/parser/getModelComposition.ts index 2bcdd633..060b83a1 100644 --- a/src/openApi/v3/parser/getModelComposition.ts +++ b/src/openApi/v3/parser/getModelComposition.ts @@ -15,11 +15,19 @@ export function getModelComposition(openApi: OpenApi, definitions: OpenApiSchema }; const modes = definitions.map(definition => getModel(openApi, definition)); - modes.forEach(model => { - composition.imports.push(...model.imports); - composition.enums.push(...model.enums); - composition.properties.push(model); - }); + modes + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); return composition; }