UNPKG

stylelint-scss

Version:

A collection of SCSS specific rules for stylelint

161 lines (147 loc) 4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = _default; exports.messages = exports.ruleName = void 0; var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser")); var _stylelint = require("stylelint"); var _utils = require("../../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var rules = { red: "color", blue: "color", green: "color", mix: "color", hue: "color", saturation: "color", lightness: "color", complement: "color", invert: "color", alpha: "color", "adjust-color": "color", "scale-color": "color", "change-color": "color", "ie-hex-str": "color", "map-get": "map", "map-merge": "map", "map-remove": "map", "map-keys": "map", "map-values": "map", "map-has-key": "map", unquote: "string", quote: "string", "str-length": "string", "str-insert": "string", "str-index": "string", "str-slice": "string", "to-upper-case": "string", "to-lower-case": "string", "unique-id": "string", percentage: "math", round: "math", ceil: "math", floor: "math", abs: "math", min: "math", max: "math", random: "math", unit: "math", unitless: "math", comparable: "math", length: "list", nth: "list", "set-nth": "list", join: "list", append: "list", zip: "list", index: "list", "list-separator": "list", "feature-exists": "meta", "variable-exists": "meta", "global-variable-exists": "meta", "function-exists": "meta", "mixin-exists": "meta", inspect: "meta", "get-function": "meta", "type-of": "meta", call: "meta", "content-exists": "meta", keywords: "meta", "selector-nest": "selector", "selector-append": "selector", "selector-replace": "selector", "selector-unify": "selector", "is-superselector": "selector", "simple-selectors": "selector", "selector-parse": "selector", "selector-extend": "selector" }; var new_rule_names = { "adjust-color": "adjust", "scale-color": "scale", "change-color": "change", "map-get": "get", "map-merge": "merge", "map-remove": "remove", "map-keys": "keys", "map-values": "values", "map-has-key": "has-key", "str-length": "length", "str-insert": "insert", "str-index": "index", "str-slice": "slice", unitless: "is-unitless", comparable: "compatible", "list-separator": "separator", "selector-nest": "nest", "selector-append": "append", "selector-replace": "replace", "selector-unify": "unify", "selector-parse": "parse", "selector-extend": "extend" }; var ruleName = (0, _utils.namespace)("no-global-function-names"); exports.ruleName = ruleName; var messages = _stylelint.utils.ruleMessages(ruleName, { rejected: function rejected(name) { return errorMessage(name); } }); exports.messages = messages; function errorMessage(name) { var sass_package = rules[name]; var rename = new_rule_names[name]; if (rename) { return "Expected ".concat(sass_package, ".").concat(rename, " instead of ").concat(name); } else { return "Expected ".concat(sass_package, ".").concat(name, " instead of ").concat(name); } } function _default(value) { return function (root, result) { var validOptions = _stylelint.utils.validateOptions(result, ruleName, { actual: value }); if (!validOptions) { return; } root.walkDecls(function (decl) { (0, _postcssValueParser["default"])(decl.value).walk(function (node) { // Verify that we're only looking at functions. if (node.type !== "function" || node.value === "") { return; } if (Object.keys(rules).includes(node.value)) { _stylelint.utils.report({ message: messages.rejected(node.value), node: decl, index: (0, _utils.declarationValueIndex)(decl) + node.sourceIndex, result: result, ruleName: ruleName }); } }); }); }; }