stylelint/no_gl_media_breakpoint_down.js (31 lines of code) (raw):

const stylelint = require('stylelint'); const { createPlugin, utils: { report, ruleMessages }, } = stylelint; const MIXIN_NAME = 'gl-media-breakpoint-down'; const ruleName = `@gitlab/no-${MIXIN_NAME}`; const messages = ruleMessages(ruleName, { expected: (unfixed, fixed) => `Usage of "${unfixed}" should be avoided, consider using "${fixed}" instead`, }); const ruleFunction = () => { return (postcssRoot, postcssResult) => { postcssRoot.walkAtRules('include', (decl) => { const usesGlMediaBreakpointDown = decl.params.startsWith(MIXIN_NAME); if (!usesGlMediaBreakpointDown) { return; } report({ ruleName, result: postcssResult, message: messages.expected(MIXIN_NAME, 'gl-media-breakpoint-up'), node: decl, word: MIXIN_NAME, }); }); }; }; module.exports = createPlugin(ruleName, ruleFunction); module.exports.ruleName = ruleName; module.exports.messages = messages;