From 70091c6bcf8767a4894447d909c59d53e4dad7c2 Mon Sep 17 00:00:00 2001 From: Ludovico Fischer Date: Tue, 11 May 2021 23:09:40 +0200 Subject: [PATCH] chore(postcss-merge-rules): refactor Move all checks together. --- packages/postcss-merge-rules/src/index.js | 5 ----- .../postcss-merge-rules/src/lib/ensureCompatibility.js | 9 +++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/postcss-merge-rules/src/index.js b/packages/postcss-merge-rules/src/index.js index ce1e8b915..eda11f530 100644 --- a/packages/postcss-merge-rules/src/index.js +++ b/packages/postcss-merge-rules/src/index.js @@ -94,11 +94,6 @@ function canMerge(ruleA, ruleB, browsers, compatibilityCache) { const b = ruleB.selectors; const selectors = a.concat(b); - const hasHost = selectors.some((selector) => selector.includes(':host')); - - if (hasHost) { - return false; - } if (!ensureCompatibility(selectors, browsers, compatibilityCache)) { return false; diff --git a/packages/postcss-merge-rules/src/lib/ensureCompatibility.js b/packages/postcss-merge-rules/src/lib/ensureCompatibility.js index 1e52f82de..68e855d4c 100644 --- a/packages/postcss-merge-rules/src/lib/ensureCompatibility.js +++ b/packages/postcss-merge-rules/src/lib/ensureCompatibility.js @@ -61,6 +61,10 @@ function isCssMixin(selector) { return selector[selector.length - 1] === ':'; } +function isHostPseudoClass(selector) { + return selector.includes(':host'); +} + const isSupportedCache = {}; // Move to util in future @@ -85,6 +89,11 @@ export default function ensureCompatibility( if (selectors.some(isCssMixin)) { return false; } + + // Should not merge :host selector https://github.com/angular/angular-cli/issues/18672 + if (selectors.some(isHostPseudoClass)) { + return false; + } return selectors.every((selector) => { if (simpleSelectorRe.test(selector)) { return true;