Skip to content

Commit c3e16bc

Browse files
committed
feat!: reorganize features of frender-html
1 parent 383ad3a commit c3e16bc

File tree

43 files changed

+975
-691
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+975
-691
lines changed

Cargo.lock

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/frender-csr/Cargo.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
name = "frender-csr"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
frender-html = { version = "0.1.0", path = "../frender-html", default-features = false, features = [
8+
"csr",
9+
] }
10+
11+
[features]

packages/frender-csr/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub use frender_html::csr::*;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[package]
2+
name = "frender-html-components"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
frender-html = { version = "0.1.0", path = "../frender-html", default-features = false, features = [
8+
"components",
9+
] }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub use frender_html::html::components::*;

packages/frender-html-expand/src/main.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ fn test_is_special_attribute() {
4040
}
4141

4242
fn expand_and_write(src_root: &Path) -> io::Result<()> {
43-
let items = utils::cargo_expand_html("frender-html", "html")?;
43+
let items = utils::cargo_expand_html(
44+
"frender-html",
45+
"html",
46+
"macros_not_expanded,csr,ssr,components",
47+
)?;
4448

4549
let parent_folder = src_root.join("html");
4650

@@ -76,6 +80,8 @@ fn expand_and_write(src_root: &Path) -> io::Result<()> {
7680
continue;
7781
}
7882

83+
eprintln!("Expand mod {ident}");
84+
7985
assert!(unsafety.is_none());
8086
assert!(semi.is_none());
8187

packages/frender-html-expand/src/utils.rs

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,31 @@ pub fn format_item(item: syn::Item) -> String {
1111
})
1212
}
1313

14-
pub fn cargo_expand_html(pkg_name: &str, mod_name: &str) -> io::Result<Vec<syn::Item>> {
15-
let output = std::process::Command::new("cargo")
14+
pub fn cargo_expand_html(
15+
pkg_name: &str,
16+
mod_name: &str,
17+
features: &str,
18+
) -> io::Result<Vec<syn::Item>> {
19+
let mut command = std::process::Command::new("cargo");
20+
command
1621
.arg("expand")
1722
.arg("-p")
1823
.arg(pkg_name)
1924
.arg("--features")
20-
.arg("macros_not_expanded")
21-
.arg("--ugly")
22-
.output()?;
25+
.arg(features)
26+
.arg("--ugly");
27+
28+
eprintln!(
29+
"Run: {} {}",
30+
command.get_program().to_string_lossy(),
31+
command
32+
.get_args()
33+
.map(|a| a.to_string_lossy())
34+
.collect::<Vec<_>>()
35+
.join(" ")
36+
);
37+
38+
let output = command.output()?;
2339

2440
if !output.status.success() {
2541
io::stdout().write_all(&output.stdout)?;

packages/frender-html/Cargo.toml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ frender-common = { version = "0.1.0", path = "../frender-common" }
1313
# stack_dst = "0.8.1"
1414
gloo-events = { version = "0.2.0", optional = true }
1515
js-sys = { version = "0.3.64", optional = true }
16-
frender-ssr = { version = "0.1.0", path = "../frender-ssr" }
16+
frender-ssr = { version = "0.1.0", path = "../frender-ssr", optional = true }
1717
frender-dom = { version = "0.1.0", path = "../frender-dom" }
1818
async-str-iter = { version = "0.1.0", path = "../async-str-iter" }
1919
either = { version = "1.9.0", default-features = false, optional = true }
@@ -105,8 +105,10 @@ features = [
105105
]
106106

107107
[features]
108-
# default = ["components", "macros_not_expanded"] # TODO: remove
109-
default = ["components"] # TODO: remove
108+
macros_not_expanded = []
109+
components = []
110+
csr = []
111+
ssr = ["dep:frender-ssr"]
110112
web = [
111113
"frender-style/web",
112114
"frender-dom/web",
@@ -116,14 +118,17 @@ web = [
116118
"dep:web-sys",
117119
"dep:wasm-bindgen",
118120
]
119-
macros_not_expanded = []
121+
# impl CsrElement for either::Either
122+
# Also requires csr
120123
either = [
121124
"dep:either",
122125
"frender-ssr/either",
123126
"frender-dom/either",
124127
"frender-form-control/either",
125128
]
126129
ElementProxyAttrs = ["dep:ref-cast"]
127-
components = []
130+
# Enables frender-form-control/chrono
131+
# Also requires ssr
128132
chrono = ["frender-form-control/chrono"]
133+
# Also requires csr
129134
experimental = []

0 commit comments

Comments
 (0)