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/csso/lib/restructure/2-initialMergeRuleset.js | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/csso/lib/restructure/2-initialMergeRuleset.js')
| -rw-r--r-- | node_modules/csso/lib/restructure/2-initialMergeRuleset.js | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/node_modules/csso/lib/restructure/2-initialMergeRuleset.js b/node_modules/csso/lib/restructure/2-initialMergeRuleset.js deleted file mode 100644 index c49abaa0..00000000 --- a/node_modules/csso/lib/restructure/2-initialMergeRuleset.js +++ /dev/null @@ -1,53 +0,0 @@ -import { walk } from 'css-tree'; -import { - unsafeToSkipNode, - isEqualSelectors, - isEqualDeclarations, - addSelectors, - hasSimilarSelectors -} from './utils.js'; - -function processRule(node, item, list) { - const selectors = node.prelude.children; - const declarations = node.block.children; - - list.prevUntil(item.prev, function(prev) { - // skip non-ruleset node if safe - if (prev.type !== 'Rule') { - return unsafeToSkipNode.call(selectors, prev); - } - - const prevSelectors = prev.prelude.children; - const prevDeclarations = prev.block.children; - - // try to join rulesets with equal pseudo signature - if (node.pseudoSignature === prev.pseudoSignature) { - // try to join by selectors - if (isEqualSelectors(prevSelectors, selectors)) { - prevDeclarations.appendList(declarations); - list.remove(item); - return true; - } - - // try to join by declarations - if (isEqualDeclarations(declarations, prevDeclarations)) { - addSelectors(prevSelectors, selectors); - list.remove(item); - return true; - } - } - - // go to prev ruleset if has no selector similarities - return hasSimilarSelectors(selectors, prevSelectors); - }); -} - -// NOTE: direction should be left to right, since rulesets merge to left -// ruleset. When direction right to left unmerged rulesets may prevent lookup -// TODO: remove initial merge -export default function initialMergeRule(ast) { - walk(ast, { - visit: 'Rule', - enter: processRule - }); -}; |
