Nuxt/examples/experimental/wasm/server/api/sum.ts

20 lines
503 B
TypeScript
Raw Normal View History

import { defineLazyEventHandler } from 'h3'
2021-11-21 15:58:47 +00:00
export default defineLazyEventHandler(async () => {
2021-11-21 15:58:47 +00:00
const { exports: { sum } } = await loadWasmInstance(
// @ts-ignore
() => import('~/server/wasm/sum.wasm')
)
return (event) => {
const { a = 0, b = 0 } = getQuery(event)
2021-11-21 15:58:47 +00:00
return { sum: sum(a, b) }
}
})
async function loadWasmInstance (importFn, imports = {}) {
const init = await importFn().then(m => m.default || m)
const { instance } = await init(imports)
return instance
}