UNPKG

671 BJavaScriptView Raw
1'use strict';
2
3function rule(analyzer) {
4 analyzer.setMetric('qualifiedSelectors');
5
6 // @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS
7 analyzer.on('expression', function(selector, expression) {
8 var hasId = expression.id,
9 hasTag = expression.tag && expression.tag !== '*',
10 hasClass = expression.classList;
11
12 if (
13 // tag#id
14 (hasId && hasTag) ||
15 // .class#id
16 (hasId && hasClass) ||
17 // tag.class
18 (hasClass && hasTag)
19 ) {
20 analyzer.incrMetric('qualifiedSelectors');
21 analyzer.addOffender('qualifiedSelectors', selector);
22 }
23 });
24}
25
26rule.description = 'Reports qualified selectors';
27module.exports = rule;