aboutsummaryrefslogtreecommitdiff
path: root/ui/client-scripts/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-19 00:42:53 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-19 00:42:53 +0100
commit1adce5a199952eb6fd3f9ebfc7038f5e479e5271 (patch)
tree6dd1d254592822913ac187fb301ce4b95a3e5d9a /ui/client-scripts/src/lib.rs
parent38c3903265d3f47206e13232606d864b05ad00cc (diff)
downloadjellything-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.rs34
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("")
+}