From 0f785e04a35ee805cb66e96be7ba32fe25141a10 Mon Sep 17 00:00:00 2001 From: Ryan Zimmerman Date: Mon, 29 Mar 2021 16:26:15 -0400 Subject: [PATCH] Fix handling of @charset in media imports Fixes #448 --- index.js | 2 +- test/fixtures/imports/charset-content.css | 2 ++ test/fixtures/media-charset.css | 1 + test/fixtures/media-charset.expected.css | 4 ++++ test/media.js | 6 ++++++ 5 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/imports/charset-content.css create mode 100644 test/fixtures/media-charset.css create mode 100644 test/fixtures/media-charset.expected.css diff --git a/index.js b/index.js index 233a1723..9dd2cc39 100755 --- a/index.js +++ b/index.js @@ -68,7 +68,7 @@ function AtImport(options) { function applyMedia(bundle) { bundle.forEach(stmt => { - if (!stmt.media.length) return + if (!stmt.media.length || stmt.type === "charset") return if (stmt.type === "import") { stmt.node.params = `${stmt.fullUri} ${stmt.media.join(", ")}` } else if (stmt.type === "media") diff --git a/test/fixtures/imports/charset-content.css b/test/fixtures/imports/charset-content.css new file mode 100644 index 00000000..0058c1e6 --- /dev/null +++ b/test/fixtures/imports/charset-content.css @@ -0,0 +1,2 @@ +@charset "UTF-8"; +.charset-content {} diff --git a/test/fixtures/media-charset.css b/test/fixtures/media-charset.css new file mode 100644 index 00000000..b7faa401 --- /dev/null +++ b/test/fixtures/media-charset.css @@ -0,0 +1 @@ +@import "charset-content" level-1; diff --git a/test/fixtures/media-charset.expected.css b/test/fixtures/media-charset.expected.css new file mode 100644 index 00000000..8b65f60c --- /dev/null +++ b/test/fixtures/media-charset.expected.css @@ -0,0 +1,4 @@ +@charset "UTF-8"; +@media level-1{ +.charset-content {} +} diff --git a/test/media.js b/test/media.js index cdac2144..3c0c030a 100644 --- a/test/media.js +++ b/test/media.js @@ -19,4 +19,10 @@ test( "media-content" ) +test( + "should resolve media query imports with charset", + checkFixture, + "media-charset" +) + test("should join correctly media queries", checkFixture, "media-join")