.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / rules / function-url-no-scheme-relative / index.js
1 "use strict";
2
3 const _ = require("lodash");
4 const functionArgumentsSearch = require("../../utils/functionArgumentsSearch");
5 const isStandardSyntaxUrl = require("../../utils/isStandardSyntaxUrl");
6 const report = require("../../utils/report");
7 const ruleMessages = require("../../utils/ruleMessages");
8 const validateOptions = require("../../utils/validateOptions");
9
10 const ruleName = "function-url-no-scheme-relative";
11
12 const messages = ruleMessages(ruleName, {
13   rejected: "Unexpected scheme-relative url"
14 });
15
16 const rule = function(actual) {
17   return (root, result) => {
18     const validOptions = validateOptions(result, ruleName, { actual });
19     if (!validOptions) {
20       return;
21     }
22
23     root.walkDecls(function(decl) {
24       functionArgumentsSearch(
25         decl.toString().toLowerCase(),
26         "url",
27         (args, index) => {
28           const url = _.trim(args, " '\"");
29
30           if (!isStandardSyntaxUrl(url) || url.indexOf("//") !== 0) {
31             return;
32           }
33
34           report({
35             message: messages.rejected,
36             node: decl,
37             index,
38             result,
39             ruleName
40           });
41         }
42       );
43     });
44   };
45 };
46
47 rule.ruleName = ruleName;
48 rule.messages = messages;
49 module.exports = rule;