From fc87c009806dcc98867f6b58efe29b042aa01dee Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 18 May 2026 23:10:59 +0800 Subject: node: update --- .../csso/cjs/restructure/7-mergeRuleset.cjs | 90 ---------------------- 1 file changed, 90 deletions(-) delete mode 100644 node_modules/csso/cjs/restructure/7-mergeRuleset.cjs (limited to 'node_modules/csso/cjs/restructure/7-mergeRuleset.cjs') diff --git a/node_modules/csso/cjs/restructure/7-mergeRuleset.cjs b/node_modules/csso/cjs/restructure/7-mergeRuleset.cjs deleted file mode 100644 index 797b9401..00000000 --- a/node_modules/csso/cjs/restructure/7-mergeRuleset.cjs +++ /dev/null @@ -1,90 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); -const utils = require('./utils.cjs'); - -/* - At this step all rules has single simple selector. We try to join by equal - declaration blocks to first rule, e.g. - - .a { color: red } - b { ... } - .b { color: red } - -> - .a, .b { color: red } - b { ... } -*/ - -function processRule(node, item, list) { - const selectors = node.prelude.children; - const declarations = node.block.children; - const nodeCompareMarker = selectors.first.compareMarker; - const skippedCompareMarkers = {}; - - list.nextUntil(item.next, function(next, nextItem) { - // skip non-ruleset node if safe - if (next.type !== 'Rule') { - return utils.unsafeToSkipNode.call(selectors, next); - } - - if (node.pseudoSignature !== next.pseudoSignature) { - return true; - } - - const nextFirstSelector = next.prelude.children.head; - const nextDeclarations = next.block.children; - const nextCompareMarker = nextFirstSelector.data.compareMarker; - - // if next ruleset has same marked as one of skipped then stop joining - if (nextCompareMarker in skippedCompareMarkers) { - return true; - } - - // try to join by selectors - if (selectors.head === selectors.tail) { - if (selectors.first.id === nextFirstSelector.data.id) { - declarations.appendList(nextDeclarations); - list.remove(nextItem); - return; - } - } - - // try to join by properties - if (utils.isEqualDeclarations(declarations, nextDeclarations)) { - const nextStr = nextFirstSelector.data.id; - - selectors.some((data, item) => { - const curStr = data.id; - - if (nextStr < curStr) { - selectors.insert(nextFirstSelector, item); - return true; - } - - if (!item.next) { - selectors.insert(nextFirstSelector); - return true; - } - }); - - list.remove(nextItem); - return; - } - - // go to next ruleset if current one can be skipped (has no equal specificity nor element selector) - if (nextCompareMarker === nodeCompareMarker) { - return true; - } - - skippedCompareMarkers[nextCompareMarker] = true; - }); -} - -function mergeRule(ast) { - cssTree.walk(ast, { - visit: 'Rule', - enter: processRule - }); -} - -module.exports = mergeRule; -- cgit v1.2.3