mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-25 07:05:11 +00:00
examples: update with-wasm
(#2060)
This commit is contained in:
parent
583679f9c8
commit
07c7a20462
19
examples/with-wasm/app.vue
Normal file
19
examples/with-wasm/app.vue
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
<script setup>
|
||||
const a = ref(100)
|
||||
const b = ref(250)
|
||||
|
||||
const { data } = await useAsyncData('sum',
|
||||
() => $fetch('/api/sum', { params: { a: a.value, b: b.value } })
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<input v-model="a" type="number" readonly>
|
||||
+
|
||||
<input v-model="b" type="number" readonly>
|
||||
=
|
||||
<input v-model="data.sum" type="number" readonly>
|
||||
</div>
|
||||
</template>
|
9
examples/with-wasm/nuxt.config.ts
Normal file
9
examples/with-wasm/nuxt.config.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { defineNuxtConfig } from 'nuxt3'
|
||||
|
||||
export default defineNuxtConfig({
|
||||
nitro: {
|
||||
experiments: {
|
||||
wasm: true
|
||||
}
|
||||
}
|
||||
})
|
@ -1,9 +0,0 @@
|
||||
import sample from './sample.wasm'
|
||||
|
||||
export default async () => {
|
||||
const { instance } = await sample({})
|
||||
|
||||
return {
|
||||
result: instance.exports.main()
|
||||
}
|
||||
}
|
Binary file not shown.
19
examples/with-wasm/server/api/sum.ts
Normal file
19
examples/with-wasm/server/api/sum.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { useQuery, lazyHandle } from 'h3'
|
||||
|
||||
export default lazyHandle(async () => {
|
||||
const { exports: { sum } } = await loadWasmInstance(
|
||||
// @ts-ignore
|
||||
() => import('~/server/wasm/sum.wasm')
|
||||
)
|
||||
|
||||
return (req) => {
|
||||
const { a = 0, b = 0 } = useQuery(req)
|
||||
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
|
||||
}
|
BIN
examples/with-wasm/server/wasm/sum.wasm
Executable file
BIN
examples/with-wasm/server/wasm/sum.wasm
Executable file
Binary file not shown.
7
examples/with-wasm/server/wasm/sum.wat
Normal file
7
examples/with-wasm/server/wasm/sum.wat
Normal file
@ -0,0 +1,7 @@
|
||||
;; https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format
|
||||
;; https://webassembly.github.io/wabt/demo/wat2wasm/
|
||||
(module
|
||||
(func (export "sum") (param i32 i32) (result i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.add))
|
Loading…
Reference in New Issue
Block a user