napi-rs/examples/napi-compat-mode/wasi-worker-browser.mjs
LongYinan e9835c4e75
chore(cli): link npm cli issues in native binding load errors (#2707)
* chore(cli): link npm cli issues in native binding load errors

* run fmt
2025-06-11 12:02:19 -07:00

37 lines
848 B
JavaScript

import {
instantiateNapiModuleSync,
MessageHandler,
WASI,
} from '@napi-rs/wasm-runtime'
const handler = new MessageHandler({
onLoad({ wasmModule, wasmMemory }) {
const wasi = new WASI({
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)
}