Skip to content

Commit 051fc85

Browse files
committed
template: Fix duplicate items in required property when merging sections
For #23
1 parent ad7cef2 commit 051fc85

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# v0.17.0
22
## Fixed
33
* guiUtils: Prefer defaults from top-level templates when merging allOf templates
4+
* template: Fix duplicate items in required property when merging sections (issue #23)
45

56
# v0.16.0
67
## Fixed

lib/template.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,19 @@ class Template {
457457
existingDef,
458458
newDef
459459
);
460+
461+
// De-dup required arrays
462+
if (acc.properties[defName].required) {
463+
acc.properties[defName].required = [
464+
...new Set(acc.properties[defName].required)
465+
];
466+
}
467+
if (acc.properties[defName].items && acc.properties[defName].items.required) {
468+
acc.properties[defName].items.required = [
469+
...new Set(acc.properties[defName].items.required)
470+
];
471+
}
472+
460473
if (this._isPropRequired(acc.properties[defName])) {
461474
required.add(defName);
462475
}

test/template.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,7 @@ describe('Template class tests', function () {
385385
template: |
386386
{{#section}}{{foo}}{{/section}}
387387
{{#section}}{{bar}}{{/section}}
388+
{{#section}}{{foo}}{{/section}}
388389
{{^section}}{{baz}}{{/section}}
389390
`;
390391

0 commit comments

Comments
 (0)