![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/postcss-discard-overridden/src/ |
import postcss from 'postcss'; const OVERRIDABLE_RULES = ['keyframes', 'counter-style']; const SCOPE_RULES = ['media', 'supports']; function isOverridable (name) { return ~OVERRIDABLE_RULES.indexOf(postcss.vendor.unprefixed(name.toLowerCase())); } function isScope (name) { return ~SCOPE_RULES.indexOf(postcss.vendor.unprefixed(name.toLowerCase())); } function getScope (node) { let current = node.parent; const chain = [node.name.toLowerCase(), node.params]; do { if (current.type === 'atrule' && isScope(current.name)) { chain.unshift(current.name + ' ' + current.params); } current = current.parent; } while (current); return chain.join('|'); } export default postcss.plugin('postcss-discard-overridden', () => { return css => { const cache = {}; const rules = []; css.walkAtRules(node => { if (isOverridable(node.name)) { const scope = getScope(node); cache[scope] = node; rules.push({ node, scope, }); } }); rules.forEach(rule => { if (cache[rule.scope] !== rule.node) { rule.node.remove(); } }); }; });