diff --git a/package.json b/package.json index dab61bcf..41c986bb 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "chokidar": "^3.5.3", "cpy": "^10.1.0", "esbuild": "0.18.11", + "esbuild-plugin-wasm": "^1.1.0", "events": "^3.3.0", "execa": "^7.1.1", "globby": "^13.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d20c038..288edd79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ dependencies: esbuild: specifier: 0.18.11 version: 0.18.11 + esbuild-plugin-wasm: + specifier: ^1.1.0 + version: 1.1.0 events: specifier: ^3.3.0 version: 3.3.0 @@ -1483,6 +1486,11 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: false + /esbuild-plugin-wasm@1.1.0: + resolution: {integrity: sha512-0bQ6+1tUbySSnxzn5jnXHMDvYnT0cN/Wd4Syk8g/sqAIJUg7buTIi22svS3Qz6ssx895NT+TgLPb33xi1OkZig==} + engines: {node: '>=0.10.0'} + dev: false + /esbuild@0.18.11: resolution: {integrity: sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==} engines: {node: '>=12'} diff --git a/src/utils/index.js b/src/utils/index.js index fc872ec9..364c6596 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -16,6 +16,7 @@ import polka from 'polka' import { createRequire } from 'module' import { fileURLToPath, pathToFileURL } from 'url' import * as DefaultRunners from '../test-runners.js' +import { wasmLoader } from 'esbuild-plugin-wasm' const require = createRequire(import.meta.url) const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -434,7 +435,7 @@ await import('${require sourcemap: 'inline', platform: 'browser', format: 'esm', - plugins: [nodePlugin, watchPlugin], + plugins: [nodePlugin, watchPlugin, wasmLoader()], outfile: outPath, inject: [path.join(__dirname, 'inject-process.js')], define: { @@ -520,7 +521,11 @@ export async function resolveModule(id, base = process.cwd()) { const url = pathToFileURL(path) return await import(url.href) } catch (error) { - throw new Error(`Cannot resolve module "${id}" from "${base}"\n${/** @type {Error} */(error).message}`) + throw new Error( + `Cannot resolve module "${id}" from "${base}"\n${ + /** @type {Error} */ (error).message + }` + ) } }