diff --git a/css-doodle.js b/css-doodle.js index 4014a8b..2ce817e 100644 --- a/css-doodle.js +++ b/css-doodle.js @@ -196,6 +196,7 @@ function compose_rule(token, coords) { function compose_tokens(tokens, set, coords) { tokens.forEach((token, i) => { if (token.skip) return false; + switch (token.type) { case 'rule': set.add( @@ -206,7 +207,11 @@ function compose_tokens(tokens, set, coords) { case 'psudo': { let is_host_selector = - !!token.selector.startsWith(':host'); + token.selector.startsWith(':host'); + + if (is_host_selector) { + token.skip = true; + } let psudo_rules = token.styles.map(s => compose_rule(s, coords)); @@ -216,10 +221,6 @@ function compose_tokens(tokens, set, coords) { : compose_selector(coords.count, token.selector); set.add(selector, psudo_rules); - - if (is_host_selector) { - token.skip = true; - } break; } diff --git a/src/generator.js b/src/generator.js index bbefaa1..3598fd7 100644 --- a/src/generator.js +++ b/src/generator.js @@ -65,6 +65,7 @@ function compose_rule(token, coords) { function compose_tokens(tokens, set, coords) { tokens.forEach((token, i) => { if (token.skip) return false; + switch (token.type) { case 'rule': set.add( @@ -75,7 +76,11 @@ function compose_tokens(tokens, set, coords) { case 'psudo': { let is_host_selector = - !!token.selector.startsWith(':host'); + token.selector.startsWith(':host'); + + if (is_host_selector) { + token.skip = true; + } let psudo_rules = token.styles.map(s => compose_rule(s, coords)); @@ -85,10 +90,6 @@ function compose_tokens(tokens, set, coords) { : compose_selector(coords.count, token.selector); set.add(selector, psudo_rules); - - if (is_host_selector) { - token.skip = true; - } break; }