diff options
Diffstat (limited to 'assets/node_modules/stylelint-scss/dist/rules/at-rule-conditional-no-parentheses/index.js')
-rw-r--r-- | assets/node_modules/stylelint-scss/dist/rules/at-rule-conditional-no-parentheses/index.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/assets/node_modules/stylelint-scss/dist/rules/at-rule-conditional-no-parentheses/index.js b/assets/node_modules/stylelint-scss/dist/rules/at-rule-conditional-no-parentheses/index.js new file mode 100644 index 0000000..95e7728 --- /dev/null +++ b/assets/node_modules/stylelint-scss/dist/rules/at-rule-conditional-no-parentheses/index.js @@ -0,0 +1,86 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = _default; +exports.messages = exports.ruleName = void 0; + +var _stylelint = require("stylelint"); + +var _utils = require("../../utils"); + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + +var ruleName = (0, _utils.namespace)("at-rule-conditional-no-parentheses"); +exports.ruleName = ruleName; + +var messages = _stylelint.utils.ruleMessages(ruleName, { + rejected: "Unexpected () used to surround statements for @-rules" +}); // postcss picks up else-if as else. + + +exports.messages = messages; +var conditional_rules = ["if", "while", "else"]; + +function report(atrule, result) { + _stylelint.utils.report({ + message: messages.rejected, + node: atrule, + result: result, + ruleName: ruleName + }); +} + +function fix(atrule) { + var regex = /(if)? ?\((.*)\)/; // 2 regex groups: 'if ' and cond. + + var groups = atrule.params.match(regex).slice(1); + atrule.params = _toConsumableArray(new Set(groups)).join(" "); +} + +function _default(primary, _unused, context) { + return function (root, result) { + var validOptions = _stylelint.utils.validateOptions(result, ruleName, { + actual: primary + }); + + if (!validOptions) { + return; + } + + root.walkAtRules(function (atrule) { + // Check if this is a conditional rule. + if (!conditional_rules.includes(atrule.name)) { + return; + } // Else uses a different regex + // params are of format "`if (cond)` or `if cond` + // instead of `(cond)` or `cond`" + + + if (atrule.name === "else") { + if (atrule.params.match(/ ?if ?\(.*\) ?$/)) { + if (context.fix) { + fix(atrule); + } else { + report(atrule, result); + } + } + } else { + if (atrule.params.trim().match(/^\(.*\)$/)) { + if (context.fix) { + fix(atrule); + } else { + report(atrule, result); + } + } + } + }); + }; +}
\ No newline at end of file |