npm packaging

This commit is contained in:
CoolElectronics 2024-01-15 14:37:55 -05:00
parent 6e3f968f9c
commit 656eb67bfb
No known key found for this signature in database
GPG key ID: F63593D168636C50
9 changed files with 82 additions and 24 deletions

View file

@ -7,20 +7,25 @@ mkdir out/
cargo build --target wasm32-unknown-unknown --release
echo "[ws] built rust"
wasm-bindgen --weak-refs --no-typescript --target no-modules --out-dir out/ ../target/wasm32-unknown-unknown/release/epoxy_client.wasm
wasm-bindgen --weak-refs --target no-modules --no-modules-global epoxy --out-dir out/ ../target/wasm32-unknown-unknown/release/epoxy_client.wasm
echo "[ws] bindgen finished"
mv out/epoxy_client_bg.wasm out/epoxy_client_unoptimized.wasm
time wasm-opt -O4 out/epoxy_client_unoptimized.wasm -o out/epoxy_client_bg.wasm
time wasm-opt out/epoxy_client_unoptimized.wasm -o out/epoxy_client_bg.wasm
echo "[ws] optimized"
AUTOGENERATED_SOURCE=$(<"out/epoxy_client.js")
WASM_BASE64=$(base64 -w0 out/epoxy_client_bg.wasm)
AUTOGENERATED_SOURCE="${AUTOGENERATED_SOURCE//__wbg_init(input) \{/__wbg_init(input) \{input=\'data:application/wasm;base64,$WASM_BASE64\'}"
AUTOGENERATED_SOURCE="${AUTOGENERATED_SOURCE//let wasm_bindgen/let epoxy}"
AUTOGENERATED_SOURCE="${AUTOGENERATED_SOURCE//wasm_bindgen =/epoxy =}"
echo "${AUTOGENERATED_SOURCE}" > out/epoxy_client_bundled.js
AUTOGENERATED_SOURCE=${AUTOGENERATED_SOURCE//__wbg_init(input) \{/__wbg_init() \{let input=\'data:application/wasm;base64,$WASM_BASE64\'}
AUTOGENERATED_SOURCE=${AUTOGENERATED_SOURCE//return __wbg_finalize_init\(instance\, module\);/__wbg_finalize_init\(instance\, module\); return epoxy}
echo "$AUTOGENERATED_SOURCE" > index.js
cp index.js module.js
echo "module.exports = epoxy" >> module.js
cp -r src/web/* out/
AUTOGENERATED_TYPEDEFS=$(<"out/epoxy_client.d.ts")
AUTOGENERATED_TYPEDEFS=${AUTOGENERATED_TYPEDEFS%%export class IntoUnderlyingByteSource*}
echo "$AUTOGENERATED_TYPEDEFS" >"module.d.ts"
echo "} export default function epoxy(): Promise<typeof wasm_bindgen>;" >> "module.d.ts"
rm -rf out/
echo "[ws] done!"
(cd out; python3 -m http.server)