UNPKG

1.08 kBJavaScriptView Raw
1// @ts-nocheck
2
3'use strict';
4
5const isAutoprefixable = require('../../utils/isAutoprefixable');
6const report = require('../../utils/report');
7const ruleMessages = require('../../utils/ruleMessages');
8const validateOptions = require('../../utils/validateOptions');
9
10const ruleName = 'media-feature-name-no-vendor-prefix';
11
12const messages = ruleMessages(ruleName, {
13 rejected: 'Unexpected vendor-prefix',
14});
15
16function rule(actual) {
17 return (root, result) => {
18 const validOptions = validateOptions(result, ruleName, { actual });
19
20 if (!validOptions) {
21 return;
22 }
23
24 root.walkAtRules(/^media$/i, (atRule) => {
25 const params = atRule.params;
26
27 if (!isAutoprefixable.mediaFeatureName(params)) {
28 return;
29 }
30
31 const matches = atRule.toString().match(/[a-z-]+device-pixel-ratio/gi);
32
33 if (!matches) {
34 return;
35 }
36
37 matches.forEach((match) => {
38 report({
39 message: messages.rejected,
40 node: atRule,
41 word: match,
42 result,
43 ruleName,
44 });
45 });
46 });
47 };
48}
49
50rule.ruleName = ruleName;
51rule.messages = messages;
52module.exports = rule;