Skip to content

Commit c79a76f

Browse files
committed
Fixing Schema resolving when it's array type
When schema is array type it will ignore additionalPropeties and resolve as array
1 parent 52c8835 commit c79a76f

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

lib/deref.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -248,18 +248,6 @@ module.exports = {
248248
return { value: 'reference ' + schema.$ref + ' not found in the OpenAPI spec' };
249249
}
250250

251-
const getAdditionalProperties = (schema) => {
252-
let additionalProperties;
253-
if (_.isBoolean(schema.additionalProperties)) {
254-
additionalProperties = schema.additionalProperties;
255-
}
256-
else {
257-
additionalProperties = this.resolveRefs(schema.additionalProperties, parameterSourceOption,
258-
components, schemaResolutionCache, resolveFor, resolveTo, stack, _.cloneDeep(seenRef), stackLimit);
259-
}
260-
return additionalProperties;
261-
};
262-
263251
if (
264252
concreteUtils.compareTypes(schema.type, SCHEMA_TYPES.object) ||
265253
schema.hasOwnProperty('properties') ||
@@ -273,7 +261,13 @@ module.exports = {
273261
// shallow cloning schema object except properties object
274262

275263
if (_.has(schema, 'additionalProperties')) {
276-
tempSchema.additionalProperties = getAdditionalProperties(schema);
264+
if (_.isBoolean(schema.additionalProperties)) {
265+
tempSchema.additionalProperties = schema.additionalProperties;
266+
}
267+
else {
268+
tempSchema.additionalProperties = this.resolveRefs(schema.additionalProperties, parameterSourceOption,
269+
components, schemaResolutionCache, resolveFor, resolveTo, stack, _.cloneDeep(seenRef), stackLimit);
270+
}
277271
}
278272

279273
!_.isEmpty(schema.properties) && (tempSchema.properties = {});
@@ -344,10 +338,6 @@ module.exports = {
344338
// without this, schemas with circular references aren't faked correctly
345339
let tempSchema = _.omit(schema, ['items', 'additionalProperties']);
346340

347-
if (_.has(schema, 'additionalProperties')) {
348-
tempSchema.additionalProperties = getAdditionalProperties(schema);
349-
}
350-
351341
tempSchema.items = this.resolveRefs(schema.items, parameterSourceOption,
352342
components, schemaResolutionCache, resolveFor, resolveTo, stack, _.cloneDeep(seenRef), stackLimit);
353343
return tempSchema;

0 commit comments

Comments
 (0)