You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'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;
|