diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-19 00:42:53 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-19 00:42:53 +0100 |
| commit | 1adce5a199952eb6fd3f9ebfc7038f5e479e5271 (patch) | |
| tree | 6dd1d254592822913ac187fb301ce4b95a3e5d9a /ui/client-scripts/src/lib.rs | |
| parent | 38c3903265d3f47206e13232606d864b05ad00cc (diff) | |
| download | jellything-1adce5a199952eb6fd3f9ebfc7038f5e479e5271.tar jellything-1adce5a199952eb6fd3f9ebfc7038f5e479e5271.tar.bz2 jellything-1adce5a199952eb6fd3f9ebfc7038f5e479e5271.tar.zst | |
javascript hot reload
Diffstat (limited to 'ui/client-scripts/src/lib.rs')
| -rw-r--r-- | ui/client-scripts/src/lib.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ui/client-scripts/src/lib.rs b/ui/client-scripts/src/lib.rs index 408799a..9ac96e4 100644 --- a/ui/client-scripts/src/lib.rs +++ b/ui/client-scripts/src/lib.rs @@ -5,9 +5,43 @@ */ use std::borrow::Cow; +#[cfg(not(feature = "reload"))] pub fn js_bundle() -> Cow<'static, str> { include_str!(concat!(env!("OUT_DIR"), "/bundle.js")).into() } +#[cfg(not(feature = "reload"))] pub fn js_bundle_map() -> Cow<'static, str> { include_str!(concat!(env!("OUT_DIR"), "/bundle.js.map")).into() } + +#[cfg(feature = "reload")] +pub fn js_bundle() -> Cow<'static, str> { + use std::process::{Command, Stdio}; + + let proc = Command::new("esbuild") + .arg("ui/client-scripts/src/main.ts") + .arg("--bundle") + .arg("--target=esnext") + .arg("--sourcemap") + .arg("--format=esm") + .stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .spawn() + .unwrap(); + + let output = proc.wait_with_output().unwrap(); + + Cow::Owned(if output.status.success() { + String::from_utf8(output.stdout).unwrap() + } else { + format!( + "console.error({:?})", + String::from_utf8(output.stderr).unwrap() + ) + }) +} + +#[cfg(feature = "reload")] +pub fn js_bundle_map() -> Cow<'static, str> { + Cow::Borrowed("") +} |