@@ -71,39 +71,30 @@ export class ToggleModule {
71
71
}
72
72
73
73
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 = { }
85
75
86
76
function checkDuplicates ( option ) {
87
- var previousOptionValues = [ ]
88
-
89
- ToggleModule . duplicateErrors [ option . toggle ] = { }
77
+ ToggleModule . optionValues [ option . toggle ] = [ ]
90
78
91
79
for ( const key in option . values ) {
92
80
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 )
94
82
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 )
99
86
}
87
+
88
+ matchedPair . keys . push ( key )
100
89
}
101
90
}
102
91
103
92
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
+ }
107
98
}
108
99
}
109
100
}
0 commit comments