diff --git a/.github/workflows/build-wasm.yml b/.github/workflows/build-wasm.yml index f017b2d0c..5fb731d80 100644 --- a/.github/workflows/build-wasm.yml +++ b/.github/workflows/build-wasm.yml @@ -49,7 +49,7 @@ jobs: key: wasm-cargo-cache - name: Install wasm-bindgen-cli - run: cargo install wasm-bindgen-cli --version 0.2.95 + run: cargo install wasm-bindgen-cli --version 0.2.101 - name: Build run: ./build.sh -r diff --git a/crates/bitwarden-wasm/Cargo.toml b/crates/bitwarden-wasm/Cargo.toml index 3cb6182b0..83ab494c5 100644 --- a/crates/bitwarden-wasm/Cargo.toml +++ b/crates/bitwarden-wasm/Cargo.toml @@ -26,7 +26,7 @@ js-sys = "0.3.68" log = "0.4.20" serde = { version = "1.0.196", features = ["derive"] } # When upgrading wasm-bindgen, make sure to update the version in the workflows! -wasm-bindgen = { version = "=0.2.95", features = ["serde-serialize"] } +wasm-bindgen = { version = "=0.2.101", features = ["serde-serialize"] } wasm-bindgen-futures = "0.4.41" [dev-dependencies] diff --git a/crates/bitwarden-wasm/README.md b/crates/bitwarden-wasm/README.md index 6fa8870f2..8c3f6e941 100644 --- a/crates/bitwarden-wasm/README.md +++ b/crates/bitwarden-wasm/README.md @@ -4,7 +4,7 @@ Requirements: - `wasm32-unknown-unknown` rust target. - `wasm-bindgen-cli` installed. -- `binaryen` installed for `wasm-opt` and `wasm2js`. +- `binaryen` installed for `wasm-opt`. ```bash rustup target add wasm32-unknown-unknown diff --git a/crates/bitwarden-wasm/build.sh b/crates/bitwarden-wasm/build.sh index d49b12de3..61a40d832 100755 --- a/crates/bitwarden-wasm/build.sh +++ b/crates/bitwarden-wasm/build.sh @@ -1,23 +1,24 @@ +#!/usr/bin/env bash + # Move to the root of the repository cd "$(dirname "$0")" cd ../../ if [ "$1" != "-r" ]; then - # Dev - cargo build -p bitwarden-wasm --target wasm32-unknown-unknown - wasm-bindgen --target bundler --out-dir languages/js/wasm ./target/wasm32-unknown-unknown/debug/bitwarden_wasm.wasm - wasm-bindgen --target nodejs --out-dir languages/js/wasm/node ./target/wasm32-unknown-unknown/debug/bitwarden_wasm.wasm + echo "Building in debug mode" + RELEASE_FLAG="" + BUILD_DIR="debug" else - # Release - cargo build -p bitwarden-wasm --target wasm32-unknown-unknown --release - wasm-bindgen --target bundler --out-dir languages/js/wasm ./target/wasm32-unknown-unknown/release/bitwarden_wasm.wasm - wasm-bindgen --target nodejs --out-dir languages/js/wasm/node ./target/wasm32-unknown-unknown/release/bitwarden_wasm.wasm + echo "Building in release mode" + RELEASE_FLAG="--release" + BUILD_DIR="release" fi +# Build +cargo build -p bitwarden-wasm --target wasm32-unknown-unknown ${RELEASE_FLAG} +wasm-bindgen --target bundler --out-dir languages/js/wasm ./target/wasm32-unknown-unknown/${BUILD_DIR}/bitwarden_wasm.wasm +wasm-bindgen --target nodejs --out-dir languages/js/wasm/node ./target/wasm32-unknown-unknown/${BUILD_DIR}/bitwarden_wasm.wasm + # Optimize size wasm-opt -Os ./languages/js/wasm/bitwarden_wasm_bg.wasm -o ./languages/js/wasm/bitwarden_wasm_bg.wasm wasm-opt -Os ./languages/js/wasm/node/bitwarden_wasm_bg.wasm -o ./languages/js/wasm/node/bitwarden_wasm_bg.wasm - -# Transpile to JS -wasm2js ./languages/js/wasm/bitwarden_wasm_bg.wasm -o ./languages/js/wasm/bitwarden_wasm_bg.wasm.js -npx terser ./languages/js/wasm/bitwarden_wasm_bg.wasm.js -o ./languages/js/wasm/bitwarden_wasm_bg.wasm.js