import { instantiateNapiModuleSync, MessageHandler, WASI } from '@napi-rs/wasm-runtime' import { Volume, createFsFromVolume } from '@napi-rs/wasm-runtime/fs' const fs = createFsFromVolume( Volume.fromJSON({ '/': null, }), ) const handler = new MessageHandler({ onLoad({ wasmModule, wasmMemory }) { const wasi = new WASI({ fs, print: function () { // eslint-disable-next-line no-console console.log.apply(console, arguments) }, printErr: function() { // eslint-disable-next-line no-console console.error.apply(console, arguments) }, }) return instantiateNapiModuleSync(wasmModule, { childThread: true, wasi, overwriteImports(importObject) { importObject.env = { ...importObject.env, ...importObject.napi, ...importObject.emnapi, memory: wasmMemory, } }, }) }, }) globalThis.onmessage = function (e) { handler.handle(e) }