@napi-rs/cli 3.0.0-alpha.6 → 3.0.0-alpha.60

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.
Files changed (155) hide show
  1. package/dist/api/artifacts.js +28 -7
  2. package/dist/api/artifacts.js.map +1 -1
  3. package/dist/api/build.js +220 -39
  4. package/dist/api/build.js.map +1 -1
  5. package/dist/api/create-npm-dirs.js +45 -8
  6. package/dist/api/create-npm-dirs.js.map +1 -1
  7. package/dist/api/new.js +57 -20
  8. package/dist/api/new.js.map +1 -1
  9. package/dist/api/pre-publish.js +9 -7
  10. package/dist/api/pre-publish.js.map +1 -1
  11. package/dist/api/rename.js +9 -1
  12. package/dist/api/rename.js.map +1 -1
  13. package/dist/api/templates/ci-template.d.ts +3 -1
  14. package/dist/api/templates/ci-template.js +124 -124
  15. package/dist/api/templates/ci-template.js.map +1 -1
  16. package/dist/api/templates/ci.yml.d.ts +3 -1
  17. package/dist/api/templates/ci.yml.js +21 -5
  18. package/dist/api/templates/ci.yml.js.map +1 -1
  19. package/dist/api/templates/js-binding.js +104 -214
  20. package/dist/api/templates/js-binding.js.map +1 -1
  21. package/dist/api/templates/lib.rs.js +1 -4
  22. package/dist/api/templates/lib.rs.js.map +1 -1
  23. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  24. package/dist/api/templates/load-wasi-template.js +166 -0
  25. package/dist/api/templates/load-wasi-template.js.map +1 -0
  26. package/dist/api/templates/package.json.d.ts +9 -2
  27. package/dist/api/templates/package.json.js +26 -4
  28. package/dist/api/templates/package.json.js.map +1 -1
  29. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  30. package/dist/api/templates/wasi-worker-template.js +122 -0
  31. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  32. package/dist/api/universalize.js +5 -5
  33. package/dist/api/universalize.js.map +1 -1
  34. package/dist/api/version.js +2 -2
  35. package/dist/api/version.js.map +1 -1
  36. package/dist/commands/artifacts.js +2 -2
  37. package/dist/commands/artifacts.js.map +1 -1
  38. package/dist/commands/build.js +1 -1
  39. package/dist/commands/build.js.map +1 -1
  40. package/dist/commands/new.js +30 -8
  41. package/dist/commands/new.js.map +1 -1
  42. package/dist/def/artifacts.d.ts +21 -1
  43. package/dist/def/artifacts.js +10 -2
  44. package/dist/def/artifacts.js.map +1 -1
  45. package/dist/def/build.d.ts +22 -4
  46. package/dist/def/build.js +16 -4
  47. package/dist/def/build.js.map +1 -1
  48. package/dist/def/create-npm-dirs.d.ts +10 -0
  49. package/dist/def/create-npm-dirs.js +4 -0
  50. package/dist/def/create-npm-dirs.js.map +1 -1
  51. package/dist/def/new.d.ts +25 -7
  52. package/dist/def/new.js +11 -1
  53. package/dist/def/new.js.map +1 -1
  54. package/dist/def/pre-publish.d.ts +12 -2
  55. package/dist/def/pre-publish.js +7 -3
  56. package/dist/def/pre-publish.js.map +1 -1
  57. package/dist/def/rename.d.ts +16 -6
  58. package/dist/def/rename.js +5 -1
  59. package/dist/def/rename.js.map +1 -1
  60. package/dist/def/universalize.d.ts +10 -0
  61. package/dist/def/universalize.js +4 -0
  62. package/dist/def/universalize.js.map +1 -1
  63. package/dist/def/version.d.ts +10 -0
  64. package/dist/def/version.js +4 -0
  65. package/dist/def/version.js.map +1 -1
  66. package/dist/index.cjs +8143 -14638
  67. package/dist/index.d.ts +1 -0
  68. package/dist/index.js +1 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  71. package/dist/utils/__tests__/config.spec.js +63 -0
  72. package/dist/utils/__tests__/config.spec.js.map +1 -0
  73. package/dist/utils/__tests__/typegen.spec.js +8 -4
  74. package/dist/utils/__tests__/typegen.spec.js.map +1 -1
  75. package/dist/utils/cargo.js +1 -1
  76. package/dist/utils/cargo.js.map +1 -1
  77. package/dist/utils/config.d.ts +49 -5
  78. package/dist/utils/config.js +38 -6
  79. package/dist/utils/config.js.map +1 -1
  80. package/dist/utils/index.d.ts +0 -1
  81. package/dist/utils/index.js +0 -1
  82. package/dist/utils/index.js.map +1 -1
  83. package/dist/utils/metadata.js +2 -2
  84. package/dist/utils/metadata.js.map +1 -1
  85. package/dist/utils/misc.d.ts +1 -2
  86. package/dist/utils/misc.js +3 -3
  87. package/dist/utils/misc.js.map +1 -1
  88. package/dist/utils/target.d.ts +7 -5
  89. package/dist/utils/target.js +17 -3
  90. package/dist/utils/target.js.map +1 -1
  91. package/dist/utils/typegen.d.ts +1 -1
  92. package/dist/utils/typegen.js +29 -9
  93. package/dist/utils/typegen.js.map +1 -1
  94. package/dist/utils/version.d.ts +2 -1
  95. package/dist/utils/version.js +10 -8
  96. package/dist/utils/version.js.map +1 -1
  97. package/package.json +25 -24
  98. package/src/api/artifacts.ts +81 -9
  99. package/src/api/build.ts +379 -58
  100. package/src/api/create-npm-dirs.ts +56 -8
  101. package/src/api/new.ts +89 -31
  102. package/src/api/pre-publish.ts +13 -7
  103. package/src/api/rename.ts +10 -1
  104. package/src/api/templates/ci-template.ts +134 -124
  105. package/src/api/templates/ci.yml.ts +27 -6
  106. package/src/api/templates/js-binding.ts +105 -214
  107. package/src/api/templates/lib.rs.ts +1 -4
  108. package/src/api/templates/load-wasi-template.ts +180 -0
  109. package/src/api/templates/package.json.ts +47 -5
  110. package/src/api/templates/wasi-worker-template.ts +122 -0
  111. package/src/api/universalize.ts +13 -8
  112. package/src/api/version.ts +5 -2
  113. package/src/commands/artifacts.ts +2 -2
  114. package/src/commands/build.ts +1 -1
  115. package/src/commands/new.ts +31 -8
  116. package/src/def/artifacts.ts +22 -3
  117. package/src/def/build.ts +36 -8
  118. package/src/def/create-npm-dirs.ts +9 -0
  119. package/src/def/new.ts +28 -3
  120. package/src/def/pre-publish.ts +12 -3
  121. package/src/def/rename.ts +11 -2
  122. package/src/def/universalize.ts +9 -0
  123. package/src/def/version.ts +9 -0
  124. package/src/index.ts +2 -0
  125. package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
  126. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  127. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  128. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  129. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  130. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +713 -158
  131. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  132. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  133. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  134. package/src/utils/__tests__/config.spec.ts +81 -0
  135. package/src/utils/__tests__/typegen.spec.ts +18 -3
  136. package/src/utils/cargo.ts +1 -1
  137. package/src/utils/config.ts +114 -12
  138. package/src/utils/index.ts +0 -1
  139. package/src/utils/metadata.ts +2 -2
  140. package/src/utils/misc.ts +11 -3
  141. package/src/utils/target.ts +22 -4
  142. package/src/utils/typegen.ts +37 -8
  143. package/src/utils/version.ts +10 -8
  144. package/dist/api/load-wasi-template.d.ts +0 -1
  145. package/dist/api/load-wasi-template.js +0 -63
  146. package/dist/api/load-wasi-template.js.map +0 -1
  147. package/dist/api/wasi-worker-template.d.ts +0 -1
  148. package/dist/api/wasi-worker-template.js +0 -53
  149. package/dist/api/wasi-worker-template.js.map +0 -1
  150. package/dist/utils/ci.d.ts +0 -11
  151. package/dist/utils/ci.js +0 -96
  152. package/dist/utils/ci.js.map +0 -1
  153. package/src/api/load-wasi-template.ts +0 -65
  154. package/src/api/wasi-worker-template.ts +0 -52
  155. package/src/utils/ci.ts +0 -111
@@ -0,0 +1,122 @@
1
+ export const WASI_WORKER_TEMPLATE = `import fs from "node:fs";
2
+ import { createRequire } from "node:module";
3
+ import { parse } from "node:path";
4
+ import { WASI } from "node:wasi";
5
+ import { parentPort, Worker } from "node:worker_threads";
6
+
7
+ const require = createRequire(import.meta.url);
8
+
9
+ const { instantiateNapiModuleSync, MessageHandler, getDefaultContext } = require("@napi-rs/wasm-runtime");
10
+
11
+ if (parentPort) {
12
+ parentPort.on("message", (data) => {
13
+ globalThis.onmessage({ data });
14
+ });
15
+ }
16
+
17
+ Object.assign(globalThis, {
18
+ self: globalThis,
19
+ require,
20
+ Worker,
21
+ importScripts: function (f) {
22
+ ;(0, eval)(fs.readFileSync(f, "utf8") + "//# sourceURL=" + f);
23
+ },
24
+ postMessage: function (msg) {
25
+ if (parentPort) {
26
+ parentPort.postMessage(msg);
27
+ }
28
+ },
29
+ });
30
+
31
+ const emnapiContext = getDefaultContext();
32
+
33
+ const __rootDir = parse(process.cwd()).root;
34
+
35
+ const handler = new MessageHandler({
36
+ onLoad({ wasmModule, wasmMemory }) {
37
+ const wasi = new WASI({
38
+ version: 'preview1',
39
+ env: process.env,
40
+ preopens: {
41
+ [__rootDir]: __rootDir,
42
+ },
43
+ });
44
+
45
+ return instantiateNapiModuleSync(wasmModule, {
46
+ childThread: true,
47
+ wasi,
48
+ context: emnapiContext,
49
+ overwriteImports(importObject) {
50
+ importObject.env = {
51
+ ...importObject.env,
52
+ ...importObject.napi,
53
+ ...importObject.emnapi,
54
+ memory: wasmMemory
55
+ };
56
+ },
57
+ });
58
+ },
59
+ });
60
+
61
+ globalThis.onmessage = function (e) {
62
+ handler.handle(e);
63
+ };
64
+ `;
65
+ export const createWasiBrowserWorkerBinding = (fs) => {
66
+ const fsImport = fs
67
+ ? `import { instantiateNapiModuleSync, MessageHandler, WASI, createFsProxy } from '@napi-rs/wasm-runtime'
68
+ import { memfsExported as __memfsExported } from '@napi-rs/wasm-runtime/fs'
69
+
70
+ const fs = createFsProxy(__memfsExported)`
71
+ : `import { instantiateNapiModuleSync, MessageHandler, WASI } from '@napi-rs/wasm-runtime'`;
72
+ const wasiCreation = fs
73
+ ? `const wasi = new WASI({
74
+ fs,
75
+ preopens: {
76
+ '/': '/',
77
+ },
78
+ print: function () {
79
+ // eslint-disable-next-line no-console
80
+ console.log.apply(console, arguments)
81
+ },
82
+ printErr: function() {
83
+ // eslint-disable-next-line no-console
84
+ console.error.apply(console, arguments)
85
+ },
86
+ })`
87
+ : `const wasi = new WASI({
88
+ print: function () {
89
+ // eslint-disable-next-line no-console
90
+ console.log.apply(console, arguments)
91
+ },
92
+ printErr: function() {
93
+ // eslint-disable-next-line no-console
94
+ console.error.apply(console, arguments)
95
+ },
96
+ })`;
97
+ return `${fsImport}
98
+
99
+ const handler = new MessageHandler({
100
+ onLoad({ wasmModule, wasmMemory }) {
101
+ ${wasiCreation}
102
+ return instantiateNapiModuleSync(wasmModule, {
103
+ childThread: true,
104
+ wasi,
105
+ overwriteImports(importObject) {
106
+ importObject.env = {
107
+ ...importObject.env,
108
+ ...importObject.napi,
109
+ ...importObject.emnapi,
110
+ memory: wasmMemory,
111
+ }
112
+ },
113
+ })
114
+ },
115
+ })
116
+
117
+ globalThis.onmessage = function (e) {
118
+ handler.handle(e)
119
+ }
120
+ `;
121
+ };
122
+ //# sourceMappingURL=wasi-worker-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasi-worker-template.js","sourceRoot":"","sources":["../../../src/api/templates/wasi-worker-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DnC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAW,EAAE,EAAE;IAC5D,MAAM,QAAQ,GAAG,EAAE;QACjB,CAAC,CAAC;;;0CAGoC;QACtC,CAAC,CAAC,yFAAyF,CAAA;IAC7F,MAAM,YAAY,GAAG,EAAE;QACrB,CAAC,CAAC;;;;;;;;;;;;;OAaC;QACH,CAAC,CAAC;;;;;;;;;OASC,CAAA;IACL,OAAO,GAAG,QAAQ;;;;MAId,YAAY;;;;;;;;;;;;;;;;;;;CAmBjB,CAAA;AACD,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
- import { spawnSync } from 'child_process';
2
- import { join, resolve } from 'path';
1
+ import { spawnSync } from 'node:child_process';
2
+ import { join, resolve } from 'node:path';
3
3
  import { applyDefaultUniversalizeOptions, } from '../def/universalize.js';
4
4
  import { readNapiConfig } from '../utils/config.js';
5
5
  import { debugFactory } from '../utils/log.js';
@@ -16,18 +16,18 @@ const universalizers = {
16
16
  export async function universalizeBinaries(userOptions) {
17
17
  const options = applyDefaultUniversalizeOptions(userOptions);
18
18
  const packageJsonPath = join(options.cwd, options.packageJsonPath);
19
- const config = await readNapiConfig(packageJsonPath);
19
+ const config = await readNapiConfig(packageJsonPath, options.configPath ? resolve(options.cwd, options.configPath) : undefined);
20
20
  const target = config.targets.find((t) => t.platform === process.platform && t.arch === 'universal');
21
21
  if (!target) {
22
22
  throw new Error(`'universal' arch for platform '${process.platform}' not found in config!`);
23
23
  }
24
- const srcFiles = UniArchsByPlatform[process.platform]?.map((arch) => `${config.binaryName}.${process.platform}-${arch}.node`);
24
+ const srcFiles = UniArchsByPlatform[process.platform]?.map((arch) => resolve(options.cwd, options.outputDir, `${config.binaryName}.${process.platform}-${arch}.node`));
25
25
  if (!srcFiles || !universalizers[process.platform]) {
26
26
  throw new Error(`'universal' arch for platform '${process.platform}' not supported.`);
27
27
  }
28
28
  debug(`Looking up source binaries to combine: `);
29
29
  debug(' %O', srcFiles);
30
- const srcFileLookup = await Promise.all(srcFiles.map((f) => fileExists(resolve(options.cwd, options.outputDir, f))));
30
+ const srcFileLookup = await Promise.all(srcFiles.map((f) => fileExists(f)));
31
31
  const notFoundFiles = srcFiles.filter((_, i) => !srcFileLookup[i]);
32
32
  if (notFoundFiles.length) {
33
33
  throw new Error(`Some binary files were not found: ${JSON.stringify(notFoundFiles)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"universalize.js","sourceRoot":"","sources":["../../src/api/universalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universalize.js","sourceRoot":"","sources":["../../src/api/universalize.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { join, resolve } from 'path';
1
+ import { join, resolve } from 'node:path';
2
2
  import { applyDefaultVersionOptions } from '../def/version.js';
3
3
  import { readNapiConfig, debugFactory, updatePackageJson, } from '../utils/index.js';
4
4
  const debug = debugFactory('version');
5
5
  export async function version(userOptions) {
6
6
  const options = applyDefaultVersionOptions(userOptions);
7
7
  const packageJsonPath = resolve(options.cwd, options.packageJsonPath);
8
- const config = await readNapiConfig(packageJsonPath);
8
+ const config = await readNapiConfig(packageJsonPath, options.configPath ? resolve(options.cwd, options.configPath) : undefined);
9
9
  for (const target of config.targets) {
10
10
  const pkgDir = resolve(options.cwd, options.npmDir, target.platformArchABI);
11
11
  debug(`Update version to %i in [%i]`, config.packageJson.version, pkgDir);
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/api/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEpC,OAAO,EAAE,0BAA0B,EAAkB,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,WAA2B;IACvD,MAAM,OAAO,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACvD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAErE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAA;IAEpD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QAE3E,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzE,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;YACpD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;SACpC,CAAC,CAAA;KACH;AACH,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/api/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,0BAA0B,EAAkB,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,WAA2B;IACvD,MAAM,OAAO,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;IACvD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAErE,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,eAAe,EACf,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1E,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QAE3E,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzE,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;YACpD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;SACpC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -6,9 +6,9 @@ export class ArtifactsCommand extends BaseArtifactsCommand {
6
6
  description: 'Copy artifacts from Github Actions into specified dir',
7
7
  examples: [
8
8
  [
9
- '$0 artifacts --dir . --dist ./npm',
9
+ '$0 artifacts --output-dir ./artifacts --dist ./npm',
10
10
  `Copy [binaryName].[platform].node under current dir(.) into packages under npm dir.
11
- e.g: index.linux-x64-gnu.node --> ./npm/linux-x64-gnu/index.node`,
11
+ e.g: index.linux-x64-gnu.node --> ./npm/linux-x64-gnu/index.linux-x64-gnu.node`,
12
12
  ],
13
13
  ],
14
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IACxD,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR;gBACE,mCAAmC;gBACnC;iEACyD;aAC1D;SACF;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9B,KAAK,CAAC,OAAO;QACX,MAAM,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC3C,CAAC"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IACxD,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR;gBACE,oDAAoD;gBACpD;+EACuE;aACxE;SACF;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9B,KAAK,CAAC,OAAO;QACX,MAAM,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC3C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { execSync } from 'child_process';
1
+ import { execSync } from 'node:child_process';
2
2
  import { Option } from 'clipanion';
3
3
  import { buildProject } from '../api/build.js';
4
4
  import { BaseBuildCommand } from '../def/build.js';
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;AAEnC,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAChD,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC7B,WAAW,EACT,yFAAyF;KAC5F,CAAC,CAAA;IAEF,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAE5B,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC;YAClC,GAAG,IAAI,CAAC,UAAU,EAAE;YACpB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAA;QAE1B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACrD,IAAI;oBACF,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE;wBACtC,KAAK,EAAE,SAAS;wBAChB,GAAG,EAAE,IAAI,CAAC,GAAG;qBACd,CAAC,CAAA;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,KAAK,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,aAAa,CAAC,CAAA;oBACnE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;iBACf;aACF;SACF;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;AAEnC,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAChD,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC7B,WAAW,EACT,yFAAyF;KAC5F,CAAC,CAAA;IAEF,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAE5B,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC;YAClC,GAAG,IAAI,CAAC,UAAU,EAAE;YACpB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAA;QAE1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACrD,IAAI,CAAC;oBACH,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE;wBACtC,KAAK,EAAE,SAAS;wBAChB,GAAG,EAAE,IAAI,CAAC,GAAG;qBACd,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,KAAK,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,aAAa,CAAC,CAAA;oBACnE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import path from 'path';
1
+ import path from 'node:path';
2
2
  import { Option } from 'clipanion';
3
3
  import inquirer from 'inquirer';
4
4
  import { newProject } from '../api/new.js';
@@ -7,7 +7,7 @@ import { AVAILABLE_TARGETS, debugFactory, DEFAULT_TARGETS, } from '../utils/inde
7
7
  import { napiEngineRequirement } from '../utils/version.js';
8
8
  const debug = debugFactory('new');
9
9
  export class NewCommand extends BaseNewCommand {
10
- interactive = Option.Boolean('--interactive,-i', false, {
10
+ interactive = Option.Boolean('--interactive,-i', true, {
11
11
  description: 'Ask project basic information interactively without just using the default.',
12
12
  });
13
13
  async execute() {
@@ -25,9 +25,13 @@ export class NewCommand extends BaseNewCommand {
25
25
  async fetchOptions() {
26
26
  const cmdOptions = super.getOptions();
27
27
  if (this.interactive) {
28
+ const targetPath = cmdOptions.path
29
+ ? cmdOptions.path
30
+ : await inquirerProjectPath();
31
+ cmdOptions.path = targetPath;
28
32
  return {
29
33
  ...cmdOptions,
30
- name: await this.fetchName(path.parse(cmdOptions.path).base),
34
+ name: await this.fetchName(path.parse(targetPath).base),
31
35
  minNodeApiVersion: await this.fetchNapiVersion(),
32
36
  targets: await this.fetchTargets(),
33
37
  license: await this.fetchLicense(),
@@ -39,14 +43,14 @@ export class NewCommand extends BaseNewCommand {
39
43
  }
40
44
  async fetchName(defaultName) {
41
45
  return (this.$$name ??
42
- (await inquirer
46
+ inquirer
43
47
  .prompt({
44
48
  type: 'input',
45
49
  name: 'name',
46
50
  message: 'Package name (the name field in your package.json file)',
47
51
  default: defaultName,
48
52
  })
49
- .then(({ name }) => name)));
53
+ .then(({ name }) => name));
50
54
  }
51
55
  async fetchLicense() {
52
56
  return inquirer
@@ -65,7 +69,7 @@ export class NewCommand extends BaseNewCommand {
65
69
  name: 'minNodeApiVersion',
66
70
  message: 'Minimum node-api version (with node version requirement)',
67
71
  loop: false,
68
- choices: new Array(8).fill(0).map((_, i) => ({
72
+ choices: Array.from({ length: 8 }, (_, i) => ({
69
73
  name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
70
74
  value: i + 1,
71
75
  })),
@@ -83,8 +87,12 @@ export class NewCommand extends BaseNewCommand {
83
87
  type: 'checkbox',
84
88
  loop: false,
85
89
  message: 'Choose target(s) your crate will be compiled to',
86
- default: this.enableDefaultTargets ? DEFAULT_TARGETS : [],
87
- choices: AVAILABLE_TARGETS,
90
+ choices: AVAILABLE_TARGETS.map((target) => ({
91
+ name: target,
92
+ value: target,
93
+ // @ts-expect-error
94
+ checked: DEFAULT_TARGETS.includes(target),
95
+ })),
88
96
  });
89
97
  return targets;
90
98
  }
@@ -107,4 +115,18 @@ export class NewCommand extends BaseNewCommand {
107
115
  return enableGithubActions;
108
116
  }
109
117
  }
118
+ async function inquirerProjectPath() {
119
+ return inquirer
120
+ .prompt({
121
+ type: 'input',
122
+ name: 'path',
123
+ message: 'Target path to create the project, relative to cwd.',
124
+ })
125
+ .then(({ path }) => {
126
+ if (!path) {
127
+ return inquirerProjectPath();
128
+ }
129
+ return path;
130
+ });
131
+ }
110
132
  //# sourceMappingURL=new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,18 @@ export declare abstract class BaseArtifactsCommand extends Command {
3
3
  static paths: string[][];
4
4
  static usage: import("clipanion").Usage;
5
5
  cwd: string;
6
+ configPath?: string;
6
7
  packageJsonPath: string;
7
8
  outputDir: string;
8
9
  npmDir: string;
10
+ buildOutputDir?: string;
9
11
  getOptions(): {
10
12
  cwd: string;
13
+ configPath: string | undefined;
11
14
  packageJsonPath: string;
12
15
  outputDir: string;
13
16
  npmDir: string;
17
+ buildOutputDir: string | undefined;
14
18
  };
15
19
  }
16
20
  /**
@@ -23,6 +27,10 @@ export interface ArtifactsOptions {
23
27
  * @default process.cwd()
24
28
  */
25
29
  cwd?: string;
30
+ /**
31
+ * Path to `napi` config json file
32
+ */
33
+ configPath?: string;
26
34
  /**
27
35
  * Path to `package.json`
28
36
  *
@@ -32,7 +40,7 @@ export interface ArtifactsOptions {
32
40
  /**
33
41
  * Path to the folder where all built `.node` files put, same as `--output-dir` of build command
34
42
  *
35
- * @default './'
43
+ * @default './artifacts'
36
44
  */
37
45
  outputDir?: string;
38
46
  /**
@@ -41,10 +49,22 @@ export interface ArtifactsOptions {
41
49
  * @default 'npm'
42
50
  */
43
51
  npmDir?: string;
52
+ /**
53
+ * Path to the build output dir, only needed when targets contains `wasm32-wasi-*`
54
+ */
55
+ buildOutputDir?: string;
44
56
  }
45
57
  export declare function applyDefaultArtifactsOptions(options: ArtifactsOptions): {
46
58
  cwd: string;
59
+ /**
60
+ * Path to `napi` config json file
61
+ */
62
+ configPath?: string;
47
63
  packageJsonPath: string;
48
64
  outputDir: string;
49
65
  npmDir: string;
66
+ /**
67
+ * Path to the build output dir, only needed when targets contains `wasm32-wasi-*`
68
+ */
69
+ buildOutputDir?: string;
50
70
  };
@@ -9,21 +9,29 @@ export class BaseArtifactsCommand extends Command {
9
9
  cwd = Option.String('--cwd', process.cwd(), {
10
10
  description: 'The working directory of where napi command will be executed in, all other paths options are relative to this path',
11
11
  });
12
+ configPath = Option.String('--config-path,-c', {
13
+ description: 'Path to `napi` config json file',
14
+ });
12
15
  packageJsonPath = Option.String('--package-json-path', 'package.json', {
13
16
  description: 'Path to `package.json`',
14
17
  });
15
- outputDir = Option.String('--output-dir,-o', './', {
18
+ outputDir = Option.String('--output-dir,-o,-d', './artifacts', {
16
19
  description: 'Path to the folder where all built `.node` files put, same as `--output-dir` of build command',
17
20
  });
18
21
  npmDir = Option.String('--npm-dir', 'npm', {
19
22
  description: 'Path to the folder where the npm packages put',
20
23
  });
24
+ buildOutputDir = Option.String('--build-output-dir', {
25
+ description: 'Path to the build output dir, only needed when targets contains `wasm32-wasi-*`',
26
+ });
21
27
  getOptions() {
22
28
  return {
23
29
  cwd: this.cwd,
30
+ configPath: this.configPath,
24
31
  packageJsonPath: this.packageJsonPath,
25
32
  outputDir: this.outputDir,
26
33
  npmDir: this.npmDir,
34
+ buildOutputDir: this.buildOutputDir,
27
35
  };
28
36
  }
29
37
  }
@@ -31,7 +39,7 @@ export function applyDefaultArtifactsOptions(options) {
31
39
  return {
32
40
  cwd: process.cwd(),
33
41
  packageJsonPath: 'package.json',
34
- outputDir: './',
42
+ outputDir: './artifacts',
35
43
  npmDir: 'npm',
36
44
  ...options,
37
45
  };
@@ -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,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,cAAc,EAAE;QACrE,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAA;IAEF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE;QACjD,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,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;;AAiCH,MAAM,UAAU,4BAA4B,CAAC,OAAyB;IACpE,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,eAAe,EAAE,cAAc;QAC/B,SAAS,EAAE,IAAI;QACf,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"}
@@ -5,11 +5,13 @@ export declare abstract class BaseBuildCommand extends Command {
5
5
  target?: string;
6
6
  cwd?: string;
7
7
  manifestPath?: string;
8
+ configPath?: string;
8
9
  packageJsonPath?: string;
9
10
  targetDir?: string;
10
11
  outputDir?: string;
11
12
  platform?: boolean;
12
13
  jsPackageName?: string;
14
+ constEnum?: boolean;
13
15
  jsBinding?: string;
14
16
  noJsBinding?: boolean;
15
17
  dts?: string;
@@ -23,6 +25,7 @@ export declare abstract class BaseBuildCommand extends Command {
23
25
  profile?: string;
24
26
  crossCompile?: boolean;
25
27
  useCross?: boolean;
28
+ useNapiCross?: boolean;
26
29
  watch?: boolean;
27
30
  features?: string[];
28
31
  allFeatures?: boolean;
@@ -31,11 +34,13 @@ export declare abstract class BaseBuildCommand extends Command {
31
34
  target: string | undefined;
32
35
  cwd: string | undefined;
33
36
  manifestPath: string | undefined;
37
+ configPath: string | undefined;
34
38
  packageJsonPath: string | undefined;
35
39
  targetDir: string | undefined;
36
40
  outputDir: string | undefined;
37
41
  platform: boolean | undefined;
38
42
  jsPackageName: string | undefined;
43
+ constEnum: boolean | undefined;
39
44
  jsBinding: string | undefined;
40
45
  noJsBinding: boolean | undefined;
41
46
  dts: string | undefined;
@@ -49,6 +54,7 @@ export declare abstract class BaseBuildCommand extends Command {
49
54
  profile: string | undefined;
50
55
  crossCompile: boolean | undefined;
51
56
  useCross: boolean | undefined;
57
+ useNapiCross: boolean | undefined;
52
58
  watch: boolean | undefined;
53
59
  features: string[] | undefined;
54
60
  allFeatures: boolean | undefined;
@@ -56,7 +62,7 @@ export declare abstract class BaseBuildCommand extends Command {
56
62
  };
57
63
  }
58
64
  /**
59
- * Build the napi-rs project
65
+ * Build the NAPI-RS project
60
66
  */
61
67
  export interface BuildOptions {
62
68
  /**
@@ -71,6 +77,10 @@ export interface BuildOptions {
71
77
  * Path to `Cargo.toml`
72
78
  */
73
79
  manifestPath?: string;
80
+ /**
81
+ * Path to `napi` config json file
82
+ */
83
+ configPath?: string;
74
84
  /**
75
85
  * Path to `package.json`
76
86
  */
@@ -92,7 +102,11 @@ export interface BuildOptions {
92
102
  */
93
103
  jsPackageName?: string;
94
104
  /**
95
- * Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output_dir`.
105
+ * Whether generate const enum for typescript bindings
106
+ */
107
+ constEnum?: boolean;
108
+ /**
109
+ * Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output-dir`.
96
110
  */
97
111
  jsBinding?: string;
98
112
  /**
@@ -100,7 +114,7 @@ export interface BuildOptions {
100
114
  */
101
115
  noJsBinding?: boolean;
102
116
  /**
103
- * Path and filename of generated type def file. Relative to `--output_dir`
117
+ * Path and filename of generated type def file. Relative to `--output-dir`
104
118
  */
105
119
  dts?: string;
106
120
  /**
@@ -144,7 +158,11 @@ export interface BuildOptions {
144
158
  */
145
159
  useCross?: boolean;
146
160
  /**
147
- * watch the crate changes and build continiously with `cargo-watch` crates
161
+ * [experimental] use @napi-rs/cross-toolchain to cross-compile Linux arm/arm64/x64 gnu targets.
162
+ */
163
+ useNapiCross?: boolean;
164
+ /**
165
+ * watch the crate changes and build continuously with `cargo-watch` crates
148
166
  */
149
167
  watch?: boolean;
150
168
  /**
package/dist/def/build.js CHANGED
@@ -4,7 +4,7 @@ import { Command, Option } from 'clipanion';
4
4
  export class BaseBuildCommand extends Command {
5
5
  static paths = [['build']];
6
6
  static usage = Command.Usage({
7
- description: 'Build the napi-rs project',
7
+ description: 'Build the NAPI-RS project',
8
8
  });
9
9
  target = Option.String('--target,-t', {
10
10
  description: 'Build for the target triple, bypassed to `cargo build --target`',
@@ -15,6 +15,9 @@ export class BaseBuildCommand extends Command {
15
15
  manifestPath = Option.String('--manifest-path', {
16
16
  description: 'Path to `Cargo.toml`',
17
17
  });
18
+ configPath = Option.String('--config-path,-c', {
19
+ description: 'Path to `napi` config json file',
20
+ });
18
21
  packageJsonPath = Option.String('--package-json-path', {
19
22
  description: 'Path to `package.json`',
20
23
  });
@@ -30,14 +33,17 @@ export class BaseBuildCommand extends Command {
30
33
  jsPackageName = Option.String('--js-package-name', {
31
34
  description: 'Package name in generated js binding file. Only works with `--platform` flag',
32
35
  });
36
+ constEnum = Option.Boolean('--const-enum', {
37
+ description: 'Whether generate const enum for typescript bindings',
38
+ });
33
39
  jsBinding = Option.String('--js', {
34
- description: 'Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output_dir`.',
40
+ description: 'Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output-dir`.',
35
41
  });
36
42
  noJsBinding = Option.Boolean('--no-js', {
37
43
  description: 'Whether to disable the generation JS binding file. Only works with `--platform` flag.',
38
44
  });
39
45
  dts = Option.String('--dts', {
40
- description: 'Path and filename of generated type def file. Relative to `--output_dir`',
46
+ description: 'Path and filename of generated type def file. Relative to `--output-dir`',
41
47
  });
42
48
  dtsHeader = Option.String('--dts-header', {
43
49
  description: 'Custom file header for generated type def file. Only works when `typedef` feature enabled.',
@@ -69,8 +75,11 @@ export class BaseBuildCommand extends Command {
69
75
  useCross = Option.Boolean('--use-cross', {
70
76
  description: '[experimental] use [cross](https://github.com/cross-rs/cross) instead of `cargo`',
71
77
  });
78
+ useNapiCross = Option.Boolean('--use-napi-cross', {
79
+ description: '[experimental] use @napi-rs/cross-toolchain to cross-compile Linux arm/arm64/x64 gnu targets.',
80
+ });
72
81
  watch = Option.Boolean('--watch,-w', {
73
- description: 'watch the crate changes and build continiously with `cargo-watch` crates',
82
+ description: 'watch the crate changes and build continuously with `cargo-watch` crates',
74
83
  });
75
84
  features = Option.Array('--features,-F', {
76
85
  description: 'Space-separated list of features to activate',
@@ -86,11 +95,13 @@ export class BaseBuildCommand extends Command {
86
95
  target: this.target,
87
96
  cwd: this.cwd,
88
97
  manifestPath: this.manifestPath,
98
+ configPath: this.configPath,
89
99
  packageJsonPath: this.packageJsonPath,
90
100
  targetDir: this.targetDir,
91
101
  outputDir: this.outputDir,
92
102
  platform: this.platform,
93
103
  jsPackageName: this.jsPackageName,
104
+ constEnum: this.constEnum,
94
105
  jsBinding: this.jsBinding,
95
106
  noJsBinding: this.noJsBinding,
96
107
  dts: this.dts,
@@ -104,6 +115,7 @@ export class BaseBuildCommand extends Command {
104
115
  profile: this.profile,
105
116
  crossCompile: this.crossCompile,
106
117
  useCross: this.useCross,
118
+ useNapiCross: this.useNapiCross,
107
119
  watch: this.watch,
108
120
  features: this.features,
109
121
  allFeatures: this.allFeatures,
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/def/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/def/build.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,iCAAiC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAgB,gBAAiB,SAAQ,OAAO;IACpD,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAE1B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,2BAA2B;KACzC,CAAC,CAAA;IAEF,MAAM,GAAY,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;QAC7C,WAAW,EACT,iEAAiE;KACpE,CAAC,CAAA;IAEF,GAAG,GAAY,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACpC,WAAW,EACT,oHAAoH;KACvH,CAAC,CAAA;IAEF,YAAY,GAAY,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACvD,WAAW,EAAE,sBAAsB;KACpC,CAAC,CAAA;IAEF,UAAU,GAAY,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACtD,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAA;IAEF,eAAe,GAAY,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;QAC9D,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAA;IAEF,SAAS,GAAY,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QACjD,WAAW,EACT,6EAA6E;KAChF,CAAC,CAAA;IAEF,SAAS,GAAY,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACpD,WAAW,EACT,6EAA6E;KAChF,CAAC,CAAA;IAEF,QAAQ,GAAa,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QAChD,WAAW,EACT,2FAA2F;KAC9F,CAAC,CAAA;IAEF,aAAa,GAAY,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE;QAC1D,WAAW,EACT,8EAA8E;KACjF,CAAC,CAAA;IAEF,SAAS,GAAa,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QACnD,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAA;IAEF,SAAS,GAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACzC,WAAW,EACT,gHAAgH;KACnH,CAAC,CAAA;IAEF,WAAW,GAAa,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;QAChD,WAAW,EACT,uFAAuF;KAC1F,CAAC,CAAA;IAEF,GAAG,GAAY,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACpC,WAAW,EACT,0EAA0E;KAC7E,CAAC,CAAA;IAEF,SAAS,GAAY,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QACjD,WAAW,EACT,4FAA4F;KAC/F,CAAC,CAAA;IAEF,WAAW,GAAa,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;QACxD,WAAW,EACT,oHAAoH;KACvH,CAAC,CAAA;IAEF,KAAK,GAAa,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QAC7C,WAAW,EAAE,4DAA4D;KAC1E,CAAC,CAAA;IAEF,OAAO,GAAa,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QACjD,WAAW,EAAE,uBAAuB;KACrC,CAAC,CAAA;IAEF,OAAO,GAAa,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;QACjD,WAAW,EAAE,mCAAmC;KACjD,CAAC,CAAA;IAEF,GAAG,GAAY,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACpC,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAA;IAEF,OAAO,GAAY,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QAC/C,WAAW,EAAE,+CAA+C;KAC7D,CAAC,CAAA;IAEF,OAAO,GAAY,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;QAC5C,WAAW,EAAE,4CAA4C;KAC1D,CAAC,CAAA;IAEF,YAAY,GAAa,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE;QAC5D,WAAW,EACT,2HAA2H;KAC9H,CAAC,CAAA;IAEF,QAAQ,GAAa,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;QACjD,WAAW,EACT,kFAAkF;KACrF,CAAC,CAAA;IAEF,YAAY,GAAa,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC1D,WAAW,EACT,+FAA+F;KAClG,CAAC,CAAA;IAEF,KAAK,GAAa,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;QAC7C,WAAW,EACT,0EAA0E;KAC7E,CAAC,CAAA;IAEF,QAAQ,GAAc,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;QAClD,WAAW,EAAE,8CAA8C;KAC5D,CAAC,CAAA;IAEF,WAAW,GAAa,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE;QACvD,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CAAA;IAEF,iBAAiB,GAAa,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;QACpE,WAAW,EAAE,uCAAuC;KACrD,CAAC,CAAA;IAEF,UAAU;QACR,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAA;IACH,CAAC"}