From 1334dd534bd5d4e320244d4fc71230145bb21ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 14:59:40 +0900 Subject: [PATCH 1/9] Compiler --- crates/swc_css_compat/src/compiler/mod.rs | 2 ++ crates/swc_css_compat/src/lib.rs | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 crates/swc_css_compat/src/compiler/mod.rs diff --git a/crates/swc_css_compat/src/compiler/mod.rs b/crates/swc_css_compat/src/compiler/mod.rs new file mode 100644 index 000000000000..67c41541e5c0 --- /dev/null +++ b/crates/swc_css_compat/src/compiler/mod.rs @@ -0,0 +1,2 @@ +/// Compiles a modern CSS file to a legacy CSS file. +pub struct Compiler {} diff --git a/crates/swc_css_compat/src/lib.rs b/crates/swc_css_compat/src/lib.rs index 485214058c30..b8def98eb856 100644 --- a/crates/swc_css_compat/src/lib.rs +++ b/crates/swc_css_compat/src/lib.rs @@ -1,4 +1,6 @@ #![feature(box_patterns)] #![allow(clippy::vec_box)] +pub mod compiler; +pub mod custom_media_query; pub mod nesting; From a46a611c5f9791f24dd304e4b204486786c700c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:00:06 +0900 Subject: [PATCH 2/9] target --- crates/swc_css_compat/src/lib.rs | 1 + crates/swc_css_compat/src/target.rs | 1 + 2 files changed, 2 insertions(+) create mode 100644 crates/swc_css_compat/src/target.rs diff --git a/crates/swc_css_compat/src/lib.rs b/crates/swc_css_compat/src/lib.rs index b8def98eb856..978ffdd54682 100644 --- a/crates/swc_css_compat/src/lib.rs +++ b/crates/swc_css_compat/src/lib.rs @@ -4,3 +4,4 @@ pub mod compiler; pub mod custom_media_query; pub mod nesting; +pub mod target; diff --git a/crates/swc_css_compat/src/target.rs b/crates/swc_css_compat/src/target.rs new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/crates/swc_css_compat/src/target.rs @@ -0,0 +1 @@ + From f3730e23bfcd17b823933a228c00972869fddaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:01:12 +0900 Subject: [PATCH 3/9] custom_media --- crates/swc_css_compat/src/compiler/custom_media.rs | 1 + crates/swc_css_compat/src/compiler/mod.rs | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 crates/swc_css_compat/src/compiler/custom_media.rs diff --git a/crates/swc_css_compat/src/compiler/custom_media.rs b/crates/swc_css_compat/src/compiler/custom_media.rs new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/crates/swc_css_compat/src/compiler/custom_media.rs @@ -0,0 +1 @@ + diff --git a/crates/swc_css_compat/src/compiler/mod.rs b/crates/swc_css_compat/src/compiler/mod.rs index 67c41541e5c0..8886dbe42262 100644 --- a/crates/swc_css_compat/src/compiler/mod.rs +++ b/crates/swc_css_compat/src/compiler/mod.rs @@ -1,2 +1,4 @@ +mod custom_media; + /// Compiles a modern CSS file to a legacy CSS file. pub struct Compiler {} From fc7a00db82f46eeaa44c3983d8b7c45038965971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:02:09 +0900 Subject: [PATCH 4/9] Config --- crates/swc_css_compat/src/compiler/mod.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/swc_css_compat/src/compiler/mod.rs b/crates/swc_css_compat/src/compiler/mod.rs index 8886dbe42262..52b37f1337b2 100644 --- a/crates/swc_css_compat/src/compiler/mod.rs +++ b/crates/swc_css_compat/src/compiler/mod.rs @@ -1,4 +1,20 @@ +use swc_css_visit::VisitMut; + mod custom_media; /// Compiles a modern CSS file to a legacy CSS file. -pub struct Compiler {} +#[derive(Debug)] +pub struct Compiler { + c: Config, +} + +#[derive(Debug, Default)] +pub struct Config {} + +impl Compiler { + pub fn new(config: Config) -> Self { + Self { c: config } + } +} + +impl VisitMut for Compiler {} From 5132549ae418a3c406ede7af46a118dafcdea602 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:07:55 +0900 Subject: [PATCH 5/9] feat --- crates/swc_css_compat/src/target.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/swc_css_compat/src/target.rs b/crates/swc_css_compat/src/target.rs index 8b137891791f..c5c39935f55f 100644 --- a/crates/swc_css_compat/src/target.rs +++ b/crates/swc_css_compat/src/target.rs @@ -1 +1 @@ - +pub struct SupportedFeatures {} From fae7dd47fa1126a9c471e597d8037e35f44fdfdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:08:49 +0900 Subject: [PATCH 6/9] compiler --- crates/swc_css_compat/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/swc_css_compat/src/lib.rs b/crates/swc_css_compat/src/lib.rs index 978ffdd54682..2473a39a8ccf 100644 --- a/crates/swc_css_compat/src/lib.rs +++ b/crates/swc_css_compat/src/lib.rs @@ -2,6 +2,5 @@ #![allow(clippy::vec_box)] pub mod compiler; -pub mod custom_media_query; pub mod nesting; pub mod target; From bbb630a0447b6097f7bae63bc9599ec8efab009b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:09:59 +0900 Subject: [PATCH 7/9] dep --- Cargo.lock | 1 + crates/swc_css_compat/Cargo.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index eaab1cd4bf5a..f3aca0a54539 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3372,6 +3372,7 @@ dependencies = [ name = "swc_css_compat" version = "0.16.0" dependencies = [ + "bitflags", "once_cell", "serde", "serde_json", diff --git a/crates/swc_css_compat/Cargo.toml b/crates/swc_css_compat/Cargo.toml index 3f77dd721d87..1fe0b755d070 100644 --- a/crates/swc_css_compat/Cargo.toml +++ b/crates/swc_css_compat/Cargo.toml @@ -13,6 +13,7 @@ version = "0.16.0" bench = false [dependencies] +bitflags = "1.3.2" once_cell = "1.10.0" serde = {version = "1.0.118", features = ["derive"]} serde_json = "1.0.61" From 9c072863a276f40285b7ed27dfe76b68ef93aeb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:12:07 +0900 Subject: [PATCH 8/9] Features --- crates/swc_css_compat/src/compiler/mod.rs | 10 ++++++++-- crates/swc_css_compat/src/feature.rs | 7 +++++++ crates/swc_css_compat/src/lib.rs | 2 +- crates/swc_css_compat/src/target.rs | 1 - 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 crates/swc_css_compat/src/feature.rs delete mode 100644 crates/swc_css_compat/src/target.rs diff --git a/crates/swc_css_compat/src/compiler/mod.rs b/crates/swc_css_compat/src/compiler/mod.rs index 52b37f1337b2..9d44be51ce6e 100644 --- a/crates/swc_css_compat/src/compiler/mod.rs +++ b/crates/swc_css_compat/src/compiler/mod.rs @@ -1,15 +1,21 @@ use swc_css_visit::VisitMut; +use crate::feature::Features; + mod custom_media; /// Compiles a modern CSS file to a legacy CSS file. #[derive(Debug)] pub struct Compiler { + #[allow(unused)] c: Config, } -#[derive(Debug, Default)] -pub struct Config {} +#[derive(Debug)] +pub struct Config { + /// The list of features to **process**. + pub process: Features, +} impl Compiler { pub fn new(config: Config) -> Self { diff --git a/crates/swc_css_compat/src/feature.rs b/crates/swc_css_compat/src/feature.rs new file mode 100644 index 000000000000..0d108a34f2b2 --- /dev/null +++ b/crates/swc_css_compat/src/feature.rs @@ -0,0 +1,7 @@ +use bitflags::bitflags; + +bitflags! { + pub struct Features: u64 { + const NESTING = 0b00000001; + } +} diff --git a/crates/swc_css_compat/src/lib.rs b/crates/swc_css_compat/src/lib.rs index 2473a39a8ccf..d990d98d57af 100644 --- a/crates/swc_css_compat/src/lib.rs +++ b/crates/swc_css_compat/src/lib.rs @@ -2,5 +2,5 @@ #![allow(clippy::vec_box)] pub mod compiler; +pub mod feature; pub mod nesting; -pub mod target; diff --git a/crates/swc_css_compat/src/target.rs b/crates/swc_css_compat/src/target.rs deleted file mode 100644 index c5c39935f55f..000000000000 --- a/crates/swc_css_compat/src/target.rs +++ /dev/null @@ -1 +0,0 @@ -pub struct SupportedFeatures {} From 07628c56827f2b3302441a18de9add26b9acdf21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Mon, 12 Dec 2022 15:14:23 +0900 Subject: [PATCH 9/9] Doc --- crates/swc_css_compat/src/compiler/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/swc_css_compat/src/compiler/mod.rs b/crates/swc_css_compat/src/compiler/mod.rs index 9d44be51ce6e..407da9976532 100644 --- a/crates/swc_css_compat/src/compiler/mod.rs +++ b/crates/swc_css_compat/src/compiler/mod.rs @@ -4,7 +4,7 @@ use crate::feature::Features; mod custom_media; -/// Compiles a modern CSS file to a legacy CSS file. +/// Compiles a modern CSS file to a CSS file which works with old browsers. #[derive(Debug)] pub struct Compiler { #[allow(unused)]