From 23c8244a68d62e2b710a0be03b214ac0ce11abfc Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Fri, 23 Jun 2023 23:41:27 -0400 Subject: [PATCH] fix: better handle wasm loading on node and browser --- src/verify.ts | 2 +- src/wasm.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 src/wasm.ts diff --git a/src/verify.ts b/src/verify.ts index 6e59816..17e2a3e 100644 --- a/src/verify.ts +++ b/src/verify.ts @@ -1,5 +1,5 @@ // @ts-ignore -import baoWasm from "./wasm/bao.wasm"; +import baoWasm from "./wasm.js"; import Go from "./go_wasm.js"; export async function getVerifiableStream( diff --git a/src/wasm.ts b/src/wasm.ts new file mode 100644 index 0000000..580b001 --- /dev/null +++ b/src/wasm.ts @@ -0,0 +1,16 @@ +import isNode from "detect-node"; +export default async function (imports) { + if (isNode) { + const fs = await import("fs/promises"); + + // @ts-ignore + const wasmPath = new URL("wasm/bao.wasm", import.meta.url); + + const wasm = await fs.readFile(wasmPath); + + return WebAssembly.instantiate(wasm, imports); + } + + // @ts-ignore + return await import("./wasm/bao.wasm"); +}