diff options
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 - }); -}; |
