import { fileURLToPath, URL } from 'url'; export function pathify(path: string): string { if (path.startsWith('file://')) { path = fileURLToPath(path); } return path; } export function instantiateEmscriptenWasm( factory: EmscriptenWasm.ModuleFactory, path: string, workerJS: string = '', ): Promise { return factory({ locateFile(requestPath) { // The glue code generated by emscripten uses the original // file names of the worker file and the wasm binary. // These will have changed in the bundling process and // we need to inject them here. if (requestPath.endsWith('.wasm')) return pathify(path); if (requestPath.endsWith('.worker.js')) return pathify(workerJS); return requestPath; }, }); }