diff options
Diffstat (limited to 'assets/node_modules/stylelint-scss/dist/rules/at-import-partial-extension-whitelist/index.js')
-rw-r--r-- | assets/node_modules/stylelint-scss/dist/rules/at-import-partial-extension-whitelist/index.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/assets/node_modules/stylelint-scss/dist/rules/at-import-partial-extension-whitelist/index.js b/assets/node_modules/stylelint-scss/dist/rules/at-import-partial-extension-whitelist/index.js new file mode 100644 index 0000000..e725f2c --- /dev/null +++ b/assets/node_modules/stylelint-scss/dist/rules/at-import-partial-extension-whitelist/index.js @@ -0,0 +1,82 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = _default; +exports.messages = exports.ruleName = void 0; + +var _lodash = require("lodash"); + +var _stylelint = require("stylelint"); + +var _utils = require("../../utils"); + +var _path = _interopRequireDefault(require("path")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +var ruleName = (0, _utils.namespace)("at-import-partial-extension-whitelist"); +exports.ruleName = ruleName; + +var messages = _stylelint.utils.ruleMessages(ruleName, { + rejected: function rejected(ext) { + return "Unexpected extension \".".concat(ext, "\" in imported partial name"); + } +}); + +exports.messages = messages; + +function _default(whitelistOption) { + var whitelist = [].concat(whitelistOption); + return function (root, result) { + var validOptions = _stylelint.utils.validateOptions(result, ruleName, { + actual: whitelistOption, + possible: [_lodash.isString, _lodash.isRegExp] + }); + + if (!validOptions) { + return; + } + + function checkPathForUnderscore(path, decl) { + // Stripping trailing quotes and whitespaces, if any + var pathStripped = path.replace(/^\s*?("|')\s*/, "").replace(/\s*("|')\s*?$/, ""); + + var extension = _path["default"].extname(pathStripped).slice(1); // Save this separately to be able to pass the original string to report() + + + var extensionNormalized = extension.toLowerCase(); // If the extension is empty + + if (!extension) { + return; + } // Skipping importing CSS: url(), ".css", URI with a protocol, media + + + if (pathStripped.slice(0, 4) === "url(" || pathStripped.slice(-4) === ".css" || pathStripped.search("//") !== -1 || pathStripped.search(/(?:\s|[,)"'])\w+$/) !== -1) { + return; + } + + if (whitelist.some(function (ext) { + return (0, _lodash.isString)(ext) && extensionNormalized === ext || (0, _lodash.isRegExp)(ext) && extensionNormalized.search(ext) !== -1; + })) { + return; + } + + _stylelint.utils.report({ + message: messages.rejected(extension), + node: decl, + word: extension, + result: result, + ruleName: ruleName + }); + } + + root.walkAtRules("import", function (atRule) { + // Processing comma-separated lists of import paths + atRule.params.split(",").forEach(function (path) { + checkPathForUnderscore(path, atRule); + }); + }); + }; +}
\ No newline at end of file |