UNPKG

@groww-tech/stylelint-config

Version:

Standard Stylelint config adopted in Groww. Customized as per requirement and preferences of devs in Groww.

44 lines (33 loc) 1.25 kB
const stylelint = require('stylelint'); const ruleName = 'mint/no-primitive-color-variables'; const messages = stylelint.utils.ruleMessages(ruleName, { rejected: (variable) => `The primitive color variable "${variable}" is not allowed. Use a semantic token or a utility class instead. Using a utility class is preferred.` }); const plugin = stylelint.createPlugin(ruleName, function (primaryOption, secondaryOptions) { const rawTokens = (secondaryOptions && Array.isArray(secondaryOptions.primitiveTokens)) ? secondaryOptions.primitiveTokens : []; // Normalize to var(--token) format const bannedVariables = rawTokens.map(t => `var(--${t})`); return function (root, result) { if (!primaryOption) return; root.walkDecls(decl => { const normalizedValue = decl.value.replace(/\s+/g, ' '); const usedBannedVariable = bannedVariables.find(variable => normalizedValue.includes(variable) ); if (usedBannedVariable) { stylelint.utils.report({ node: decl, message: messages.rejected(usedBannedVariable), result, ruleName }); } }); }; }); plugin.ruleName = ruleName; plugin.messages = messages; module.exports = plugin;