.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / rules / selector-no-vendor-prefix / index.js
1 "use strict";
2
3 const isAutoprefixable = require("../../utils/isAutoprefixable");
4 const isStandardSyntaxRule = require("../../utils/isStandardSyntaxRule");
5 const isStandardSyntaxSelector = require("../../utils/isStandardSyntaxSelector");
6 const parseSelector = require("../../utils/parseSelector");
7 const report = require("../../utils/report");
8 const ruleMessages = require("../../utils/ruleMessages");
9 const validateOptions = require("../../utils/validateOptions");
10
11 const ruleName = "selector-no-vendor-prefix";
12
13 const messages = ruleMessages(ruleName, {
14   rejected: selector => `Unexpected vendor-prefix "${selector}"`
15 });
16
17 const rule = function(actual) {
18   return (root, result) => {
19     const validOptions = validateOptions(result, ruleName, { actual });
20     if (!validOptions) {
21       return;
22     }
23
24     root.walkRules(rule => {
25       if (!isStandardSyntaxRule(rule)) {
26         return;
27       }
28       const selector = rule.selector;
29
30       if (!isStandardSyntaxSelector(selector)) {
31         return;
32       }
33       parseSelector(selector, result, rule, selectorTree => {
34         selectorTree.walkPseudos(pseudoNode => {
35           if (isAutoprefixable.selector(pseudoNode.value)) {
36             report({
37               result,
38               ruleName,
39               message: messages.rejected(pseudoNode.value),
40               node: rule,
41               index: (rule.raws.before || "").length + pseudoNode.sourceIndex
42             });
43           }
44         });
45       });
46     });
47   };
48 };
49
50 rule.ruleName = ruleName;
51 rule.messages = messages;
52 module.exports = rule;