Urara-Blog/node_modules/.pnpm-store/v3/files/ae/aa2925c3e8b61e65ca89bcdd7f8844922614329a1591153dba35d8e00b739983861f52fa73f108b7714dfaa755d3b5522f51ebab5dce83b5f0414597b81dab
2022-08-14 01:14:53 +08:00

57 lines
1.3 KiB
Text

'use strict';
const plugin = 'postcss-discard-empty';
/**
* @param {import('postcss').Root} css
* @param {import('postcss').Result} result
* @return {void}
*/
function discardAndReport(css, result) {
/**
* @param {import('postcss').AnyNode} node
* @return {void}
*/
function discardEmpty(node) {
const { type } = node;
/** @type {(import('postcss').ChildNode | import('postcss').ChildProps)[] | undefined} */
const sub = /** @type {any} */ (node).nodes;
if (sub) {
/** @type {import('postcss').Container} */ (node).each(discardEmpty);
}
if (
(type === 'decl' && !node.value && !node.prop.startsWith('--')) ||
(type === 'rule' && !node.selector) ||
(sub && !sub.length) ||
(type === 'atrule' &&
((!sub && !node.params) ||
(!node.params &&
!(/** @type {import('postcss').ChildNode[]}*/ (sub).length))))
) {
node.remove();
result.messages.push({
type: 'removal',
plugin,
node,
});
}
}
css.each(discardEmpty);
}
/**
* @type {import('postcss').PluginCreator<void>}
* @return {import('postcss').Plugin}
*/
function pluginCreator() {
return {
postcssPlugin: plugin,
OnceExit(css, { result }) {
discardAndReport(css, result);
},
};
}
pluginCreator.postcss = true;
module.exports = pluginCreator;