Skip to content

Commit

Permalink
fix: merge inner properties of allOf
Browse files Browse the repository at this point in the history
  • Loading branch information
RomanHotsiy committed Mar 5, 2018
1 parent 2462639 commit 8926dd4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,16 @@ exports[`Components SchemaView discriminator should correctly render discriminat
"options": "<<<filtered>>>",
"pattern": undefined,
"rawSchema": Object {
"allOf": undefined,
"default": undefined,
"parentRefs": Array [],
"type": "string",
},
"readOnly": false,
"schema": Object {
"allOf": undefined,
"default": undefined,
"parentRefs": Array [],
"type": "string",
},
"title": "",
Expand Down
17 changes: 12 additions & 5 deletions src/services/OpenAPIParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,11 +212,18 @@ export class OpenAPIParser {
}

if (subSchema.properties !== undefined) {
// TODO: merge properties contents
receiver.properties = {
...(receiver.properties || {}),
...subSchema.properties,
};
receiver.properties = receiver.properties || {};
for (let prop in subSchema.properties) {
if (!receiver.properties[prop]) {
receiver.properties[prop] = subSchema.properties[prop];
} else {
// merge inner properties
receiver.properties[prop] = this.mergeAllOf(
{ allOf: [receiver.properties[prop], subSchema.properties[prop]] },
$ref + '/properties/' + prop,
);
}
}
}

if (subSchema.required !== undefined) {
Expand Down

0 comments on commit 8926dd4

Please sign in to comment.