diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/postcss-normalize-whitespace/src | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/postcss-normalize-whitespace/src')
| -rw-r--r-- | node_modules/postcss-normalize-whitespace/src/index.js | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/node_modules/postcss-normalize-whitespace/src/index.js b/node_modules/postcss-normalize-whitespace/src/index.js deleted file mode 100644 index bc7d6426..00000000 --- a/node_modules/postcss-normalize-whitespace/src/index.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; -const valueParser = require('postcss-value-parser'); - -const atrule = 'atrule'; -const decl = 'decl'; -const rule = 'rule'; -const variableFunctions = new Set(['var', 'env', 'constant']); - -/** - * @param {valueParser.Node} node - * @return {void} - */ -function reduceCalcWhitespaces(node) { - if (node.type === 'space') { - node.value = ' '; - } else if (node.type === 'function') { - if (!variableFunctions.has(node.value.toLowerCase())) { - node.before = node.after = ''; - } - } -} -/** - * @param {valueParser.Node} node - * @return {void | false} - */ -function reduceWhitespaces(node) { - if (node.type === 'space') { - node.value = ' '; - } else if (node.type === 'div') { - node.before = node.after = ''; - } else if (node.type === 'function') { - if (!variableFunctions.has(node.value.toLowerCase())) { - node.before = node.after = ''; - } - if (node.value.toLowerCase() === 'calc') { - valueParser.walk(node.nodes, reduceCalcWhitespaces); - return false; - } - } -} - -/** - * @type {import('postcss').PluginCreator<void>} - * @return {import('postcss').Plugin} - */ -function pluginCreator() { - return { - postcssPlugin: 'postcss-normalize-whitespace', - - OnceExit(css) { - const cache = new Map(); - - css.walk((node) => { - const { type } = node; - - if ([decl, rule, atrule].includes(type) && node.raws.before) { - node.raws.before = node.raws.before.replace(/\s/g, ''); - } - - if (type === decl) { - // Ensure that !important values do not have any excess whitespace - if (node.important) { - node.raws.important = '!important'; - } - - // Remove whitespaces around ie 9 hack - node.value = node.value.replace(/\s*(\\9)\s*/, '$1'); - const value = node.value; - - if (cache.has(value)) { - node.value = cache.get(value); - } else { - const parsed = valueParser(node.value); - const result = parsed.walk(reduceWhitespaces).toString(); - - // Trim whitespace inside functions & dividers - node.value = result; - cache.set(value, result); - } - - if (node.prop.startsWith('--') && node.value === '') { - node.value = ' '; - } - // Remove extra semicolons and whitespace before the declaration - if (node.raws.before) { - const prev = node.prev(); - - if (prev && prev.type !== rule) { - node.raws.before = node.raws.before.replace(/;/g, ''); - } - } - - node.raws.between = ':'; - node.raws.semicolon = false; - } else if (type === rule || type === atrule) { - node.raws.between = node.raws.after = ''; - node.raws.semicolon = false; - } - }); - - // Remove final newline - css.raws.after = ''; - }, - }; -} - -pluginCreator.postcss = true; -module.exports = pluginCreator; |
