@@ -71,39 +71,30 @@ export class ToggleModule {
7171}
7272
7373ToggleModule . 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
8676function 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
10392function 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