Skip to content

Commit 8153aad

Browse files
committed
refactor(SDK): Duplicate toggle values detection
1 parent aa0cdd0 commit 8153aad

File tree

1 file changed

+13
-22
lines changed

1 file changed

+13
-22
lines changed

engine/modules/toggle/src/main/resources/view/toggle-module/ToggleModule.js

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,39 +71,30 @@ export class ToggleModule {
7171
}
7272

7373
ToggleModule.toggles = {}
74-
ToggleModule.duplicateErrors = {}
75-
76-
function createIfNull (obj, key, value) {
77-
obj[key] = obj[key] || value
78-
}
79-
80-
function insertNewDuplicate (duplicates, matchedPair, key) {
81-
createIfNull(duplicates, matchedPair.key, { keys: [ matchedPair.key ], value: matchedPair.value })
82-
83-
duplicates[matchedPair.key].keys.push(key)
84-
}
74+
ToggleModule.optionValues = {}
8575

8676
function checkDuplicates (option) {
87-
var previousOptionValues = []
88-
89-
ToggleModule.duplicateErrors[option.toggle] = {}
77+
ToggleModule.optionValues[option.toggle] = []
9078

9179
for (const key in option.values) {
9280
const value = option.values[key]
93-
const matchedPair = previousOptionValues.find(elem => elem.value === value)
81+
var matchedPair = ToggleModule.optionValues[option.toggle].find(elem => elem.value === value)
9482

95-
if (matchedPair) {
96-
insertNewDuplicate(ToggleModule.duplicateErrors[option.toggle], matchedPair, key)
97-
} else {
98-
previousOptionValues.push({ key, value })
83+
if (!matchedPair) {
84+
matchedPair = { keys: [ ], value }
85+
ToggleModule.optionValues[option.toggle].push(matchedPair)
9986
}
87+
88+
matchedPair.keys.push(key)
10089
}
10190
}
10291

10392
function pushDuplicateErrors () {
104-
for (const toggle in ToggleModule.duplicateErrors) {
105-
for (const dup of Object.values(ToggleModule.duplicateErrors[toggle])) {
106-
ErrorLog.push(new DuplicateToggleValueError(toggle, dup))
93+
for (const toggle in ToggleModule.optionValues) {
94+
for (const optionValues of Object.values(ToggleModule.optionValues[toggle])) {
95+
if (optionValues.keys.length > 1) {
96+
ErrorLog.push(new DuplicateToggleValueError(toggle, optionValues))
97+
}
10798
}
10899
}
109100
}

0 commit comments

Comments
 (0)