@napi-rs/cli 3.0.0-alpha.9 → 3.0.0-alpha.91

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 (185) hide show
  1. package/cli.mjs +1 -1
  2. package/dist/api/__tests__/new.spec.d.ts +1 -0
  3. package/dist/api/build.d.ts +1 -1
  4. package/dist/api/templates/ci-template.d.ts +3 -1
  5. package/dist/api/templates/ci.yml.d.ts +3 -1
  6. package/dist/api/templates/js-binding.d.ts +1 -0
  7. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  8. package/dist/api/templates/package.json.d.ts +9 -2
  9. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  10. package/dist/cli.js +3867 -15
  11. package/dist/def/artifacts.d.ts +21 -1
  12. package/dist/def/build.d.ts +149 -4
  13. package/dist/def/create-npm-dirs.d.ts +10 -0
  14. package/dist/def/new.d.ts +25 -7
  15. package/dist/def/pre-publish.d.ts +12 -2
  16. package/dist/def/rename.d.ts +16 -6
  17. package/dist/def/universalize.d.ts +10 -0
  18. package/dist/def/version.d.ts +10 -0
  19. package/dist/index.cjs +9946 -15669
  20. package/dist/index.js +3618 -32
  21. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  22. package/dist/utils/config.d.ts +48 -4
  23. package/dist/utils/index.d.ts +1 -1
  24. package/dist/utils/metadata.d.ts +13 -1
  25. package/dist/utils/misc.d.ts +3 -3
  26. package/dist/utils/read-config.d.ts +7 -0
  27. package/dist/utils/target.d.ts +7 -5
  28. package/dist/utils/typegen.d.ts +1 -1
  29. package/dist/utils/version.d.ts +2 -1
  30. package/package.json +38 -34
  31. package/src/api/__tests__/new.spec.ts +429 -0
  32. package/src/api/artifacts.ts +81 -9
  33. package/src/api/build.ts +498 -149
  34. package/src/api/create-npm-dirs.ts +57 -9
  35. package/src/api/new.ts +389 -122
  36. package/src/api/pre-publish.ts +13 -7
  37. package/src/api/rename.ts +103 -17
  38. package/src/api/templates/cargo.toml.ts +1 -0
  39. package/src/api/templates/ci-template.ts +150 -125
  40. package/src/api/templates/ci.yml.ts +27 -6
  41. package/src/api/templates/js-binding.ts +148 -220
  42. package/src/api/templates/load-wasi-template.ts +182 -0
  43. package/src/api/templates/package.json.ts +47 -5
  44. package/src/api/templates/wasi-worker-template.ts +122 -0
  45. package/src/api/universalize.ts +13 -8
  46. package/src/api/version.ts +5 -2
  47. package/src/commands/artifacts.ts +2 -2
  48. package/src/commands/build.ts +1 -1
  49. package/src/commands/new.ts +46 -45
  50. package/src/def/artifacts.ts +22 -3
  51. package/src/def/build.ts +55 -8
  52. package/src/def/create-npm-dirs.ts +9 -0
  53. package/src/def/new.ts +28 -3
  54. package/src/def/pre-publish.ts +12 -3
  55. package/src/def/rename.ts +11 -2
  56. package/src/def/universalize.ts +9 -0
  57. package/src/def/version.ts +9 -0
  58. package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
  59. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  60. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  61. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  62. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  63. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +316 -332
  64. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  65. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  66. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  67. package/src/utils/__tests__/config.spec.ts +81 -0
  68. package/src/utils/cargo.ts +2 -2
  69. package/src/utils/config.ts +110 -9
  70. package/src/utils/index.ts +1 -1
  71. package/src/utils/log.ts +1 -1
  72. package/src/utils/metadata.ts +52 -14
  73. package/src/utils/misc.ts +21 -12
  74. package/src/utils/read-config.ts +20 -0
  75. package/src/utils/target.ts +22 -4
  76. package/src/utils/typegen.ts +87 -52
  77. package/src/utils/version.ts +10 -8
  78. package/dist/api/artifacts.js +0 -53
  79. package/dist/api/artifacts.js.map +0 -1
  80. package/dist/api/build.js +0 -498
  81. package/dist/api/build.js.map +0 -1
  82. package/dist/api/create-npm-dirs.js +0 -64
  83. package/dist/api/create-npm-dirs.js.map +0 -1
  84. package/dist/api/load-wasi-template.d.ts +0 -1
  85. package/dist/api/load-wasi-template.js +0 -64
  86. package/dist/api/load-wasi-template.js.map +0 -1
  87. package/dist/api/new.js +0 -155
  88. package/dist/api/new.js.map +0 -1
  89. package/dist/api/pre-publish.js +0 -158
  90. package/dist/api/pre-publish.js.map +0 -1
  91. package/dist/api/rename.js +0 -29
  92. package/dist/api/rename.js.map +0 -1
  93. package/dist/api/templates/.gitignore.js +0 -200
  94. package/dist/api/templates/.gitignore.js.map +0 -1
  95. package/dist/api/templates/.npmignore.js +0 -15
  96. package/dist/api/templates/.npmignore.js.map +0 -1
  97. package/dist/api/templates/build.rs.js +0 -5
  98. package/dist/api/templates/build.rs.js.map +0 -1
  99. package/dist/api/templates/cargo.toml.js +0 -26
  100. package/dist/api/templates/cargo.toml.js.map +0 -1
  101. package/dist/api/templates/ci-template.js +0 -578
  102. package/dist/api/templates/ci-template.js.map +0 -1
  103. package/dist/api/templates/ci.yml.js +0 -99
  104. package/dist/api/templates/ci.yml.js.map +0 -1
  105. package/dist/api/templates/index.js +0 -9
  106. package/dist/api/templates/index.js.map +0 -1
  107. package/dist/api/templates/js-binding.js +0 -293
  108. package/dist/api/templates/js-binding.js.map +0 -1
  109. package/dist/api/templates/lib.rs.js +0 -8
  110. package/dist/api/templates/lib.rs.js.map +0 -1
  111. package/dist/api/templates/package.json.js +0 -32
  112. package/dist/api/templates/package.json.js.map +0 -1
  113. package/dist/api/universalize.js +0 -39
  114. package/dist/api/universalize.js.map +0 -1
  115. package/dist/api/version.js +0 -17
  116. package/dist/api/version.js.map +0 -1
  117. package/dist/api/wasi-worker-template.d.ts +0 -1
  118. package/dist/api/wasi-worker-template.js +0 -53
  119. package/dist/api/wasi-worker-template.js.map +0 -1
  120. package/dist/cli.js.map +0 -1
  121. package/dist/commands/artifacts.js +0 -20
  122. package/dist/commands/artifacts.js.map +0 -1
  123. package/dist/commands/build.js +0 -35
  124. package/dist/commands/build.js.map +0 -1
  125. package/dist/commands/create-npm-dirs.js +0 -8
  126. package/dist/commands/create-npm-dirs.js.map +0 -1
  127. package/dist/commands/help.js +0 -13
  128. package/dist/commands/help.js.map +0 -1
  129. package/dist/commands/new.js +0 -110
  130. package/dist/commands/new.js.map +0 -1
  131. package/dist/commands/pre-publish.js +0 -9
  132. package/dist/commands/pre-publish.js.map +0 -1
  133. package/dist/commands/rename.js +0 -8
  134. package/dist/commands/rename.js.map +0 -1
  135. package/dist/commands/universalize.js +0 -8
  136. package/dist/commands/universalize.js.map +0 -1
  137. package/dist/commands/version.js +0 -8
  138. package/dist/commands/version.js.map +0 -1
  139. package/dist/def/artifacts.js +0 -39
  140. package/dist/def/artifacts.js.map +0 -1
  141. package/dist/def/build.js +0 -118
  142. package/dist/def/build.js.map +0 -1
  143. package/dist/def/create-npm-dirs.js +0 -39
  144. package/dist/def/create-npm-dirs.js.map +0 -1
  145. package/dist/def/new.js +0 -67
  146. package/dist/def/new.js.map +0 -1
  147. package/dist/def/pre-publish.js +0 -57
  148. package/dist/def/pre-publish.js.map +0 -1
  149. package/dist/def/rename.js +0 -59
  150. package/dist/def/rename.js.map +0 -1
  151. package/dist/def/universalize.js +0 -34
  152. package/dist/def/universalize.js.map +0 -1
  153. package/dist/def/version.js +0 -34
  154. package/dist/def/version.js.map +0 -1
  155. package/dist/index.js.map +0 -1
  156. package/dist/utils/__tests__/target.spec.js +0 -11
  157. package/dist/utils/__tests__/target.spec.js.map +0 -1
  158. package/dist/utils/__tests__/typegen.spec.js +0 -42
  159. package/dist/utils/__tests__/typegen.spec.js.map +0 -1
  160. package/dist/utils/__tests__/version.spec.js +0 -6
  161. package/dist/utils/__tests__/version.spec.js.map +0 -1
  162. package/dist/utils/cargo.js +0 -34
  163. package/dist/utils/cargo.js.map +0 -1
  164. package/dist/utils/ci.d.ts +0 -11
  165. package/dist/utils/ci.js +0 -96
  166. package/dist/utils/ci.js.map +0 -1
  167. package/dist/utils/config.js +0 -43
  168. package/dist/utils/config.js.map +0 -1
  169. package/dist/utils/index.js +0 -10
  170. package/dist/utils/index.js.map +0 -1
  171. package/dist/utils/log.js +0 -15
  172. package/dist/utils/log.js.map +0 -1
  173. package/dist/utils/metadata.js +0 -20
  174. package/dist/utils/metadata.js.map +0 -1
  175. package/dist/utils/misc.js +0 -41
  176. package/dist/utils/misc.js.map +0 -1
  177. package/dist/utils/target.js +0 -121
  178. package/dist/utils/target.js.map +0 -1
  179. package/dist/utils/typegen.js +0 -179
  180. package/dist/utils/typegen.js.map +0 -1
  181. package/dist/utils/version.js +0 -60
  182. package/dist/utils/version.js.map +0 -1
  183. package/src/api/load-wasi-template.ts +0 -66
  184. package/src/api/wasi-worker-template.ts +0 -52
  185. package/src/utils/ci.ts +0 -111
package/dist/api/build.js DELETED
@@ -1,498 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { createHash } from 'node:crypto';
3
- import { createRequire } from 'node:module';
4
- import { tmpdir } from 'node:os';
5
- import { parse, join, resolve } from 'node:path';
6
- import * as colors from 'colorette';
7
- import { CLI_VERSION, copyFileAsync, debugFactory, DEFAULT_TYPE_DEF_HEADER, fileExists, getSystemDefaultTarget, getTargetLinker, mkdirAsync, parseMetadata, parseTriple, processTypeDef, readFileAsync, readNapiConfig, targetToEnvVar, tryInstallCargoBinary, unlinkAsync, writeFileAsync, } from '../utils/index.js';
8
- import { createWasiBinding } from './load-wasi-template.js';
9
- import { createCjsBinding } from './templates/index.js';
10
- import { WASI_WORKER_TEMPLATE } from './wasi-worker-template.js';
11
- const debug = debugFactory('build');
12
- const require = createRequire(import.meta.url);
13
- export async function buildProject(options) {
14
- debug('napi build command receive options: %O', options);
15
- const cwd = options.cwd ?? process.cwd();
16
- const resolvePath = (...paths) => resolve(cwd, ...paths);
17
- const manifestPath = resolvePath(options.manifestPath ?? 'Cargo.toml');
18
- const metadata = parseMetadata(manifestPath);
19
- const pkg = metadata.packages.find((p) => {
20
- // package with given name
21
- if (options.package) {
22
- return p.name === options.package;
23
- }
24
- else {
25
- return p.manifest_path === manifestPath;
26
- }
27
- });
28
- if (!pkg) {
29
- throw new Error('Unable to find crate to build. It seems you are trying to build a crate in a workspace, try using `--package` option to specify the package to build.');
30
- }
31
- const crateDir = parse(pkg.manifest_path).dir;
32
- const builder = new Builder(options, pkg, cwd, options.target
33
- ? parseTriple(options.target)
34
- : process.env.CARGO_BUILD_TARGET
35
- ? parseTriple(process.env.CARGO_BUILD_TARGET)
36
- : getSystemDefaultTarget(), crateDir, resolvePath(options.outputDir ?? crateDir), options.targetDir ??
37
- process.env.CARGO_BUILD_TARGET_DIR ??
38
- metadata.target_directory, await readNapiConfig(resolvePath(options.packageJsonPath ?? 'package.json')));
39
- return builder.build();
40
- }
41
- class Builder {
42
- options;
43
- crate;
44
- cwd;
45
- target;
46
- crateDir;
47
- outputDir;
48
- targetDir;
49
- config;
50
- args = [];
51
- envs = {};
52
- outputs = [];
53
- constructor(options, crate, cwd, target, crateDir, outputDir, targetDir, config) {
54
- this.options = options;
55
- this.crate = crate;
56
- this.cwd = cwd;
57
- this.target = target;
58
- this.crateDir = crateDir;
59
- this.outputDir = outputDir;
60
- this.targetDir = targetDir;
61
- this.config = config;
62
- }
63
- get cdyLibName() {
64
- return this.crate.targets.find((t) => t.crate_types.includes('cdylib'))
65
- ?.name;
66
- }
67
- get binName() {
68
- return (this.options.bin ??
69
- // only available if not cdylib or bin name specified
70
- (this.cdyLibName
71
- ? null
72
- : this.crate.targets.find((t) => t.crate_types.includes('bin'))?.name));
73
- }
74
- build() {
75
- if (!this.cdyLibName) {
76
- const warning = 'Missing `crate-type = ["cdylib"]` in [lib] config. The build result will not be available as node addon.';
77
- if (this.binName) {
78
- debug.warn(warning);
79
- }
80
- else {
81
- throw new Error(warning);
82
- }
83
- }
84
- return this.pickBinary()
85
- .setPackage()
86
- .setFeatures()
87
- .setTarget()
88
- .setEnvs()
89
- .setBypassArgs()
90
- .exec();
91
- }
92
- exec() {
93
- debug(`Start building crate: ${this.crate.name}`);
94
- debug(' %i', `cargo ${this.args.join(' ')}`);
95
- const controller = new AbortController();
96
- const watch = this.options.watch;
97
- const buildTask = new Promise((resolve, reject) => {
98
- const command = process.env.CARGO ?? (this.options.useCross ? 'cross' : 'cargo');
99
- const buildProcess = spawn(command, this.args, {
100
- env: {
101
- ...process.env,
102
- ...this.envs,
103
- },
104
- stdio: watch ? ['inherit', 'inherit', 'pipe'] : 'inherit',
105
- cwd: this.cwd,
106
- signal: controller.signal,
107
- });
108
- buildProcess.once('exit', (code) => {
109
- if (code === 0) {
110
- debug('%i', `Build crate ${this.crate.name} successfully!`);
111
- resolve();
112
- }
113
- else {
114
- reject(new Error(`Build failed with exit code ${code}`));
115
- }
116
- });
117
- buildProcess.once('error', (e) => {
118
- reject(new Error(`Build failed with error: ${e.message}`, {
119
- cause: e,
120
- }));
121
- });
122
- // watch mode only, they are piped through stderr
123
- buildProcess.stderr?.on('data', (data) => {
124
- const output = data.toString();
125
- console.error(output);
126
- if (/Finished\s(dev|release)/.test(output)) {
127
- this.postBuild().catch(() => { });
128
- }
129
- });
130
- });
131
- return {
132
- task: buildTask.then(() => this.postBuild()),
133
- abort: () => controller.abort(),
134
- };
135
- }
136
- pickBinary() {
137
- let set = false;
138
- if (this.options.watch) {
139
- if (process.env.CI) {
140
- debug.warn('Watch mode is not supported in CI environment');
141
- }
142
- else {
143
- debug('Use %i', 'cargo-watch');
144
- tryInstallCargoBinary('cargo-watch', 'watch');
145
- // yarn napi watch --target x86_64-unknown-linux-gnu [--cross-compile]
146
- // ===>
147
- // cargo watch [...] -- build --target x86_64-unknown-linux-gnu
148
- // cargo watch [...] -- zigbuild --target x86_64-unknown-linux-gnu
149
- this.args.push('watch', '--why', '-i', '*.{js,ts,node}', '-w', this.crateDir, '--', 'cargo', 'build');
150
- set = true;
151
- }
152
- }
153
- if (this.options.crossCompile) {
154
- if (this.target.platform === 'win32') {
155
- if (process.platform === 'win32') {
156
- debug.warn('You are trying to cross compile to win32 platform on win32 platform which is unnecessary.');
157
- }
158
- else {
159
- // use cargo-xwin to cross compile to win32 platform
160
- debug('Use %i', 'cargo-xwin');
161
- tryInstallCargoBinary('cargo-xwin', 'xwin');
162
- this.args.push('xwin', 'build');
163
- if (this.target.arch === 'ia32') {
164
- this.envs.XWIN_ARCH = 'x86';
165
- }
166
- set = true;
167
- }
168
- }
169
- else {
170
- if (this.target.platform === 'linux' &&
171
- process.platform === 'linux' &&
172
- this.target.arch === process.arch &&
173
- (function (abi) {
174
- const glibcVersionRuntime =
175
- // @ts-expect-error
176
- process.report?.getReport()?.header?.glibcVersionRuntime;
177
- const libc = glibcVersionRuntime ? 'gnu' : 'musl';
178
- return abi === libc;
179
- })(this.target.abi)) {
180
- debug.warn('You are trying to cross compile to linux target on linux platform which is unnecessary.');
181
- }
182
- else if (this.target.platform === 'darwin' &&
183
- process.platform === 'darwin') {
184
- debug.warn('You are trying to cross compile to darwin target on darwin platform which is unnecessary.');
185
- }
186
- else {
187
- // use cargo-zigbuild to cross compile to other platforms
188
- debug('Use %i', 'cargo-zigbuild');
189
- tryInstallCargoBinary('cargo-zigbuild', 'zigbuild');
190
- this.args.push('zigbuild');
191
- set = true;
192
- }
193
- }
194
- }
195
- if (!set) {
196
- this.args.push('build');
197
- }
198
- return this;
199
- }
200
- setPackage() {
201
- const args = [];
202
- if (this.options.package) {
203
- args.push('--package', this.options.package);
204
- }
205
- if (this.binName) {
206
- args.push('--bin', this.binName);
207
- }
208
- if (args.length) {
209
- debug('Set package flags: ');
210
- debug(' %O', args);
211
- this.args.push(...args);
212
- }
213
- return this;
214
- }
215
- setTarget() {
216
- debug('Set compiling target to: ');
217
- debug(' %i', this.target.triple);
218
- this.args.push('--target', this.target.triple);
219
- return this;
220
- }
221
- setEnvs() {
222
- // type definition intermediate file
223
- this.envs.TYPE_DEF_TMP_PATH = this.getIntermediateTypeFile();
224
- // WASI register intermediate file
225
- this.envs.WASI_REGISTER_TMP_PATH = this.getIntermediateWasiRegisterFile();
226
- // TODO:
227
- // remove after napi-derive@v3 release
228
- this.envs.CARGO_CFG_NAPI_RS_CLI_VERSION = CLI_VERSION;
229
- // RUSTFLAGS
230
- let rustflags = process.env.RUSTFLAGS ?? process.env.CARGO_BUILD_RUSTFLAGS ?? '';
231
- if (this.target.abi?.includes('musl') &&
232
- !rustflags.includes('target-feature=-crt-static')) {
233
- rustflags += ' -C target-feature=-crt-static';
234
- }
235
- if (this.options.strip && !rustflags.includes('link-arg=-s')) {
236
- rustflags += ' -C link-arg=-s';
237
- }
238
- if (rustflags.length) {
239
- this.envs.RUSTFLAGS = rustflags;
240
- }
241
- // END RUSTFLAGS
242
- // LINKER
243
- const linker = this.options.crossCompile
244
- ? void 0
245
- : getTargetLinker(this.target.triple);
246
- // TODO:
247
- // directly set CARGO_TARGET_<target>_LINKER will cover .cargo/config.toml
248
- // will detect by cargo config when it becomes stable
249
- // see: https://github.com/rust-lang/cargo/issues/9301
250
- const linkerEnv = `CARGO_TARGET_${targetToEnvVar(this.target.triple)}_LINKER`;
251
- if (linker && !process.env[linkerEnv]) {
252
- this.envs[linkerEnv] = linker;
253
- }
254
- if (this.target.platform === 'android') {
255
- const { ANDROID_NDK_LATEST_HOME } = process.env;
256
- if (!ANDROID_NDK_LATEST_HOME) {
257
- debug.warn(`${colors.red('ANDROID_NDK_LATEST_HOME')} environment variable is missing`);
258
- }
259
- const targetArch = this.target.arch === 'arm' ? 'armv7a' : 'aarch64';
260
- const targetPlatform = this.target.arch === 'arm' ? 'androideabi24' : 'android24';
261
- const hostPlatform = process.platform === 'darwin'
262
- ? 'darwin'
263
- : process.platform === 'win32'
264
- ? 'windows'
265
- : 'linux';
266
- Object.assign(this.envs, {
267
- CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-android24-clang`,
268
- CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-androideabi24-clang`,
269
- CC: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-${targetPlatform}-clang`,
270
- CXX: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-${targetPlatform}-clang++`,
271
- AR: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/llvm-ar`,
272
- RANLIB: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/llvm-ranlib`,
273
- ANDROID_NDK: ANDROID_NDK_LATEST_HOME,
274
- PATH: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin:${process.env.PATH}`,
275
- });
276
- }
277
- // END LINKER
278
- if (this.target.platform === 'wasi') {
279
- const emnapi = join(require.resolve('emnapi'), '..', 'lib', 'wasm32-wasi-threads');
280
- this.envs.EMNAPI_LINK_DIR = emnapi;
281
- }
282
- debug('Set envs: ');
283
- Object.entries(this.envs).forEach(([k, v]) => {
284
- debug(' %i', `${k}=${v}`);
285
- });
286
- return this;
287
- }
288
- setFeatures() {
289
- const args = [];
290
- if (this.options.allFeatures) {
291
- args.push('--all-features');
292
- }
293
- else if (this.options.noDefaultFeatures) {
294
- args.push('--no-default-features');
295
- }
296
- else if (this.options.features) {
297
- args.push('--features', ...this.options.features);
298
- }
299
- debug('Set features flags: ');
300
- debug(' %O', args);
301
- this.args.push(...args);
302
- return this;
303
- }
304
- setBypassArgs() {
305
- if (this.options.release) {
306
- this.args.push('--release');
307
- }
308
- if (this.options.verbose) {
309
- this.args.push('--verbose');
310
- }
311
- if (this.options.targetDir) {
312
- this.args.push('--target-dir', this.options.targetDir);
313
- }
314
- if (this.options.profile) {
315
- this.args.push('--profile', this.options.profile);
316
- }
317
- if (this.options.cargoOptions?.length) {
318
- this.args.push(...this.options.cargoOptions);
319
- }
320
- return this;
321
- }
322
- getIntermediateTypeFile() {
323
- return join(tmpdir(), `${this.crate.name}-${createHash('sha256')
324
- .update(this.crate.manifest_path)
325
- .update(CLI_VERSION)
326
- .digest('hex')
327
- .substring(0, 8)}.napi_type_def.tmp`);
328
- }
329
- getIntermediateWasiRegisterFile() {
330
- return join(tmpdir(), `${this.crate.name}-${createHash('sha256')
331
- .update(this.crate.manifest_path)
332
- .update(CLI_VERSION)
333
- .digest('hex')
334
- .substring(0, 8)}.napi_wasi_register.tmp`);
335
- }
336
- async postBuild() {
337
- try {
338
- debug(`Try to create output directory:`);
339
- debug(' %i', this.outputDir);
340
- await mkdirAsync(this.outputDir, { recursive: true });
341
- debug(`Output directory created`);
342
- }
343
- catch (e) {
344
- throw new Error(`Failed to create output directory ${this.outputDir}`, {
345
- cause: e,
346
- });
347
- }
348
- const dest = await this.copyArtifact();
349
- // only for cdylib
350
- if (this.cdyLibName) {
351
- const idents = await this.generateTypeDef();
352
- const intermediateWasiRegisterFile = this.envs.WASI_REGISTER_TMP_PATH;
353
- const wasiRegisterFunctions = this.target.arch === 'wasm32'
354
- ? JSON.parse(await readFileAsync(intermediateWasiRegisterFile, 'utf8').catch((err) => {
355
- console.warn(`Read ${colors.yellowBright(intermediateWasiRegisterFile)} failed, reason: ${err.message}`);
356
- return `[]`;
357
- }))
358
- : [];
359
- const jsOutput = await this.writeJsBinding(idents);
360
- const wasmOutput = await this.writeWasiBinding(wasiRegisterFunctions, dest ?? 'index.wasm', idents);
361
- if (jsOutput) {
362
- this.outputs.push(jsOutput);
363
- }
364
- if (wasmOutput) {
365
- this.outputs.push(wasmOutput);
366
- }
367
- }
368
- return this.outputs;
369
- }
370
- async copyArtifact() {
371
- const [srcName, destName] = this.getArtifactNames();
372
- if (!srcName || !destName) {
373
- return;
374
- }
375
- const profile = this.options.profile ?? (this.options.release ? 'release' : 'debug');
376
- const src = join(this.targetDir, this.target.triple, profile, srcName);
377
- debug(`Copy artifact from: [${src}]`);
378
- const dest = join(this.outputDir, destName);
379
- try {
380
- if (await fileExists(dest)) {
381
- debug('Old artifact found, remove it first');
382
- await unlinkAsync(dest);
383
- }
384
- debug('Copy artifact to:');
385
- debug(' %i', dest);
386
- await copyFileAsync(src, dest);
387
- this.outputs.push({
388
- kind: dest.endsWith('.node') ? 'node' : 'exe',
389
- path: dest,
390
- });
391
- return dest;
392
- }
393
- catch (e) {
394
- throw new Error('Failed to copy artifact', {
395
- cause: e,
396
- });
397
- }
398
- }
399
- getArtifactNames() {
400
- if (this.cdyLibName) {
401
- const cdyLib = this.cdyLibName.replace(/-/g, '_');
402
- const srcName = this.target.platform === 'darwin'
403
- ? `lib${cdyLib}.dylib`
404
- : this.target.platform === 'win32'
405
- ? `${cdyLib}.dll`
406
- : this.target.platform === 'wasi' || this.target.platform === 'wasm'
407
- ? `${cdyLib}.wasm`
408
- : `lib${cdyLib}.so`;
409
- let destName = this.config.binaryName;
410
- // add platform suffix to binary name
411
- // index[.linux-x64-gnu].node
412
- // ^^^^^^^^^^^^^^
413
- if (this.options.platform) {
414
- destName += `.${this.target.platformArchABI}`;
415
- }
416
- if (srcName.endsWith('.wasm')) {
417
- destName += '.wasi-wasm32.wasm';
418
- }
419
- else {
420
- destName += '.node';
421
- }
422
- return [srcName, destName];
423
- }
424
- else if (this.binName) {
425
- const srcName = this.target.platform === 'win32' ? `${this.binName}.exe` : this.binName;
426
- return [srcName, srcName];
427
- }
428
- return [];
429
- }
430
- async generateTypeDef() {
431
- if (!(await fileExists(this.envs.TYPE_DEF_TMP_PATH))) {
432
- return [];
433
- }
434
- const dest = join(this.outputDir, this.options.dts ?? 'index.d.ts');
435
- const { dts, exports } = await processTypeDef(this.envs.TYPE_DEF_TMP_PATH, this.options.constEnum ?? true, !this.options.noDtsHeader
436
- ? this.options.dtsHeader ?? DEFAULT_TYPE_DEF_HEADER
437
- : '');
438
- try {
439
- debug('Writing type def to:');
440
- debug(' %i', dest);
441
- await writeFileAsync(dest, dts, 'utf-8');
442
- this.outputs.push({
443
- kind: 'dts',
444
- path: dest,
445
- });
446
- }
447
- catch (e) {
448
- debug.error('Failed to write type def file');
449
- debug.error(e);
450
- }
451
- return exports;
452
- }
453
- async writeJsBinding(idents) {
454
- if (!this.options.platform ||
455
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
456
- this.options.noJsBinding ||
457
- idents.length === 0) {
458
- return;
459
- }
460
- const name = parse(this.options.jsBinding ?? 'index.js').name;
461
- const cjs = createCjsBinding(this.config.binaryName, this.config.packageName, idents);
462
- try {
463
- const dest = join(this.outputDir, `${name}.js`);
464
- debug('Writing js binding to:');
465
- debug(' %i', dest);
466
- await writeFileAsync(dest, cjs, 'utf-8');
467
- return {
468
- kind: 'js',
469
- path: dest,
470
- };
471
- }
472
- catch (e) {
473
- throw new Error('Failed to write js binding file', { cause: e });
474
- }
475
- }
476
- async writeWasiBinding(wasiRegisterFunctions, distFileName, idents) {
477
- if (distFileName && wasiRegisterFunctions.length) {
478
- const { name, dir } = parse(distFileName);
479
- const newPath = join(dir, `${this.config.binaryName}.wasi.mjs`);
480
- const workerPath = join(dir, 'wasi-worker.mjs');
481
- const declareCodes = `const { ${idents.join(', ')} } = binding\n`;
482
- const exportsCode = `export {\n${idents
483
- .map((ident) => ` ${ident}`)
484
- .join(',\n')}\n}`;
485
- await writeFileAsync(newPath, createWasiBinding(name, wasiRegisterFunctions) +
486
- declareCodes +
487
- exportsCode +
488
- '\n', 'utf8');
489
- await writeFileAsync(workerPath, WASI_WORKER_TEMPLATE, 'utf8');
490
- return {
491
- kind: 'wasm',
492
- path: newPath,
493
- };
494
- }
495
- return null;
496
- }
497
- }
498
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/api/build.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- import { join, resolve } from 'path';
2
- import { applyDefaultCreateNpmDirsOptions, } from '../def/create-npm-dirs.js';
3
- import { debugFactory, readNapiConfig, mkdirAsync as rawMkdirAsync, pick, writeFileAsync as rawWriteFileAsync, } from '../utils/index.js';
4
- const debug = debugFactory('create-npm-dirs');
5
- export async function createNpmDirs(userOptions) {
6
- const options = applyDefaultCreateNpmDirsOptions(userOptions);
7
- async function mkdirAsync(dir) {
8
- debug('Try to create dir: %i', dir);
9
- if (options.dryRun) {
10
- return;
11
- }
12
- await rawMkdirAsync(dir, {
13
- recursive: true,
14
- });
15
- }
16
- async function writeFileAsync(file, content) {
17
- debug('Writing file %i', file);
18
- if (options.dryRun) {
19
- debug(content);
20
- return;
21
- }
22
- await rawWriteFileAsync(file, content);
23
- }
24
- const packageJsonPath = resolve(options.cwd, options.packageJsonPath);
25
- const npmPath = resolve(options.cwd, options.npmDir);
26
- debug(`Read content from [${packageJsonPath}]`);
27
- const { targets, binaryName, packageName, packageJson } = await readNapiConfig(packageJsonPath);
28
- for (const target of targets) {
29
- const targetDir = join(npmPath, `${target.platformArchABI}`);
30
- await mkdirAsync(targetDir);
31
- const binaryFileName = `${binaryName}.${target.platformArchABI}.node`;
32
- const scopedPackageJson = {
33
- name: `${packageName}-${target.platformArchABI}`,
34
- version: packageJson.version,
35
- os: [target.platform],
36
- cpu: target.arch !== 'universal' ? [target.arch] : undefined,
37
- main: binaryFileName,
38
- files: [binaryFileName],
39
- ...pick(packageJson, 'description', 'keywords', 'author', 'authors', 'homepage', 'license', 'engines', 'publishConfig', 'repository', 'bugs'),
40
- };
41
- // Only works with yarn 3.1+
42
- // https://github.com/yarnpkg/berry/pull/3981
43
- if (target.abi === 'gnu') {
44
- // @ts-expect-error
45
- scopedPackageJson.libc = ['glibc'];
46
- }
47
- else if (target.abi === 'musl') {
48
- // @ts-expect-error
49
- scopedPackageJson.libc = ['musl'];
50
- }
51
- const targetPackageJson = join(targetDir, 'package.json');
52
- await writeFileAsync(targetPackageJson, JSON.stringify(scopedPackageJson, null, 2));
53
- const targetReadme = join(targetDir, 'README.md');
54
- await writeFileAsync(targetReadme, readme(packageName, target));
55
- debug.info(`${packageName}-${target.platformArchABI} created`);
56
- }
57
- }
58
- function readme(packageName, target) {
59
- return `# \`${packageName}-${target.platformArchABI}\`
60
-
61
- This is the **${target.triple}** binary for \`${packageName}\`
62
- `;
63
- }
64
- //# sourceMappingURL=create-npm-dirs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-npm-dirs.js","sourceRoot":"","sources":["../../src/api/create-npm-dirs.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const createWasiBinding: (wasmFileName: string, wasiRegisterFunctions: string[]) => string;
@@ -1,64 +0,0 @@
1
- export const createWasiBinding = (wasmFileName, wasiRegisterFunctions) => `/* eslint-disable */
2
- /* prettier-ignore */
3
-
4
- /* auto-generated by NAPI-RS */
5
-
6
- import * as __nodeFsPromises from 'node:fs/promises'
7
- import * as __nodePath from 'node:path'
8
- import { WASI as __nodeWASI } from 'node:wasi'
9
- import { Worker } from 'node:worker_threads'
10
- import * as __nodeURL from 'node:url'
11
-
12
- import { instantiateNapiModule as __emnapiInstantiateNapiModule } from '@emnapi/core'
13
- import { getDefaultContext as __emnapiGetDefaultContext } from '@emnapi/runtime'
14
-
15
- const __wasi = new __nodeWASI({
16
- version: 'preview1',
17
- env: process.env,
18
- preopens: {
19
- '/': __nodePath.join(__nodeURL.fileURLToPath(import.meta.url), '..'),
20
- }
21
- })
22
-
23
- const __dirname = __nodePath.join(__nodeURL.fileURLToPath(import.meta.url), '..')
24
-
25
- const __emnapiContext = __emnapiGetDefaultContext()
26
-
27
- const __sharedMemory = new WebAssembly.Memory({
28
- initial: 1024,
29
- maximum: 10240,
30
- shared: true,
31
- })
32
-
33
- const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
34
- context: __emnapiContext,
35
- asyncWorkPoolSize: 4,
36
- wasi: __wasi,
37
- onCreateWorker() {
38
- return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
39
- env: process.env,
40
- execArgv: ['--experimental-wasi-unstable-preview1'],
41
- })
42
- },
43
- overwriteImports(importObject) {
44
- importObject.env = {
45
- ...importObject.env,
46
- ...importObject.napi,
47
- ...importObject.emnapi,
48
- memory: __sharedMemory,
49
- }
50
- },
51
- beforeInit({ instance }) {
52
- __napi_rs_initialize_modules(instance)
53
- }
54
- })
55
-
56
- function __napi_rs_initialize_modules(__napiInstance) {
57
- ${wasiRegisterFunctions
58
- .map((name) => ` __napiInstance.exports['${name}']()`)
59
- .join('\n')}
60
- }
61
-
62
- const binding = __napiModule.exports
63
- `;
64
- //# sourceMappingURL=load-wasi-template.js.map