Skip to content

Commit d9d120f

Browse files
committed
Allow implicit objects
1 parent f4e77d8 commit d9d120f

File tree

2 files changed

+28
-33
lines changed

2 files changed

+28
-33
lines changed

src/openApi/v2/parser/getModel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export const getModel = (
8989
}
9090
}
9191

92-
if (definition.type === 'object' && typeof definition.additionalProperties === 'object') {
92+
if (typeof definition.additionalProperties === 'object') {
9393
if (definition.additionalProperties.$ref) {
9494
const additionalProperties = getType(definition.additionalProperties.$ref);
9595
model.export = 'dictionary';
@@ -119,7 +119,7 @@ export const getModel = (
119119
return model;
120120
}
121121

122-
if (definition.type === 'object') {
122+
if (definition.type === 'object' || typeof definition.properties === 'object') {
123123
model.export = 'interface';
124124
model.type = 'any';
125125
model.base = 'any';

src/openApi/v3/parser/getModel.ts

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,7 @@ export const getModel = (
9595
}
9696
}
9797

98-
if (
99-
definition.type === 'object' &&
100-
(typeof definition.additionalProperties === 'object' || definition.additionalProperties === true)
101-
) {
98+
if (typeof definition.additionalProperties === 'object' || definition.additionalProperties === true) {
10299
const ap = typeof definition.additionalProperties === 'object' ? definition.additionalProperties : {};
103100
if (ap.$ref) {
104101
const additionalProperties = getType(ap.$ref);
@@ -149,34 +146,32 @@ export const getModel = (
149146
return model;
150147
}
151148

152-
if (definition.type === 'object') {
153-
if (definition.properties) {
154-
model.export = 'interface';
155-
model.type = 'any';
156-
model.base = 'any';
157-
model.default = getModelDefault(definition, model);
149+
if (definition.properties) {
150+
model.export = 'interface';
151+
model.type = 'any';
152+
model.base = 'any';
153+
model.default = getModelDefault(definition, model);
158154

159-
const modelProperties = getModelProperties(openApi, definition, getModel, model);
160-
modelProperties.forEach(modelProperty => {
161-
model.imports.push(...modelProperty.imports);
162-
model.enums.push(...modelProperty.enums);
163-
model.properties.push(modelProperty);
164-
if (modelProperty.export === 'enum') {
165-
model.enums.push(modelProperty);
166-
}
167-
});
168-
return model;
169-
} else {
170-
const additionalProperties = getModel(openApi, {});
171-
model.export = 'dictionary';
172-
model.type = additionalProperties.type;
173-
model.base = additionalProperties.base;
174-
model.template = additionalProperties.template;
175-
model.link = additionalProperties;
176-
model.imports.push(...additionalProperties.imports);
177-
model.default = getModelDefault(definition, model);
178-
return model;
179-
}
155+
const modelProperties = getModelProperties(openApi, definition, getModel, model);
156+
modelProperties.forEach(modelProperty => {
157+
model.imports.push(...modelProperty.imports);
158+
model.enums.push(...modelProperty.enums);
159+
model.properties.push(modelProperty);
160+
if (modelProperty.export === 'enum') {
161+
model.enums.push(modelProperty);
162+
}
163+
});
164+
return model;
165+
} else if (definition.type === 'object') {
166+
const additionalProperties = getModel(openApi, {});
167+
model.export = 'dictionary';
168+
model.type = additionalProperties.type;
169+
model.base = additionalProperties.base;
170+
model.template = additionalProperties.template;
171+
model.link = additionalProperties;
172+
model.imports.push(...additionalProperties.imports);
173+
model.default = getModelDefault(definition, model);
174+
return model;
180175
}
181176

182177
// If the schema has a type than it can be a basic or generic type.

0 commit comments

Comments
 (0)