1#!/bin/sh
2set -e
3cd "$(dirname "$0")"
4
5echo "Building wasm..."
6
7rm -rf lib/bindgen
8
9cargo build --release --target wasm32-unknown-unknown --lib
10
11WASM="target/wasm32-unknown-unknown/release/markodown.wasm"
12
13echo "Generating JS bindings..."
14
15~/.cargo/bin/wasm-bindgen \
16 --target web \
17 --out-dir lib/bindgen \
18 --out-name markodown \
19 "$WASM"
20, wasm-opt -Os lib/bindgen/markodown_bg.wasm -o lib/bindgen/markodown_bg.wasm
21
22BASE64="$(base64 -w 0 < "lib/bindgen/markodown_bg.wasm")"
23
24cat > lib/bindgen/wasm_bytes.js << EOF
25/* @ts-self-types="./wasm_bytes.d.ts" */
26export default Uint8Array.from(atob("$BASE64"), c => c.charCodeAt(0));
27EOF
28cat > lib/bindgen/wasm_bytes.d.ts << EOF
29declare const string: string;
30export default string;
31EOF
32
33rm -f lib/bindgen/markodown_bg.wasm
34rm -f lib/bindgen/markodown_bg.wasm.d.ts