UNPKG

stylelint-value-list-box-shadow-inset-first

Version:

Stylelint rule for checking if box-shadow inset values are first in list.

68 lines (60 loc) 2.01 kB
'use strict'; var util = require('node:util'); var stylelint = require('stylelint'); var valueParser = require('postcss-value-parser'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var util__default = /*#__PURE__*/_interopDefaultLegacy(util); var stylelint__default = /*#__PURE__*/_interopDefaultLegacy(stylelint); var valueParser__default = /*#__PURE__*/_interopDefaultLegacy(valueParser); const ruleName = 'plugin/value-list-box-shadow-inset-first'; const messages = stylelint__default["default"].utils.ruleMessages(ruleName, { expected: 'Expected box-shadow inset values to be first in the value list.' }); /** * @type {stylelint.RuleBase} */ function ruleFunction(/** @type boolean*/bool) { return function (cssRoot, result) { const validOptions = stylelint__default["default"].utils.validateOptions(result, ruleName, { actual: bool }); if (!validOptions) { return; } cssRoot.walkDecls('box-shadow', decl => { /** @type {string[]} */ const list = []; valueParser__default["default"](decl.value).walk(node => { if (node.type === 'function') { return false; } if (node.value === 'inset' || node.value === ',') { list.push(node.value); } }); const inputOrder = list.map(item => { if (item === ',') { return 'normal'; } return item; }); const correctOrder = [...inputOrder].sort(); if (!util__default["default"].isDeepStrictEqual(inputOrder, correctOrder)) { stylelint__default["default"].utils.report({ ruleName: ruleName, result: result, node: decl, message: messages.expected }); } }); }; } // @ts-ignore const plugin = stylelint__default["default"].createPlugin(ruleName, ruleFunction); var index = { ...plugin, messages }; module.exports = index; //# sourceMappingURL=index.js.map