From fc87c009806dcc98867f6b58efe29b042aa01dee Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 18 May 2026 23:10:59 +0800 Subject: node: update --- .../postcss-discard-overridden/src/index.js | 94 ---------------------- 1 file changed, 94 deletions(-) delete mode 100644 node_modules/postcss-discard-overridden/src/index.js (limited to 'node_modules/postcss-discard-overridden/src') diff --git a/node_modules/postcss-discard-overridden/src/index.js b/node_modules/postcss-discard-overridden/src/index.js deleted file mode 100644 index 97c8f62e..00000000 --- a/node_modules/postcss-discard-overridden/src/index.js +++ /dev/null @@ -1,94 +0,0 @@ -'use strict'; -const OVERRIDABLE_RULES = new Set(['keyframes', 'counter-style']); -const SCOPE_RULES = new Set(['media', 'supports']); - -/** - * @param {string} prop - * @return {string} - */ -function vendorUnprefixed(prop) { - return prop.replace(/^-\w+-/, ''); -} - -/** - * @param {string} name - * @return {boolean} - */ -function isOverridable(name) { - return OVERRIDABLE_RULES.has(vendorUnprefixed(name.toLowerCase())); -} - -/** - * @param {string} name - * @return {boolean} - */ -function isScope(name) { - return SCOPE_RULES.has(vendorUnprefixed(name.toLowerCase())); -} - -/** - * @param {import('postcss').AtRule} node - * @return {string} - */ -function getScope(node) { - /** @type {import('postcss').Container | import('postcss').Document | undefined} */ - let current = node.parent; - - const chain = [node.name.toLowerCase(), node.params]; - - while (current) { - if ( - current.type === 'atrule' && - isScope(/** @type import('postcss').AtRule */ (current).name) - ) { - chain.unshift( - /** @type import('postcss').AtRule */ (current).name + - ' ' + - /** @type import('postcss').AtRule */ (current).params - ); - } - current = current.parent; - } - - return chain.join('|'); -} - -/** - * @type {import('postcss').PluginCreator} - * @return {import('postcss').Plugin} - */ -function pluginCreator() { - return { - postcssPlugin: 'postcss-discard-overridden', - prepare() { - const cache = new Map(); - /** @type {{node: import('postcss').AtRule, scope: string}[]} */ - const rules = []; - - return { - OnceExit(css) { - css.walkAtRules((node) => { - if (isOverridable(node.name)) { - const scope = getScope(node); - - cache.set(scope, node); - rules.push({ - node, - scope, - }); - } - }); - - rules.forEach((rule) => { - if (cache.get(rule.scope) !== rule.node) { - rule.node.remove(); - } - }); - }, - }; - }, - }; -} - -pluginCreator.postcss = true; -module.exports = pluginCreator; -- cgit v1.2.3