UNPKG

@napi-rs/cli

Version:

Cli tools for napi-rs

354 lines (333 loc) 10.6 kB
# Snapshot report for `src/api/__tests__/templates.spec.ts` The actual snapshot is saved in `templates.spec.ts.snap`. Generated by [AVA](https://avajs.dev). ## createWasiBrowserBinding default > Snapshot 1 `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('./test-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('./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]()␊ }␊ }␊ },␊ })␊ ` ## createWasiBrowserBinding with errorEvent > Snapshot 1 `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('./test-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('./wasi-worker-browser.mjs', import.meta.url), {␊ type: 'module',␊ })␊ ␊ worker.addEventListener('message', (event) => {␊ if (event.data && typeof event.data === 'object' && event.data.type === 'error') {␊ window.dispatchEvent(new CustomEvent('napi-rs-worker-error', { detail: event.data }))␊ }␊ })␊ ␊ 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]()␊ }␊ }␊ },␊ })␊ ` ## createWasiBrowserBinding with errorEvent and fs > Snapshot 1 `import {␊ createOnMessage as __wasmCreateOnMessageForFsProxy,␊ getDefaultContext as __emnapiGetDefaultContext,␊ instantiateNapiModuleSync as __emnapiInstantiateNapiModuleSync,␊ WASI as __WASI,␊ } from '@napi-rs/wasm-runtime'␊ import { memfs } from '@napi-rs/wasm-runtime/fs'␊ ␊ ␊ export const { fs: __fs, vol: __volume } = memfs()␊ ␊ const __wasi = new __WASI({␊ version: 'preview1',␊ fs: __fs,␊ preopens: {␊ '/': '/',␊ },␊ })␊ ␊ const __wasmUrl = new URL('./test-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('./wasi-worker-browser.mjs', import.meta.url), {␊ type: 'module',␊ })␊ worker.addEventListener('message', __wasmCreateOnMessageForFsProxy(__fs))␊ ␊ worker.addEventListener('message', (event) => {␊ if (event.data && typeof event.data === 'object' && event.data.type === 'error') {␊ window.dispatchEvent(new CustomEvent('napi-rs-worker-error', { detail: event.data }))␊ }␊ })␊ ␊ 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]()␊ }␊ }␊ },␊ })␊ ` ## createWasiBrowserWorkerBinding default > Snapshot 1 `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)␊ }␊ ` ## createWasiBrowserWorkerBinding with errorEvent > Snapshot 1 `import { instantiateNapiModuleSync, MessageHandler, WASI } from '@napi-rs/wasm-runtime'␊ ␊ const errorOutputs = []␊ ␊ 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)␊ ␊ errorOutputs.push([...arguments])␊ },␊ })␊ return instantiateNapiModuleSync(wasmModule, {␊ childThread: true,␊ wasi,␊ overwriteImports(importObject) {␊ importObject.env = {␊ ...importObject.env,␊ ...importObject.napi,␊ ...importObject.emnapi,␊ memory: wasmMemory,␊ }␊ },␊ })␊ },␊ onError(error) {␊ postMessage({ type: 'error', error, errorOutputs })␊ errorOutputs.length = 0␊ }␊ })␊ ␊ globalThis.onmessage = function (e) {␊ handler.handle(e)␊ }␊ ` ## createWasiBrowserWorkerBinding with errorEvent and fs > Snapshot 1 `import { instantiateNapiModuleSync, MessageHandler, WASI, createFsProxy } from '@napi-rs/wasm-runtime'␊ import { memfsExported as __memfsExported } from '@napi-rs/wasm-runtime/fs'␊ ␊ const fs = createFsProxy(__memfsExported)␊ ␊ const errorOutputs = []␊ ␊ const handler = new MessageHandler({␊ onLoad({ wasmModule, wasmMemory }) {␊ const wasi = new WASI({␊ fs,␊ preopens: {␊ '/': '/',␊ },␊ 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)␊ ␊ errorOutputs.push([...arguments])␊ },␊ })␊ return instantiateNapiModuleSync(wasmModule, {␊ childThread: true,␊ wasi,␊ overwriteImports(importObject) {␊ importObject.env = {␊ ...importObject.env,␊ ...importObject.napi,␊ ...importObject.emnapi,␊ memory: wasmMemory,␊ }␊ },␊ })␊ },␊ onError(error) {␊ postMessage({ type: 'error', error, errorOutputs })␊ errorOutputs.length = 0␊ }␊ })␊ ␊ globalThis.onmessage = function (e) {␊ handler.handle(e)␊ }␊ `