123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports["default"] = rule;
- exports.ruleName = exports.meta = exports.messages = 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 ruleName = (0, _utils.namespace)("function-unquote-no-unquoted-strings-inside");
- exports.ruleName = ruleName;
- var messages = _stylelint.utils.ruleMessages(ruleName, {
- rejected: "Unquote function used with an already-unquoted string"
- });
- exports.messages = messages;
- var meta = {
- url: (0, _utils.ruleUrl)(ruleName)
- };
- exports.meta = meta;
- function rule(primary, _, context) {
- return function (root, result) {
- var validOptions = _stylelint.utils.validateOptions(result, ruleName, {
- actual: primary
- });
- if (!validOptions) {
- return;
- }
- // Setup variable naming.
- var vars = {};
- root.walkDecls(function (decl) {
- if (decl.prop[0] !== "$") {
- return;
- }
- (0, _postcssValueParser["default"])(decl.value).walk(function (node) {
- vars[decl.prop] = node.type;
- });
- });
- root.walkDecls(function (decl) {
- (0, _postcssValueParser["default"])(decl.value).walk(function (node) {
- // Verify that we're only looking at functions.
- if (node.type !== "function" || (0, _utils.isNativeCssFunction)(node.value) || node.value === "") {
- return;
- }
- // Verify we're only looking at quote() calls.
- if (node.value !== "unquote") {
- return;
- }
- // Report error if first character is a quote.
- // postcss-value-parser represents quoted strings as type 'string' (as opposed to word)
- if (!node.nodes[0].quote && node.nodes[0].value[0] !== "$" || vars[node.nodes[0].value] === "word") {
- if (context.fix) {
- var contents = /unquote\((.*)\)/.exec(decl.value);
- decl.value = contents[1];
- } else {
- _stylelint.utils.report({
- message: messages.rejected,
- node: decl,
- index: (0, _utils.declarationValueIndex)(decl) + node.sourceIndex,
- result: result,
- ruleName: ruleName
- });
- }
- }
- });
- });
- };
- }
- rule.ruleName = ruleName;
- rule.messages = messages;
- rule.meta = meta;
|