diff --git a/Cargo.lock b/Cargo.lock
index 64a78323c0ef..ec00cea1d0b5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3774,8 +3774,11 @@ name = "wasm_test_site"
version = "0.1.0"
dependencies = [
"console_error_panic_hook",
+ "hydroflow",
"wasm-bindgen",
+ "wasm-bindgen-futures",
"wasm-bindgen-test",
+ "web-sys",
]
[[package]]
@@ -3846,7 +3849,6 @@ dependencies = [
"syn 2.0.75",
"tokio",
"wasm-bindgen",
- "wasm-bindgen-futures",
"wasm-bindgen-test",
"web-sys",
]
diff --git a/wasm_test_site/Cargo.toml b/wasm_test_site/Cargo.toml
index 201833e0e203..9bf32fb4c69c 100644
--- a/wasm_test_site/Cargo.toml
+++ b/wasm_test_site/Cargo.toml
@@ -7,17 +7,17 @@ edition = "2018"
[lib]
crate-type = ["cdylib", "rlib"]
-[features]
-default = ["console_error_panic_hook"]
-
[dependencies]
+hydroflow = { path = "../hydroflow" }
wasm-bindgen = "0.2.84"
+wasm-bindgen-futures = "0.4.43"
+web-sys = { version = "0.3.51", features = [ "console" ] }
# The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
-console_error_panic_hook = { version = "0.1.7", optional = true }
+console_error_panic_hook = "0.1.7"
[dev-dependencies]
wasm-bindgen-test = "0.3.34"
diff --git a/wasm_test_site/README.md b/wasm_test_site/README.md
index 6b684085003f..6279fd688ffa 100644
--- a/wasm_test_site/README.md
+++ b/wasm_test_site/README.md
@@ -1,3 +1,7 @@
+# Go to `www/README.md`
+
+---
+
wasm-pack-template
diff --git a/wasm_test_site/src/lib.rs b/wasm_test_site/src/lib.rs
index 097364b401b7..4ccae8151197 100644
--- a/wasm_test_site/src/lib.rs
+++ b/wasm_test_site/src/lib.rs
@@ -1,15 +1,31 @@
-mod utils;
-
-use utils::set_panic_hook;
use wasm_bindgen::prelude::*;
-#[wasm_bindgen]
-extern "C" {
- fn alert(s: &str);
+fn log(string: impl AsRef
) {
+ web_sys::console::log_1(&JsValue::from_str(string.as_ref()));
}
#[wasm_bindgen]
pub fn greet() {
- set_panic_hook();
- alert("Hello, wasm_test_site!");
+ console_error_panic_hook::set_once();
+
+ log("Hello, wasm_test_site!");
+}
+
+#[wasm_bindgen]
+pub fn test_hydroflow() -> web_sys::js_sys::Promise {
+ console_error_panic_hook::set_once();
+
+ let mut df = hydroflow::hydroflow_syntax! {
+ // https://hydro.run/docs/hydroflow/quickstart/example_1_simplest
+ source_iter(0..10) -> for_each(|n| log(format!("Hello {}", n)));
+ };
+
+ wasm_bindgen_futures::future_to_promise(async move {
+ let work_done = df.run_available_async().await;
+ Ok(if work_done {
+ JsValue::TRUE
+ } else {
+ JsValue::FALSE
+ })
+ })
}
diff --git a/wasm_test_site/src/utils.rs b/wasm_test_site/src/utils.rs
deleted file mode 100644
index b1d7929dc9c4..000000000000
--- a/wasm_test_site/src/utils.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-pub fn set_panic_hook() {
- // When the `console_error_panic_hook` feature is enabled, we can call the
- // `set_panic_hook` function at least once during initialization, and then
- // we will get better error messages if our code ever panics.
- //
- // For more details see
- // https://github.com/rustwasm/console_error_panic_hook#readme
- #[cfg(feature = "console_error_panic_hook")]
- console_error_panic_hook::set_once();
-}
diff --git a/wasm_test_site/www/README.md b/wasm_test_site/www/README.md
index d658bb162bf2..e0bb5ed4374b 100644
--- a/wasm_test_site/www/README.md
+++ b/wasm_test_site/www/README.md
@@ -1,3 +1,15 @@
+Run once to init:
+```
+npm ci
+```
+Run to rebuild:
+```
+npm run wasm
+npm run dev
+```
+
+---
+
create-wasm-app
diff --git a/wasm_test_site/www/index.ts b/wasm_test_site/www/index.ts
index 5364de1a1610..31168be73a8a 100644
--- a/wasm_test_site/www/index.ts
+++ b/wasm_test_site/www/index.ts
@@ -1,3 +1,4 @@
-import init, { greet } from "wasm_test_site";
+import init, { greet, test_hydroflow } from "wasm_test_site";
let { memory } = await init();
greet();
+test_hydroflow();
diff --git a/wasm_test_site/www/package.json b/wasm_test_site/www/package.json
index f7b4eea9bea0..0b2a75af9d98 100644
--- a/wasm_test_site/www/package.json
+++ b/wasm_test_site/www/package.json
@@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"build": "vite build",
- "serve": "vite serve",
+ "dev": "vite serve",
"preview": "vite preview",
"wasm": "wasm-pack build ../ --target web"
},
diff --git a/website_playground/Cargo.toml b/website_playground/Cargo.toml
index 3337bd245d34..b985fd2db4d2 100644
--- a/website_playground/Cargo.toml
+++ b/website_playground/Cargo.toml
@@ -23,7 +23,6 @@ serde-wasm-bindgen = "0.4.5"
syn = { version = "2.0.46", features = [ "parsing", "extra-traits" ] }
tokio = { version = "1.29.0", features = [ "sync" ] }
wasm-bindgen = "0.2.83"
-wasm-bindgen-futures = "0.4.43"
web-sys = { version = "0.3.51", features = [ "console" ] }
# The `console_error_panic_hook` crate provides better debugging of panics by
diff --git a/website_playground/src/lib.rs b/website_playground/src/lib.rs
index f276a365ece2..f996c62b618e 100644
--- a/website_playground/src/lib.rs
+++ b/website_playground/src/lib.rs
@@ -281,20 +281,3 @@ pub fn send_datalog_boolean_demo(instance_name: &str, input: i32) -> Option
}
})
}
-
-#[wasm_bindgen]
-pub fn test_hydroflow() -> web_sys::js_sys::Promise {
- let mut df = hydroflow::hydroflow_syntax! {
- // https://hydro.run/docs/hydroflow/quickstart/example_1_simplest
- source_iter(0..10) -> for_each(|n| log(&format!("Hello {}", n)));
- };
-
- wasm_bindgen_futures::future_to_promise(async move {
- let work_done = df.run_available_async().await;
- Ok(if work_done {
- JsValue::TRUE
- } else {
- JsValue::FALSE
- })
- })
-}