@@ -15,6 +15,7 @@ import { createRule } from '../utils/index.js';
15
15
interface Selections {
16
16
exact : Map < string , AST . SvelteHTMLElement [ ] > ;
17
17
prefixes : Map < string , AST . SvelteHTMLElement [ ] > ;
18
+ universalSelector : boolean ;
18
19
}
19
20
20
21
export default createRule ( 'consistent-selector-style' , {
@@ -78,11 +79,13 @@ export default createRule('consistent-selector-style', {
78
79
} = {
79
80
class : {
80
81
exact : new Map ( ) ,
81
- prefixes : new Map ( )
82
+ prefixes : new Map ( ) ,
83
+ universalSelector : false
82
84
} ,
83
85
id : {
84
86
exact : new Map ( ) ,
85
- prefixes : new Map ( )
87
+ prefixes : new Map ( ) ,
88
+ universalSelector : false
86
89
} ,
87
90
type : new Map ( )
88
91
} ;
@@ -130,7 +133,7 @@ export default createRule('consistent-selector-style', {
130
133
* Checks a class selector
131
134
*/
132
135
function checkClassSelector ( node : SelectorClass ) : void {
133
- if ( whitelistedClasses . includes ( node . value ) ) {
136
+ if ( selections . class . universalSelector || whitelistedClasses . includes ( node . value ) ) {
134
137
return ;
135
138
}
136
139
const selection = matchSelection ( selections . class , node . value ) ;
@@ -159,6 +162,9 @@ export default createRule('consistent-selector-style', {
159
162
* Checks an ID selector
160
163
*/
161
164
function checkIdSelector ( node : SelectorIdentifier ) : void {
165
+ if ( selections . id . universalSelector ) {
166
+ return ;
167
+ }
162
168
const selection = matchSelection ( selections . id , node . value ) ;
163
169
for ( const styleValue of style ) {
164
170
if ( styleValue === 'class' ) {
@@ -228,6 +234,8 @@ export default createRule('consistent-selector-style', {
228
234
const prefix = extractExpressionPrefixLiteral ( context , value . expression ) ;
229
235
if ( prefix !== null ) {
230
236
addToArrayMap ( selections . class . prefixes , prefix , node ) ;
237
+ } else {
238
+ selections . class . universalSelector = true ;
231
239
}
232
240
}
233
241
if ( attribute . key . name === 'id' ) {
@@ -237,6 +245,8 @@ export default createRule('consistent-selector-style', {
237
245
const prefix = extractExpressionPrefixLiteral ( context , value . expression ) ;
238
246
if ( prefix !== null ) {
239
247
addToArrayMap ( selections . id . prefixes , prefix , node ) ;
248
+ } else {
249
+ selections . id . universalSelector = true ;
240
250
}
241
251
}
242
252
}
0 commit comments