@napi-rs/cli 3.0.0-alpha.25 → 3.0.0-alpha.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- import { join, parse, resolve } from 'node:path';
1
+ import { join, parse } from 'node:path';
2
2
  import * as colors from 'colorette';
3
3
  import { applyDefaultArtifactsOptions, } from '../def/artifacts.js';
4
4
  import { readNapiConfig, debugFactory, readFileAsync, writeFileAsync, UniArchsByPlatform, readdirAsync, } from '../utils/index.js';
5
5
  const debug = debugFactory('artifacts');
6
6
  export async function collectArtifacts(userOptions) {
7
7
  const options = applyDefaultArtifactsOptions(userOptions);
8
- const packageJsonPath = resolve(options.cwd, options.packageJsonPath);
8
+ const packageJsonPath = join(options.cwd, options.packageJsonPath);
9
9
  const { targets, binaryName } = await readNapiConfig(packageJsonPath);
10
- const distDirs = targets.map((platform) => resolve(options.cwd, options.npmDir, platform.platformArchABI));
10
+ const distDirs = targets.map((platform) => join(options.cwd, options.npmDir, platform.platformArchABI));
11
11
  const universalSourceBins = new Set(targets
12
12
  .filter((platform) => platform.arch === 'universal')
13
13
  .flatMap((p) => UniArchsByPlatform[p.platform]?.map((a) => `${p.platform}-${a}`))
14
14
  .filter(Boolean));
15
- await collectNodeBinaries(resolve(options.cwd, options.outputDir)).then((output) => Promise.all(output.map(async (filePath) => {
15
+ await collectNodeBinaries(join(options.cwd, options.outputDir)).then((output) => Promise.all(output.map(async (filePath) => {
16
16
  debug.info(`Read [${colors.yellowBright(filePath)}]`);
17
17
  const sourceContent = await readFileAsync(filePath);
18
18
  const parsedName = parse(filePath);
@@ -38,6 +38,16 @@ export async function collectArtifacts(userOptions) {
38
38
  debug.info(`Write file content to [${colors.yellowBright(distFilePathLocal)}]`);
39
39
  await writeFileAsync(distFilePathLocal, sourceContent);
40
40
  })));
41
+ const wasiTarget = targets.find((t) => t.platform === 'wasi');
42
+ if (wasiTarget) {
43
+ const wasiDir = join(options.cwd, options.npmDir, wasiTarget.platformArchABI);
44
+ const cjsFile = join(options.buildOutputDir ?? options.cwd, `${binaryName}.wasi.cjs`);
45
+ const workerFile = join(options.buildOutputDir ?? options.cwd, `wasi-worker.mjs`);
46
+ debug.info(`Move wasi cjs file [${colors.yellowBright(cjsFile)}] to [${colors.yellowBright(wasiDir)}]`);
47
+ await writeFileAsync(join(wasiDir, `${binaryName}.wasi.cjs`), await readFileAsync(cjsFile));
48
+ debug.info(`Move wasi worker file [${colors.yellowBright(workerFile)}] to [${colors.yellowBright(wasiDir)}]`);
49
+ await writeFileAsync(join(wasiDir, `wasi-worker.mjs`), await readFileAsync(workerFile));
50
+ }
41
51
  }
42
52
  async function collectNodeBinaries(root) {
43
53
  const files = await readdirAsync(root, { withFileTypes: true });
@@ -46,7 +56,9 @@ async function collectNodeBinaries(root) {
46
56
  .map((file) => join(root, file.name));
47
57
  const dirs = files.filter((file) => file.isDirectory());
48
58
  for (const dir of dirs) {
49
- nodeBinaries.push(...(await collectNodeBinaries(join(root, dir.name))));
59
+ if (dir.name !== 'node_modules') {
60
+ nodeBinaries.push(...(await collectNodeBinaries(join(root, dir.name))));
61
+ }
50
62
  }
51
63
  return nodeBinaries;
52
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/api/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/api/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AAEnC,OAAO,EACL,4BAA4B,GAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAA6B;IAClE,MAAM,OAAO,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAA;IAEzD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAClE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAC5D,CAAA;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,OAAO;SACJ,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC;SACnD,OAAO,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,CACxE;SACA,MAAM,CAAC,OAAO,CAAa,CAC/B,CAAA;IAED,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAClE,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACpC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CACR,IAAI,WAAW,0BAA0B,UAAU,SAAS,CAC7D,CAAA;YACD,OAAM;QACR,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;QACjE,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CACR,IAAI,eAAe,iEAAiE,CACrF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/C,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAC/D,CAAA;QACD,MAAM,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,iBAAiB,GAAG,IAAI,CAC5B,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAC1B,UAAU,CAAC,IAAI,CAChB,CAAA;QACD,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CACpE,CAAA;QACD,MAAM,cAAc,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IACxD,CAAC,CAAC,CACH,CACJ,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAA;IAC7D,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,EACd,UAAU,CAAC,eAAe,CAC3B,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAClB,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EACrC,GAAG,UAAU,WAAW,CACzB,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CACrB,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,EACrC,iBAAiB,CAClB,CAAA;QACD,KAAK,CAAC,IAAI,CACR,uBAAuB,MAAM,CAAC,YAAY,CACxC,OAAO,CACR,SAAS,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC1C,CAAA;QACD,MAAM,cAAc,CAClB,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,WAAW,CAAC,EACvC,MAAM,aAAa,CAAC,OAAO,CAAC,CAC7B,CAAA;QACD,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,YAAY,CAC3C,UAAU,CACX,SAAS,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC1C,CAAA;QACD,MAAM,cAAc,CAClB,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAChC,MAAM,aAAa,CAAC,UAAU,CAAC,CAChC,CAAA;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,KAAK;SACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC"}
package/dist/api/build.js CHANGED
@@ -557,7 +557,9 @@ class Builder {
557
557
  const exportsCode = idents
558
558
  .map((ident) => `module.exports.${ident} = __napiModule.exports.${ident}`)
559
559
  .join(',\n');
560
- await writeFileAsync(newPath, createWasiBinding(name, wasiRegisterFunctions) + exportsCode + '\n', 'utf8');
560
+ await writeFileAsync(newPath, createWasiBinding(name, this.config.packageName, wasiRegisterFunctions) +
561
+ exportsCode +
562
+ '\n', 'utf8');
561
563
  await writeFileAsync(workerPath, WASI_WORKER_TEMPLATE, 'utf8');
562
564
  return {
563
565
  kind: 'wasm',
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/api/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/api/build.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,18 @@ export async function createNpmDirs(userOptions) {
43
43
  // @ts-expect-error
44
44
  scopedPackageJson.os = [target.platform];
45
45
  }
46
+ else {
47
+ const entry = `${binaryName}.wasi.cjs`;
48
+ scopedPackageJson.files.push(entry, `wasi-worker.mjs`);
49
+ scopedPackageJson.main = entry;
50
+ const emnapiCore = await fetch(`https://registry.npmjs.org/@emnapi/core`).then((res) => res.json());
51
+ const emnapiRuntime = await fetch(`https://registry.npmjs.org/@emnapi/runtime`).then((res) => res.json());
52
+ // @ts-expect-error
53
+ scopedPackageJson.dependencies = {
54
+ '@emnapi/core': `^${emnapiCore['dist-tags'].latest}`,
55
+ '@emnapi/runtime': `^${emnapiRuntime['dist-tags'].latest}`,
56
+ };
57
+ }
46
58
  if (target.abi === 'gnu') {
47
59
  // @ts-expect-error
48
60
  scopedPackageJson.libc = ['glibc'];
@@ -1 +1 @@
1
- {"version":3,"file":"create-npm-dirs.js","sourceRoot":"","sources":["../../src/api/create-npm-dirs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-npm-dirs.js","sourceRoot":"","sources":["../../src/api/create-npm-dirs.ts"],"names":[],"mappings":"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"}
@@ -309,14 +309,7 @@ switch (platform) {
309
309
 
310
310
  if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
311
311
  try {
312
- localFileExisted = existsSync(
313
- join(__dirname, '${localName}.wasm32-wasi.wasm')
314
- ) && existsSync(join(__dirname, '${localName}.wasi.cjs'))
315
- if (localFileExisted) {
316
- nativeBinding = require('./${localName}.wasi.cjs')
317
- } else {
318
- nativeBinding = require('${pkgName}-wasm32-wasi')
319
- }
312
+ nativeBinding = require('./${localName}.wasi.cjs')
320
313
  } catch {
321
314
  // ignore
322
315
  }
@@ -1 +1 @@
1
- {"version":3,"file":"js-binding.js","sourceRoot":"","sources":["../../../src/api/templates/js-binding.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAkEgD,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;yDAOW,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;6BAcjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;qDAWO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;yDAMe,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;qDAcO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;;;;;;+BAWX,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;;+BAUjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;6BASnB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;+BASf,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;;;;;;;;;;yBAkBvB,SAAS;uCACK,SAAS;;mCAEb,SAAS;;iCAEX,OAAO;;;;;;;;;;;;;;EActC,MAAM;SACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,KAAK,oBAAoB,KAAK,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC;CACZ,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"js-binding.js","sourceRoot":"","sources":["../../../src/api/templates/js-binding.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAkEgD,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;yDAOW,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;6BAcjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;qDAWO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;yDAMe,SAAS;;;yCAGzB,SAAS;;uCAEX,OAAO;;;;;;;;6BAQjB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;;;;;;qDAcO,SAAS;;;qCAGzB,SAAS;;mCAEX,OAAO;;;;;;;;;;;+BAWX,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;;+BAUjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;6BASnB,SAAS;;;;yCAIG,SAAS;;uCAEX,OAAO;;;;;;;;;+BASf,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;+BAOjB,SAAS;;;;2CAIG,SAAS;;yCAEX,OAAO;;;;;;;;;;;;;;;;;iCAiBf,SAAS;;;;;;;;;;;;;EAaxC,MAAM;SACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,KAAK,oBAAoB,KAAK,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC;CACZ,CAAA;AACD,CAAC"}
@@ -1 +1 @@
1
- export declare const createWasiBinding: (wasmFileName: string, wasiRegisterFunctions: string[]) => string;
1
+ export declare const createWasiBinding: (wasmFileName: string, packageName: string, wasiRegisterFunctions: string[]) => string;
@@ -1,4 +1,4 @@
1
- export const createWasiBinding = (wasmFileName, wasiRegisterFunctions) => `/* eslint-disable */
1
+ export const createWasiBinding = (wasmFileName, packageName, wasiRegisterFunctions) => `/* eslint-disable */
2
2
  /* prettier-ignore */
3
3
 
4
4
  /* auto-generated by NAPI-RS */
@@ -27,9 +27,27 @@ const __sharedMemory = new WebAssembly.Memory({
27
27
  shared: true,
28
28
  })
29
29
 
30
- const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
30
+ let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
31
+
32
+ if (!__nodeFs.existsSync(__wasmFilePath)) {
33
+ try {
34
+ __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
35
+ } catch {
36
+ throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
37
+ }
38
+ }
39
+
40
+ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
31
41
  context: __emnapiContext,
32
- asyncWorkPoolSize: 4,
42
+ asyncWorkPoolSize: (function() {
43
+ const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
44
+ // NaN > 0 is false
45
+ if (threadsSizeFromEnv > 0) {
46
+ return threadsSizeFromEnv
47
+ } else {
48
+ return 4
49
+ }
50
+ })(),
33
51
  wasi: __wasi,
34
52
  onCreateWorker() {
35
53
  return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasi-template.js","sourceRoot":"","sources":["../../../src/api/templates/load-wasi-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,qBAA+B,EAC/B,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2KA6BsK,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAyBrL,qBAAqB;KACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,IAAI,QAAQ,CAAC;KACxD,IAAI,CAAC,IAAI,CAAC;;CAEZ,CAAA"}
1
+ {"version":3,"file":"load-wasi-template.js","sourceRoot":"","sources":["../../../src/api/templates/load-wasi-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,YAAoB,EACpB,WAAmB,EACnB,qBAA+B,EAC/B,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA6B8C,YAAY;;;;2CAIpB,WAAW;;mCAEnB,YAAY,mBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC3E,qBAAqB;KACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,IAAI,QAAQ,CAAC;KACxD,IAAI,CAAC,IAAI,CAAC;;CAEZ,CAAA"}
@@ -1,4 +1,9 @@
1
1
  import type { SupportedTestFramework } from '../../utils/config.js';
2
+ export interface PackageMeta {
3
+ 'dist-tags': {
4
+ [index: string]: string;
5
+ };
6
+ }
2
7
  export declare const createPackageJson: ({ name, binaryName, targets, license, engineRequirement, cliVersion, testFramework, }: {
3
8
  name: string;
4
9
  binaryName: string;
@@ -7,12 +7,14 @@ export declare abstract class BaseArtifactsCommand extends Command {
7
7
  packageJsonPath: string;
8
8
  outputDir: string;
9
9
  npmDir: string;
10
+ buildOutputDir?: string;
10
11
  getOptions(): {
11
12
  cwd: string;
12
13
  configPath: string | undefined;
13
14
  packageJsonPath: string;
14
15
  outputDir: string;
15
16
  npmDir: string;
17
+ buildOutputDir: string | undefined;
16
18
  };
17
19
  }
18
20
  /**
@@ -47,6 +49,10 @@ export interface ArtifactsOptions {
47
49
  * @default 'npm'
48
50
  */
49
51
  npmDir?: string;
52
+ /**
53
+ * Path to the build output dir, only needed when targets contains `wasm32-wasi-*`
54
+ */
55
+ buildOutputDir?: string;
50
56
  }
51
57
  export declare function applyDefaultArtifactsOptions(options: ArtifactsOptions): {
52
58
  cwd: string;
@@ -57,4 +63,8 @@ export declare function applyDefaultArtifactsOptions(options: ArtifactsOptions):
57
63
  packageJsonPath: string;
58
64
  outputDir: string;
59
65
  npmDir: string;
66
+ /**
67
+ * Path to the build output dir, only needed when targets contains `wasm32-wasi-*`
68
+ */
69
+ buildOutputDir?: string | undefined;
60
70
  };
@@ -21,6 +21,9 @@ export class BaseArtifactsCommand extends Command {
21
21
  npmDir = Option.String('--npm-dir', 'npm', {
22
22
  description: 'Path to the folder where the npm packages put',
23
23
  });
24
+ buildOutputDir = Option.String('--build-output-dir', {
25
+ description: 'Path to the build output dir, only needed when targets contains `wasm32-wasi-*`',
26
+ });
24
27
  getOptions() {
25
28
  return {
26
29
  cwd: this.cwd,
@@ -28,6 +31,7 @@ export class BaseArtifactsCommand extends Command {
28
31
  packageJsonPath: this.packageJsonPath,
29
32
  outputDir: this.outputDir,
30
33
  npmDir: this.npmDir,
34
+ buildOutputDir: this.buildOutputDir,
31
35
  };
32
36
  }
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/def/artifacts.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,iCAAiC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAgB,oBAAqB,SAAQ,OAAO;IACxD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,WAAW,EACT,2EAA2E;KAC9E,CAAC,CAAA;IAEF,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;QAC1C,WAAW,EACT,oHAAoH;KACvH,CAAC,CAAA;IAEF,UAAU,GAAY,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACtD,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAA;IAEF,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,cAAc,EAAE;QACrE,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAA;IAEF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,aAAa,EAAE;QAC7D,WAAW,EACT,+FAA+F;KAClG,CAAC,CAAA;IAEF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE;QACzC,WAAW,EAAE,+CAA+C;KAC7D,CAAC,CAAA;IAEF,UAAU;QACR,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;;AAqCH,MAAM,UAAU,4BAA4B,CAAC,OAAyB;IACpE,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,eAAe,EAAE,cAAc;QAC/B,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,KAAK;QACb,GAAG,OAAO;KACX,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/def/artifacts.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,iCAAiC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAgB,oBAAqB,SAAQ,OAAO;IACxD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,WAAW,EACT,2EAA2E;KAC9E,CAAC,CAAA;IAEF,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;QAC1C,WAAW,EACT,oHAAoH;KACvH,CAAC,CAAA;IAEF,UAAU,GAAY,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACtD,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAA;IAEF,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,cAAc,EAAE;QACrE,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAA;IAEF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,aAAa,EAAE;QAC7D,WAAW,EACT,+FAA+F;KAClG,CAAC,CAAA;IAEF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE;QACzC,WAAW,EAAE,+CAA+C;KAC7D,CAAC,CAAA;IAEF,cAAc,GAAY,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE;QAC5D,WAAW,EACT,iFAAiF;KACpF,CAAC,CAAA;IAEF,UAAU;QACR,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;;AAyCH,MAAM,UAAU,4BAA4B,CAAC,OAAyB;IACpE,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,eAAe,EAAE,cAAc;QAC/B,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,KAAK;QACb,GAAG,OAAO;KACX,CAAA;AACH,CAAC"}
package/dist/index.cjs CHANGED
@@ -7780,13 +7780,17 @@ var BaseArtifactsCommand = class extends import_clipanion.Command {
7780
7780
  npmDir = import_clipanion.Option.String("--npm-dir", "npm", {
7781
7781
  description: "Path to the folder where the npm packages put"
7782
7782
  });
7783
+ buildOutputDir = import_clipanion.Option.String("--build-output-dir", {
7784
+ description: "Path to the build output dir, only needed when targets contains `wasm32-wasi-*`"
7785
+ });
7783
7786
  getOptions() {
7784
7787
  return {
7785
7788
  cwd: this.cwd,
7786
7789
  configPath: this.configPath,
7787
7790
  packageJsonPath: this.packageJsonPath,
7788
7791
  outputDir: this.outputDir,
7789
- npmDir: this.npmDir
7792
+ npmDir: this.npmDir,
7793
+ buildOutputDir: this.buildOutputDir
7790
7794
  };
7791
7795
  }
7792
7796
  };
@@ -10668,11 +10672,11 @@ function correctStringIdent(src, ident) {
10668
10672
  var debug2 = debugFactory("artifacts");
10669
10673
  async function collectArtifacts(userOptions) {
10670
10674
  const options = applyDefaultArtifactsOptions(userOptions);
10671
- const packageJsonPath = (0, import_node_path.resolve)(options.cwd, options.packageJsonPath);
10675
+ const packageJsonPath = (0, import_node_path.join)(options.cwd, options.packageJsonPath);
10672
10676
  const { targets, binaryName } = await readNapiConfig(packageJsonPath);
10673
- const distDirs = targets.map((platform2) => (0, import_node_path.resolve)(options.cwd, options.npmDir, platform2.platformArchABI));
10677
+ const distDirs = targets.map((platform2) => (0, import_node_path.join)(options.cwd, options.npmDir, platform2.platformArchABI));
10674
10678
  const universalSourceBins = new Set(targets.filter((platform2) => platform2.arch === "universal").flatMap((p) => UniArchsByPlatform[p.platform]?.map((a) => `${p.platform}-${a}`)).filter(Boolean));
10675
- await collectNodeBinaries((0, import_node_path.resolve)(options.cwd, options.outputDir)).then((output) => Promise.all(output.map(async (filePath) => {
10679
+ await collectNodeBinaries((0, import_node_path.join)(options.cwd, options.outputDir)).then((output) => Promise.all(output.map(async (filePath) => {
10676
10680
  debug2.info(`Read [${yellowBright(filePath)}]`);
10677
10681
  const sourceContent = await readFileAsync(filePath);
10678
10682
  const parsedName = (0, import_node_path.parse)(filePath);
@@ -10698,13 +10702,25 @@ async function collectArtifacts(userOptions) {
10698
10702
  debug2.info(`Write file content to [${yellowBright(distFilePathLocal)}]`);
10699
10703
  await writeFileAsync(distFilePathLocal, sourceContent);
10700
10704
  })));
10705
+ const wasiTarget = targets.find((t) => t.platform === "wasi");
10706
+ if (wasiTarget) {
10707
+ const wasiDir = (0, import_node_path.join)(options.cwd, options.npmDir, wasiTarget.platformArchABI);
10708
+ const cjsFile = (0, import_node_path.join)(options.buildOutputDir ?? options.cwd, `${binaryName}.wasi.cjs`);
10709
+ const workerFile = (0, import_node_path.join)(options.buildOutputDir ?? options.cwd, `wasi-worker.mjs`);
10710
+ debug2.info(`Move wasi cjs file [${yellowBright(cjsFile)}] to [${yellowBright(wasiDir)}]`);
10711
+ await writeFileAsync((0, import_node_path.join)(wasiDir, `${binaryName}.wasi.cjs`), await readFileAsync(cjsFile));
10712
+ debug2.info(`Move wasi worker file [${yellowBright(workerFile)}] to [${yellowBright(wasiDir)}]`);
10713
+ await writeFileAsync((0, import_node_path.join)(wasiDir, `wasi-worker.mjs`), await readFileAsync(workerFile));
10714
+ }
10701
10715
  }
10702
10716
  async function collectNodeBinaries(root2) {
10703
10717
  const files = await readdirAsync(root2, { withFileTypes: true });
10704
10718
  const nodeBinaries = files.filter((file) => file.isFile() && file.name.endsWith(".node")).map((file) => (0, import_node_path.join)(root2, file.name));
10705
10719
  const dirs = files.filter((file) => file.isDirectory());
10706
10720
  for (const dir of dirs) {
10707
- nodeBinaries.push(...await collectNodeBinaries((0, import_node_path.join)(root2, dir.name)));
10721
+ if (dir.name !== "node_modules") {
10722
+ nodeBinaries.push(...await collectNodeBinaries((0, import_node_path.join)(root2, dir.name)));
10723
+ }
10708
10724
  }
10709
10725
  return nodeBinaries;
10710
10726
  }
@@ -14658,14 +14674,7 @@ switch (platform) {
14658
14674
 
14659
14675
  if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
14660
14676
  try {
14661
- localFileExisted = existsSync(
14662
- join(__dirname, '${localName}.wasm32-wasi.wasm')
14663
- ) && existsSync(join(__dirname, '${localName}.wasi.cjs'))
14664
- if (localFileExisted) {
14665
- nativeBinding = require('./${localName}.wasi.cjs')
14666
- } else {
14667
- nativeBinding = require('${pkgName}-wasm32-wasi')
14668
- }
14677
+ nativeBinding = require('./${localName}.wasi.cjs')
14669
14678
  } catch {
14670
14679
  // ignore
14671
14680
  }
@@ -14683,7 +14692,7 @@ ${idents.map((ident) => `module.exports.${ident} = nativeBinding.${ident}`).join
14683
14692
  }
14684
14693
 
14685
14694
  // dist/api/templates/load-wasi-template.js
14686
- var createWasiBinding = (wasmFileName, wasiRegisterFunctions) => `/* eslint-disable */
14695
+ var createWasiBinding = (wasmFileName, packageName, wasiRegisterFunctions) => `/* eslint-disable */
14687
14696
  /* prettier-ignore */
14688
14697
 
14689
14698
  /* auto-generated by NAPI-RS */
@@ -14712,9 +14721,27 @@ const __sharedMemory = new WebAssembly.Memory({
14712
14721
  shared: true,
14713
14722
  })
14714
14723
 
14715
- const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
14724
+ let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
14725
+
14726
+ if (!__nodeFs.existsSync(__wasmFilePath)) {
14727
+ try {
14728
+ __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
14729
+ } catch {
14730
+ throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
14731
+ }
14732
+ }
14733
+
14734
+ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
14716
14735
  context: __emnapiContext,
14717
- asyncWorkPoolSize: 4,
14736
+ asyncWorkPoolSize: (function() {
14737
+ const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
14738
+ // NaN > 0 is false
14739
+ if (threadsSizeFromEnv > 0) {
14740
+ return threadsSizeFromEnv
14741
+ } else {
14742
+ return 4
14743
+ }
14744
+ })(),
14718
14745
  wasi: __wasi,
14719
14746
  onCreateWorker() {
14720
14747
  return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
@@ -14913,7 +14940,7 @@ var Builder = class {
14913
14940
  debug3(" %i", `cargo ${this.args.join(" ")}`);
14914
14941
  const controller = new AbortController();
14915
14942
  const watch = this.options.watch;
14916
- const buildTask = new Promise((resolve8, reject) => {
14943
+ const buildTask = new Promise((resolve7, reject) => {
14917
14944
  if (this.options.useCross && this.options.crossCompile) {
14918
14945
  throw new Error("`--use-cross` and `--cross-compile` can not be used together");
14919
14946
  }
@@ -14930,7 +14957,7 @@ var Builder = class {
14930
14957
  buildProcess.once("exit", (code) => {
14931
14958
  if (code === 0) {
14932
14959
  debug3("%i", `Build crate ${this.crate.name} successfully!`);
14933
- resolve8();
14960
+ resolve7();
14934
14961
  } else {
14935
14962
  reject(new Error(`Build failed with exit code ${code}`));
14936
14963
  }
@@ -15248,7 +15275,7 @@ var Builder = class {
15248
15275
  const newPath = (0, import_node_path2.join)(dir, `${this.config.binaryName}.wasi.cjs`);
15249
15276
  const workerPath = (0, import_node_path2.join)(dir, "wasi-worker.mjs");
15250
15277
  const exportsCode = idents.map((ident) => `module.exports.${ident} = __napiModule.exports.${ident}`).join(",\n");
15251
- await writeFileAsync(newPath, createWasiBinding(name, wasiRegisterFunctions) + exportsCode + "\n", "utf8");
15278
+ await writeFileAsync(newPath, createWasiBinding(name, this.config.packageName, wasiRegisterFunctions) + exportsCode + "\n", "utf8");
15252
15279
  await writeFileAsync(workerPath, WASI_WORKER_TEMPLATE, "utf8");
15253
15280
  return {
15254
15281
  kind: "wasm",
@@ -15343,6 +15370,16 @@ async function createNpmDirs(userOptions) {
15343
15370
  };
15344
15371
  if (target.arch !== "wasm32") {
15345
15372
  scopedPackageJson.os = [target.platform];
15373
+ } else {
15374
+ const entry = `${binaryName}.wasi.cjs`;
15375
+ scopedPackageJson.files.push(entry, `wasi-worker.mjs`);
15376
+ scopedPackageJson.main = entry;
15377
+ const emnapiCore = await fetch(`https://registry.npmjs.org/@emnapi/core`).then((res) => res.json());
15378
+ const emnapiRuntime = await fetch(`https://registry.npmjs.org/@emnapi/runtime`).then((res) => res.json());
15379
+ scopedPackageJson.dependencies = {
15380
+ "@emnapi/core": `^${emnapiCore["dist-tags"].latest}`,
15381
+ "@emnapi/runtime": `^${emnapiRuntime["dist-tags"].latest}`
15382
+ };
15346
15383
  }
15347
15384
  if (target.abi === "gnu") {
15348
15385
  scopedPackageJson.libc = ["glibc"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.0.0-alpha.25",
3
+ "version": "3.0.0-alpha.28",
4
4
  "description": "Cli tools for napi-rs",
5
5
  "author": "LongYinan <lynweklm@gmail.com>",
6
6
  "homepage": "https://github.com/napi-rs/napi-rs",
@@ -73,7 +73,7 @@
73
73
  "clipanion": "^3.2.1",
74
74
  "colorette": "^2.0.20",
75
75
  "debug": "^4.3.4",
76
- "emnapi": "0.44.0",
76
+ "emnapi": "0.45.0",
77
77
  "inquirer": "^9.2.12",
78
78
  "js-yaml": "^4.1.0",
79
79
  "lodash-es": "^4.17.21",
@@ -81,12 +81,13 @@
81
81
  "typanion": "^3.14.0"
82
82
  },
83
83
  "devDependencies": {
84
- "@emnapi/core": "0.44.0",
85
- "@emnapi/runtime": "0.44.0",
84
+ "@emnapi/core": "^0.45.0",
85
+ "@emnapi/runtime": "^0.45.0",
86
86
  "@types/debug": "^4.1.12",
87
87
  "@types/inquirer": "^9.0.7",
88
88
  "@types/js-yaml": "^4.0.9",
89
89
  "@types/lodash-es": "^4.17.12",
90
+ "@types/node": "^20.10.5",
90
91
  "ava": "^6.0.0",
91
92
  "env-paths": "^3.0.0",
92
93
  "esbuild": "^0.19.8",
@@ -96,9 +97,9 @@
96
97
  "typescript": "^5.3.2"
97
98
  },
98
99
  "peerDependencies": {
99
- "@emnapi/runtime": "0.44.0",
100
- "@tybys/wasm-util": "0.8.0",
101
- "emnapi": "0.44.0"
100
+ "@emnapi/runtime": "^0.45.0",
101
+ "@tybys/wasm-util": "^0.8.0",
102
+ "emnapi": "^0.45.0"
102
103
  },
103
104
  "peerDependenciesMeta": {
104
105
  "@emnapi/runtime": {
@@ -129,5 +130,5 @@
129
130
  "**/__tests__/**/*.spec.ts"
130
131
  ]
131
132
  },
132
- "gitHead": "958ba74afffd321f92fe1d4c5af70fe376ade2e7"
133
+ "gitHead": "f47cc7274952c81d1fe364226a20fc347ff44c74"
133
134
  }
@@ -1,4 +1,4 @@
1
- import { join, parse, resolve } from 'node:path'
1
+ import { join, parse } from 'node:path'
2
2
 
3
3
  import * as colors from 'colorette'
4
4
 
@@ -20,11 +20,11 @@ const debug = debugFactory('artifacts')
20
20
  export async function collectArtifacts(userOptions: ArtifactsOptions) {
21
21
  const options = applyDefaultArtifactsOptions(userOptions)
22
22
 
23
- const packageJsonPath = resolve(options.cwd, options.packageJsonPath)
23
+ const packageJsonPath = join(options.cwd, options.packageJsonPath)
24
24
  const { targets, binaryName } = await readNapiConfig(packageJsonPath)
25
25
 
26
26
  const distDirs = targets.map((platform) =>
27
- resolve(options.cwd, options.npmDir, platform.platformArchABI),
27
+ join(options.cwd, options.npmDir, platform.platformArchABI),
28
28
  )
29
29
 
30
30
  const universalSourceBins = new Set(
@@ -36,7 +36,7 @@ export async function collectArtifacts(userOptions: ArtifactsOptions) {
36
36
  .filter(Boolean) as string[],
37
37
  )
38
38
 
39
- await collectNodeBinaries(resolve(options.cwd, options.outputDir)).then(
39
+ await collectNodeBinaries(join(options.cwd, options.outputDir)).then(
40
40
  (output) =>
41
41
  Promise.all(
42
42
  output.map(async (filePath) => {
@@ -80,6 +80,41 @@ export async function collectArtifacts(userOptions: ArtifactsOptions) {
80
80
  }),
81
81
  ),
82
82
  )
83
+
84
+ const wasiTarget = targets.find((t) => t.platform === 'wasi')
85
+ if (wasiTarget) {
86
+ const wasiDir = join(
87
+ options.cwd,
88
+ options.npmDir,
89
+ wasiTarget.platformArchABI,
90
+ )
91
+ const cjsFile = join(
92
+ options.buildOutputDir ?? options.cwd,
93
+ `${binaryName}.wasi.cjs`,
94
+ )
95
+ const workerFile = join(
96
+ options.buildOutputDir ?? options.cwd,
97
+ `wasi-worker.mjs`,
98
+ )
99
+ debug.info(
100
+ `Move wasi cjs file [${colors.yellowBright(
101
+ cjsFile,
102
+ )}] to [${colors.yellowBright(wasiDir)}]`,
103
+ )
104
+ await writeFileAsync(
105
+ join(wasiDir, `${binaryName}.wasi.cjs`),
106
+ await readFileAsync(cjsFile),
107
+ )
108
+ debug.info(
109
+ `Move wasi worker file [${colors.yellowBright(
110
+ workerFile,
111
+ )}] to [${colors.yellowBright(wasiDir)}]`,
112
+ )
113
+ await writeFileAsync(
114
+ join(wasiDir, `wasi-worker.mjs`),
115
+ await readFileAsync(workerFile),
116
+ )
117
+ }
83
118
  }
84
119
 
85
120
  async function collectNodeBinaries(root: string) {
@@ -90,7 +125,9 @@ async function collectNodeBinaries(root: string) {
90
125
 
91
126
  const dirs = files.filter((file) => file.isDirectory())
92
127
  for (const dir of dirs) {
93
- nodeBinaries.push(...(await collectNodeBinaries(join(root, dir.name))))
128
+ if (dir.name !== 'node_modules') {
129
+ nodeBinaries.push(...(await collectNodeBinaries(join(root, dir.name))))
130
+ }
94
131
  }
95
132
  return nodeBinaries
96
133
  }
package/src/api/build.ts CHANGED
@@ -799,7 +799,13 @@ class Builder {
799
799
  .join(',\n')
800
800
  await writeFileAsync(
801
801
  newPath,
802
- createWasiBinding(name, wasiRegisterFunctions) + exportsCode + '\n',
802
+ createWasiBinding(
803
+ name,
804
+ this.config.packageName,
805
+ wasiRegisterFunctions,
806
+ ) +
807
+ exportsCode +
808
+ '\n',
803
809
  'utf8',
804
810
  )
805
811
  await writeFileAsync(workerPath, WASI_WORKER_TEMPLATE, 'utf8')
@@ -13,6 +13,8 @@ import {
13
13
  Target,
14
14
  } from '../utils/index.js'
15
15
 
16
+ import type { PackageMeta } from './templates/package.json.js'
17
+
16
18
  const debug = debugFactory('create-npm-dirs')
17
19
 
18
20
  export async function createNpmDirs(userOptions: CreateNpmDirsOptions) {
@@ -82,6 +84,21 @@ export async function createNpmDirs(userOptions: CreateNpmDirsOptions) {
82
84
  if (target.arch !== 'wasm32') {
83
85
  // @ts-expect-error
84
86
  scopedPackageJson.os = [target.platform]
87
+ } else {
88
+ const entry = `${binaryName}.wasi.cjs`
89
+ scopedPackageJson.files.push(entry, `wasi-worker.mjs`)
90
+ scopedPackageJson.main = entry
91
+ const emnapiCore = await fetch(
92
+ `https://registry.npmjs.org/@emnapi/core`,
93
+ ).then((res) => res.json() as Promise<PackageMeta>)
94
+ const emnapiRuntime = await fetch(
95
+ `https://registry.npmjs.org/@emnapi/runtime`,
96
+ ).then((res) => res.json() as Promise<PackageMeta>)
97
+ // @ts-expect-error
98
+ scopedPackageJson.dependencies = {
99
+ '@emnapi/core': `^${emnapiCore['dist-tags'].latest}`,
100
+ '@emnapi/runtime': `^${emnapiRuntime['dist-tags'].latest}`,
101
+ }
85
102
  }
86
103
 
87
104
  if (target.abi === 'gnu') {
@@ -313,14 +313,7 @@ switch (platform) {
313
313
 
314
314
  if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
315
315
  try {
316
- localFileExisted = existsSync(
317
- join(__dirname, '${localName}.wasm32-wasi.wasm')
318
- ) && existsSync(join(__dirname, '${localName}.wasi.cjs'))
319
- if (localFileExisted) {
320
- nativeBinding = require('./${localName}.wasi.cjs')
321
- } else {
322
- nativeBinding = require('${pkgName}-wasm32-wasi')
323
- }
316
+ nativeBinding = require('./${localName}.wasi.cjs')
324
317
  } catch {
325
318
  // ignore
326
319
  }
@@ -1,5 +1,6 @@
1
1
  export const createWasiBinding = (
2
2
  wasmFileName: string,
3
+ packageName: string,
3
4
  wasiRegisterFunctions: string[],
4
5
  ) => `/* eslint-disable */
5
6
  /* prettier-ignore */
@@ -30,9 +31,27 @@ const __sharedMemory = new WebAssembly.Memory({
30
31
  shared: true,
31
32
  })
32
33
 
33
- const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
34
+ let __wasmFilePath = __nodePath.join(__dirname, '${wasmFileName}.wasm')
35
+
36
+ if (!__nodeFs.existsSync(__wasmFilePath)) {
37
+ try {
38
+ __wasmFilePath = __nodePath.resolve('${packageName}-wasm32-wasi')
39
+ } catch {
40
+ throw new Error('Cannot find ${wasmFileName}.wasm file, and ${packageName}-wasm32-wasi package is not installed.')
41
+ }
42
+ }
43
+
44
+ const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
34
45
  context: __emnapiContext,
35
- asyncWorkPoolSize: 4,
46
+ asyncWorkPoolSize: (function() {
47
+ const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
48
+ // NaN > 0 is false
49
+ if (threadsSizeFromEnv > 0) {
50
+ return threadsSizeFromEnv
51
+ } else {
52
+ return 4
53
+ }
54
+ })(),
36
55
  wasi: __wasi,
37
56
  onCreateWorker() {
38
57
  return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
@@ -4,7 +4,7 @@ import type {
4
4
  } from '../../utils/config.js'
5
5
  import { UNIVERSAL_TARGETS } from '../../utils/target.js'
6
6
 
7
- interface PackageMeta {
7
+ export interface PackageMeta {
8
8
  'dist-tags': { [index: string]: string }
9
9
  }
10
10
 
@@ -32,6 +32,11 @@ export abstract class BaseArtifactsCommand extends Command {
32
32
  description: 'Path to the folder where the npm packages put',
33
33
  })
34
34
 
35
+ buildOutputDir?: string = Option.String('--build-output-dir', {
36
+ description:
37
+ 'Path to the build output dir, only needed when targets contains `wasm32-wasi-*`',
38
+ })
39
+
35
40
  getOptions() {
36
41
  return {
37
42
  cwd: this.cwd,
@@ -39,6 +44,7 @@ export abstract class BaseArtifactsCommand extends Command {
39
44
  packageJsonPath: this.packageJsonPath,
40
45
  outputDir: this.outputDir,
41
46
  npmDir: this.npmDir,
47
+ buildOutputDir: this.buildOutputDir,
42
48
  }
43
49
  }
44
50
  }
@@ -75,6 +81,10 @@ export interface ArtifactsOptions {
75
81
  * @default 'npm'
76
82
  */
77
83
  npmDir?: string
84
+ /**
85
+ * Path to the build output dir, only needed when targets contains `wasm32-wasi-*`
86
+ */
87
+ buildOutputDir?: string
78
88
  }
79
89
 
80
90
  export function applyDefaultArtifactsOptions(options: ArtifactsOptions) {