+++ /dev/null
-"use strict";
-
-const _ = require("lodash");
-const functionArgumentsSearch = require("../../utils/functionArgumentsSearch");
-const isStandardSyntaxUrl = require("../../utils/isStandardSyntaxUrl");
-const report = require("../../utils/report");
-const ruleMessages = require("../../utils/ruleMessages");
-const validateOptions = require("../../utils/validateOptions");
-
-const ruleName = "function-url-no-scheme-relative";
-
-const messages = ruleMessages(ruleName, {
- rejected: "Unexpected scheme-relative url"
-});
-
-const rule = function(actual) {
- return (root, result) => {
- const validOptions = validateOptions(result, ruleName, { actual });
- if (!validOptions) {
- return;
- }
-
- root.walkDecls(function(decl) {
- functionArgumentsSearch(
- decl.toString().toLowerCase(),
- "url",
- (args, index) => {
- const url = _.trim(args, " '\"");
-
- if (!isStandardSyntaxUrl(url) || url.indexOf("//") !== 0) {
- return;
- }
-
- report({
- message: messages.rejected,
- node: decl,
- index,
- result,
- ruleName
- });
- }
- );
- });
- };
-};
-
-rule.ruleName = ruleName;
-rule.messages = messages;
-module.exports = rule;