UNPKG

@flairjs/core-wasm32-wasi

Version:
61 lines (51 loc) 1.54 kB
import { createOnMessage as __wasmCreateOnMessageForFsProxy, getDefaultContext as __emnapiGetDefaultContext, instantiateNapiModuleSync as __emnapiInstantiateNapiModuleSync, WASI as __WASI, } from '@napi-rs/wasm-runtime' const __wasi = new __WASI({ version: 'preview1', }) const __wasmUrl = new URL('./core.wasm32-wasi.wasm', import.meta.url).href const __emnapiContext = __emnapiGetDefaultContext() const __sharedMemory = new WebAssembly.Memory({ initial: 4000, maximum: 65536, shared: true, }) const __wasmFile = await fetch(__wasmUrl).then((res) => res.arrayBuffer()) const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule, } = __emnapiInstantiateNapiModuleSync(__wasmFile, { context: __emnapiContext, asyncWorkPoolSize: 4, wasi: __wasi, onCreateWorker() { const worker = new Worker(new URL('@flairjs/core-wasm32-wasi/wasi-worker-browser.mjs', import.meta.url), { type: 'module', }) return worker }, overwriteImports(importObject) { importObject.env = { ...importObject.env, ...importObject.napi, ...importObject.emnapi, memory: __sharedMemory, } return importObject }, beforeInit({ instance }) { for (const name of Object.keys(instance.exports)) { if (name.startsWith('__napi_register__')) { instance.exports[name]() } } }, }) export default __napiModule.exports export const LogLevel = __napiModule.exports.LogLevel export const transformCode = __napiModule.exports.transformCode