diff --git a/Cargo.lock b/Cargo.lock index ec2ca70..726c7c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1785,9 +1785,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if", "serde", @@ -1797,9 +1797,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -1824,9 +1824,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1834,9 +1834,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -1847,9 +1847,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "web-sys" diff --git a/flake.nix b/flake.nix index e674c2b..93b089a 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,6 @@ outputs = {self, nixpkgs, flake-utils, rust-overlay, naersk, gitignore, flake-compat}: let kitchenGen = (import ./nix/kitchen/default.nix); - trunkGen = (import ./nix/trunk/default.nix); kitchenWasmGen = (import ./nix/kitchenWasm/default.nix); cargoVendorGen = (import ./nix/cargoVendorDeps/default.nix); moduleGen = (import ./nix/kitchen/module.nix); @@ -31,13 +30,12 @@ targets = [ "wasm32-unknown-unknown" ]; }; naersk-lib = naersk.lib."${system}"; - trunk = trunkGen { inherit pkgs naersk-lib; }; cargoVendorDeps = cargoVendorGen { inherit pkgs version; lockFile = ./Cargo.lock; }; kitchenWasm = kitchenWasmGen { - inherit pkgs cargoVendorDeps rust-wasm trunk version; + inherit pkgs cargoVendorDeps rust-wasm version; }; kitchen = (kitchenGen { inherit pkgs version naersk-lib kitchenWasm;# cargoVendorDeps; @@ -48,8 +46,7 @@ in { packages = { - inherit trunk - cargoVendorDeps + inherit cargoVendorDeps kitchenWasm kitchen ; @@ -61,7 +58,7 @@ program = "${kitchen}/bin/kitchen"; }; devShell = pkgs.mkShell { - buildInputs = [ trunk rust-wasm ]; + buildInputs = [ rust-wasm ] ++ (with pkgs; [wasm-bindgen-cli wasm-pack]); }; } ); diff --git a/nix/kitchenWasm/default.nix b/nix/kitchenWasm/default.nix index 327cd64..ff9adec 100644 --- a/nix/kitchenWasm/default.nix +++ b/nix/kitchenWasm/default.nix @@ -12,8 +12,8 @@ in stdenv.mkDerivation { inherit src pname; version = version; - # we need wasmb-bindgen v0.2.78 ideally - buildInputs = [ trunk rust-wasm wasm-bindgen-cli ]; + # we need wasmb-bindgen v0.2.78 exactly + buildInputs = [ rust-wasm wasm-bindgen-cli wasm-pack binaryen]; phases = [ "postUnpackPhase" "buildPhase"]; postUnpackPhase = '' ln -s ${cargoVendorDeps} ./cargo-vendor-dir @@ -22,9 +22,11 @@ stdenv.mkDerivation { ''; # TODO(jwall): Build this from the root rather than the src. buildPhase = '' - echo building with trunk + echo building with wasm-pack mkdir -p $out cd web - trunk build --release --public-url /ui/ --dist $out; + cp -r static $out + wasm-pack build --target web --out-dir $out; + cp -r index.html $out ''; } \ No newline at end of file diff --git a/nix/trunk/default.nix b/nix/trunk/default.nix deleted file mode 100644 index ce1b81c..0000000 --- a/nix/trunk/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{pkgs ? (import ) {}, - naersk-lib, -}: -with pkgs; -naersk-lib.buildPackage rec { - pname = "trunk"; - version = "v0.14.0"; - src = fetchFromGitHub { - owner = "thedodd"; - repo = pname; - rev = version; - sha256 = "sha256-69MQDIF79pSuaOgZEIqb/ESPQzL7MUiQaJaxPccGxo8="; - }; - - # Trunk uses the network in it's test which is lame. We'll work around - # by disabling here for now. - doCheck = false; - meta = { - description = "Trunk rust web assembly bundler"; - }; -} \ No newline at end of file diff --git a/web/Cargo.toml b/web/Cargo.toml index cb6072b..853efe5 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -9,6 +9,8 @@ web = [] default = ["web"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +crate-type = ["cdylib", "rlib"] [dependencies] recipes = {path = "../recipes" } @@ -19,7 +21,8 @@ sycamore-router = "0.7.1" serde_json = "1.0.79" [dependencies.wasm-bindgen] -version = "0.2.80" +# we need wasm-bindgen v0.2.78 exactly +version = "0.2.78" [dependencies.web-sys] version = "0.3" diff --git a/web/index.html b/web/index.html index c062ca1..4d1bbee 100644 --- a/web/index.html +++ b/web/index.html @@ -19,12 +19,20 @@ - - + + -
+
+ \ No newline at end of file diff --git a/web/src/main.rs b/web/src/lib.rs similarity index 91% rename from web/src/main.rs rename to web/src/lib.rs index 3ec7dec..8034f50 100644 --- a/web/src/main.rs +++ b/web/src/lib.rs @@ -11,18 +11,20 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +mod app_state; mod components; mod pages; mod service; mod typings; mod web; -mod app_state; use sycamore::prelude::*; +use wasm_bindgen::prelude::wasm_bindgen; use web::UI; -fn main() { +#[wasm_bindgen(start)] +pub fn main() { #[cfg(debug_assertions)] { console_error_panic_hook::set_once();