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");
10 const ruleName = "function-url-no-scheme-relative";
12 const messages = ruleMessages(ruleName, {
13 rejected: "Unexpected scheme-relative url"
16 const rule = function(actual) {
17 return (root, result) => {
18 const validOptions = validateOptions(result, ruleName, { actual });
23 root.walkDecls(function(decl) {
24 functionArgumentsSearch(
25 decl.toString().toLowerCase(),
28 const url = _.trim(args, " '\"");
30 if (!isStandardSyntaxUrl(url) || url.indexOf("//") !== 0) {
35 message: messages.rejected,
47 rule.ruleName = ruleName;
48 rule.messages = messages;
49 module.exports = rule;