@napi-rs/cli 3.0.0-alpha.44 → 3.0.0-alpha.46

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 (40) hide show
  1. package/dist/api/new.js +11 -0
  2. package/dist/api/new.js.map +1 -1
  3. package/dist/api/templates/ci-template.d.ts +2 -1
  4. package/dist/api/templates/ci-template.js +22 -5
  5. package/dist/api/templates/ci-template.js.map +1 -1
  6. package/dist/api/templates/ci.yml.d.ts +2 -1
  7. package/dist/api/templates/ci.yml.js +5 -3
  8. package/dist/api/templates/ci.yml.js.map +1 -1
  9. package/dist/api/templates/js-binding.js +7 -1
  10. package/dist/api/templates/js-binding.js.map +1 -1
  11. package/dist/api/templates/wasi-worker-template.d.ts +1 -1
  12. package/dist/api/templates/wasi-worker-template.js +13 -3
  13. package/dist/api/templates/wasi-worker-template.js.map +1 -1
  14. package/dist/commands/new.js +3 -3
  15. package/dist/commands/new.js.map +1 -1
  16. package/dist/index.cjs +76 -27
  17. package/dist/utils/index.d.ts +0 -1
  18. package/dist/utils/index.js +0 -1
  19. package/dist/utils/index.js.map +1 -1
  20. package/dist/utils/target.d.ts +1 -1
  21. package/dist/utils/target.js +9 -1
  22. package/dist/utils/target.js.map +1 -1
  23. package/package.json +5 -4
  24. package/src/api/new.ts +15 -0
  25. package/src/api/templates/ci-template.ts +30 -5
  26. package/src/api/templates/ci.yml.ts +7 -3
  27. package/src/api/templates/js-binding.ts +7 -1
  28. package/src/api/templates/wasi-worker-template.ts +13 -3
  29. package/src/commands/new.ts +3 -3
  30. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  31. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +21 -0
  32. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  33. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  34. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  35. package/src/utils/index.ts +0 -1
  36. package/src/utils/target.ts +11 -1
  37. package/dist/utils/ci.d.ts +0 -11
  38. package/dist/utils/ci.js +0 -96
  39. package/dist/utils/ci.js.map +0 -1
  40. package/src/utils/ci.ts +0 -111
@@ -1,11 +1,12 @@
1
1
  export const WASI_WORKER_TEMPLATE = `import fs from "node:fs";
2
2
  import { createRequire } from "node:module";
3
+ import { WASI } from "node:wasi";
3
4
  import { parentPort, Worker } from "node:worker_threads";
4
5
 
5
- import { instantiateNapiModuleSync, MessageHandler, WASI } from "@napi-rs/wasm-runtime";
6
-
7
6
  const require = createRequire(import.meta.url);
8
7
 
8
+ const { instantiateNapiModuleSync, MessageHandler, getDefaultContext } = require("@napi-rs/wasm-runtime");
9
+
9
10
  if (parentPort) {
10
11
  parentPort.on("message", (data) => {
11
12
  globalThis.onmessage({ data });
@@ -26,13 +27,22 @@ Object.assign(globalThis, {
26
27
  },
27
28
  });
28
29
 
30
+ const emnapiContext = getDefaultContext()
31
+
29
32
  const handler = new MessageHandler({
30
33
  onLoad({ wasmModule, wasmMemory }) {
31
- const wasi = new WASI({ fs });
34
+ const wasi = new WASI({
35
+ version: 'preview1',
36
+ env: process.env,
37
+ preopens: {
38
+ '/': '/',
39
+ },
40
+ });
32
41
 
33
42
  return instantiateNapiModuleSync(wasmModule, {
34
43
  childThread: true,
35
44
  wasi,
45
+ context: emnapiContext,
36
46
  overwriteImports(importObject) {
37
47
  importObject.env = {
38
48
  ...importObject.env,
@@ -64,14 +64,14 @@ export class NewCommand extends BaseNewCommand {
64
64
  private async fetchName(defaultName: string): Promise<string> {
65
65
  return (
66
66
  this.$$name ??
67
- (await inquirer
67
+ inquirer
68
68
  .prompt({
69
69
  type: 'input',
70
70
  name: 'name',
71
71
  message: 'Package name (the name field in your package.json file)',
72
72
  default: defaultName,
73
73
  })
74
- .then(({ name }) => name))
74
+ .then(({ name }) => name)
75
75
  )
76
76
  }
77
77
 
@@ -93,7 +93,7 @@ export class NewCommand extends BaseNewCommand {
93
93
  name: 'minNodeApiVersion',
94
94
  message: 'Minimum node-api version (with node version requirement)',
95
95
  loop: false,
96
- choices: new Array(8).fill(0).map((_, i) => ({
96
+ choices: Array.from({ length: 8 }, (_, i) => ({
97
97
  name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
98
98
  value: i + 1,
99
99
  })),
@@ -93,6 +93,13 @@ Generated by [AVA](https://avajs.dev).
93
93
  platformArchABI: 'linux-arm-gnueabihf',
94
94
  triple: 'armv7-unknown-linux-gnueabihf',
95
95
  },
96
+ {
97
+ abi: 'musleabihf',
98
+ arch: 'arm',
99
+ platform: 'linux',
100
+ platformArchABI: 'linux-arm-musleabihf',
101
+ triple: 'armv7-unknown-linux-musleabihf',
102
+ },
96
103
  {
97
104
  abi: 'eabi',
98
105
  arch: 'arm',
@@ -114,6 +121,20 @@ Generated by [AVA](https://avajs.dev).
114
121
  platformArchABI: 'linux-riscv64-gnu',
115
122
  triple: 'riscv64gc-unknown-linux-gnu',
116
123
  },
124
+ {
125
+ abi: 'gnu',
126
+ arch: 'ppc64',
127
+ platform: 'linux',
128
+ platformArchABI: 'linux-ppc64-gnu',
129
+ triple: 'powerpc64le-unknown-linux-gnu',
130
+ },
131
+ {
132
+ abi: 'gnu',
133
+ arch: 's390x',
134
+ platform: 'linux',
135
+ platformArchABI: 'linux-s390x-gnu',
136
+ triple: 's390x-unknown-linux-gnu',
137
+ },
117
138
  {
118
139
  abi: 'wasi',
119
140
  arch: 'wasm32',
@@ -1,4 +1,3 @@
1
- export * from './ci.js'
2
1
  export * from './log.js'
3
2
  export * from './misc.js'
4
3
  export * from './target.js'
@@ -19,9 +19,12 @@ export const AVAILABLE_TARGETS = [
19
19
  'x86_64-unknown-freebsd',
20
20
  'i686-pc-windows-msvc',
21
21
  'armv7-unknown-linux-gnueabihf',
22
+ 'armv7-unknown-linux-musleabihf',
22
23
  'armv7-linux-androideabi',
23
24
  'universal-apple-darwin',
24
25
  'riscv64gc-unknown-linux-gnu',
26
+ 'powerpc64le-unknown-linux-gnu',
27
+ 's390x-unknown-linux-gnu',
25
28
  'wasm32-wasi-preview1-threads',
26
29
  ] as const
27
30
 
@@ -37,6 +40,8 @@ export const DEFAULT_TARGETS = [
37
40
  export const TARGET_LINKER: Record<string, string> = {
38
41
  'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
39
42
  'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
43
+ 'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
44
+ 's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
40
45
  }
41
46
 
42
47
  // https://nodejs.org/api/process.html#process_process_arch
@@ -62,6 +67,7 @@ const CpuToNodeArch: Record<string, NodeJSArch> = {
62
67
  i686: 'ia32',
63
68
  armv7: 'arm',
64
69
  riscv64gc: 'riscv64',
70
+ powerpc64le: 'ppc64',
65
71
  }
66
72
 
67
73
  export const NodeArchToCpu: Record<string, string> = {
@@ -70,6 +76,7 @@ export const NodeArchToCpu: Record<string, string> = {
70
76
  ia32: 'i686',
71
77
  arm: 'armv7',
72
78
  riscv64: 'riscv64gc',
79
+ ppc64: 'powerpc64le',
73
80
  }
74
81
 
75
82
  const SysToNodePlatform: Record<string, Platform> = {
@@ -102,7 +109,10 @@ export interface Target {
102
109
  * - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
103
110
  */
104
111
  export function parseTriple(rawTriple: string): Target {
105
- if (rawTriple === 'wasm32-wasi-preview1-threads') {
112
+ if (
113
+ rawTriple === 'wasm32-wasi-preview1-threads' ||
114
+ rawTriple.startsWith('wasm32-wasip')
115
+ ) {
106
116
  return {
107
117
  triple: rawTriple,
108
118
  platformArchABI: 'wasm32-wasi',
@@ -1,11 +0,0 @@
1
- import { TargetTriple } from './target.js';
2
- export declare const CIConfig: Partial<Record<TargetTriple, {
3
- host: string;
4
- build_image?: string;
5
- build_setup?: string[];
6
- test?: boolean;
7
- test_image?: string;
8
- test_setup?: string[];
9
- yarn_cpu?: string;
10
- yarn_libc?: string;
11
- }>>;
package/dist/utils/ci.js DELETED
@@ -1,96 +0,0 @@
1
- export const CIConfig = {
2
- 'x86_64-apple-darwin': {
3
- host: 'macos-latest',
4
- },
5
- 'x86_64-pc-windows-msvc': {
6
- host: 'windows-latest',
7
- },
8
- 'i686-pc-windows-msvc': {
9
- host: 'windows-latest',
10
- test: false,
11
- },
12
- 'x86_64-unknown-linux-gnu': {
13
- host: 'ubuntu-latest',
14
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
15
- },
16
- 'x86_64-unknown-linux-musl': {
17
- host: 'ubuntu-latest',
18
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
19
- test_image: 'node:${{ matrix.node }}-alpine',
20
- yarn_libc: 'musl',
21
- },
22
- 'aarch64-apple-darwin': {
23
- host: 'macos-latest',
24
- build_setup: [
25
- 'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
26
- 'export CC=$(xcrun -f clang)',
27
- 'export CXX=$(xcrun -f clang++)',
28
- 'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
29
- 'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
30
- ],
31
- test: false,
32
- },
33
- 'aarch64-unknown-linux-gnu': {
34
- host: 'ubuntu-latest',
35
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
36
- build_setup: [
37
- 'sudo apt-get update',
38
- 'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
39
- 'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
40
- ],
41
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
42
- yarn_cpu: 'arm64',
43
- },
44
- 'aarch64-unknown-linux-musl': {
45
- host: 'ubuntu-latest',
46
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
47
- build_setup: ['rustup target add aarch64-unknown-linux-musl'],
48
- test_image: 'multiarch/alpine:aarch64-latest-stable',
49
- test_setup: ['apk add nodejs npm yarn'],
50
- yarn_cpu: 'arm64',
51
- yarn_libc: 'musl',
52
- },
53
- 'aarch64-pc-windows-msvc': {
54
- host: 'windows-latest',
55
- test: false,
56
- },
57
- 'armv7-unknown-linux-gnueabihf': {
58
- host: 'ubuntu-latest',
59
- build_setup: [
60
- 'sudo apt-get update',
61
- 'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
62
- ],
63
- yarn_cpu: 'arm',
64
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
65
- },
66
- 'aarch64-linux-android': {
67
- host: 'ubuntu-latest',
68
- build_setup: [
69
- 'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
70
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
71
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
72
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
73
- ],
74
- test: false,
75
- },
76
- 'armv7-linux-androideabi': {
77
- host: 'ubuntu-latest',
78
- build_setup: [
79
- 'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
80
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
81
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
82
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
83
- ],
84
- test: false,
85
- },
86
- 'riscv64gc-unknown-linux-gnu': {
87
- host: 'ubuntu-latest',
88
- build_setup: [
89
- 'sudo apt-get update',
90
- 'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
91
- ],
92
- // No official nodejs docker image for riscv64
93
- test: false,
94
- },
95
- };
96
- //# sourceMappingURL=ci.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/utils/ci.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAcjB;IACF,qBAAqB,EAAE;QACrB,IAAI,EAAE,cAAc;KACrB;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,gBAAgB;KACvB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;KAC9D;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,gCAAgC;QAC5C,SAAS,EAAE,MAAM;KAClB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;YACX,wDAAwD;YACxD,6BAA6B;YAC7B,gCAAgC;YAChC,uDAAuD;YACvD,wDAAwD;SACzD;QACD,IAAI,EAAE,KAAK;KACZ;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;YACrE,oDAAoD;SACrD;QACD,UAAU,EAAE,2DAA2D;QACvE,QAAQ,EAAE,OAAO;KAClB;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,CAAC,8CAA8C,CAAC;QAC7D,UAAU,EAAE,wCAAwC;QACpD,UAAU,EAAE,CAAC,yBAAyB,CAAC;QACvC,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,MAAM;KAClB;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,yEAAyE;SAC1E;QACD,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,yDAAyD;KACtE;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,gJAAgJ;YAChJ,yGAAyG;YACzG,4GAA4G;YAC5G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qJAAqJ;YACrJ,4GAA4G;YAC5G,+GAA+G;YAC/G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,6BAA6B,EAAE;QAC7B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;SACtE;QACD,8CAA8C;QAC9C,IAAI,EAAE,KAAK;KACZ;CACF,CAAA"}
package/src/utils/ci.ts DELETED
@@ -1,111 +0,0 @@
1
- import { TargetTriple } from './target.js'
2
-
3
- export const CIConfig: Partial<
4
- Record<
5
- TargetTriple,
6
- {
7
- host: string
8
- build_image?: string
9
- build_setup?: string[]
10
- test?: boolean
11
- test_image?: string
12
- test_setup?: string[]
13
- yarn_cpu?: string
14
- yarn_libc?: string
15
- }
16
- >
17
- > = {
18
- 'x86_64-apple-darwin': {
19
- host: 'macos-latest',
20
- },
21
- 'x86_64-pc-windows-msvc': {
22
- host: 'windows-latest',
23
- },
24
- 'i686-pc-windows-msvc': {
25
- host: 'windows-latest',
26
- test: false,
27
- },
28
- 'x86_64-unknown-linux-gnu': {
29
- host: 'ubuntu-latest',
30
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
31
- },
32
- 'x86_64-unknown-linux-musl': {
33
- host: 'ubuntu-latest',
34
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
35
- test_image: 'node:${{ matrix.node }}-alpine',
36
- yarn_libc: 'musl',
37
- },
38
- 'aarch64-apple-darwin': {
39
- host: 'macos-latest',
40
- build_setup: [
41
- 'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
42
- 'export CC=$(xcrun -f clang)',
43
- 'export CXX=$(xcrun -f clang++)',
44
- 'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
45
- 'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
46
- ],
47
- test: false,
48
- },
49
- 'aarch64-unknown-linux-gnu': {
50
- host: 'ubuntu-latest',
51
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
52
- build_setup: [
53
- 'sudo apt-get update',
54
- 'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
55
- 'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
56
- ],
57
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
58
- yarn_cpu: 'arm64',
59
- },
60
- 'aarch64-unknown-linux-musl': {
61
- host: 'ubuntu-latest',
62
- build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
63
- build_setup: ['rustup target add aarch64-unknown-linux-musl'],
64
- test_image: 'multiarch/alpine:aarch64-latest-stable',
65
- test_setup: ['apk add nodejs npm yarn'],
66
- yarn_cpu: 'arm64',
67
- yarn_libc: 'musl',
68
- },
69
- 'aarch64-pc-windows-msvc': {
70
- host: 'windows-latest',
71
- test: false,
72
- },
73
- 'armv7-unknown-linux-gnueabihf': {
74
- host: 'ubuntu-latest',
75
- build_setup: [
76
- 'sudo apt-get update',
77
- 'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
78
- ],
79
- yarn_cpu: 'arm',
80
- test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
81
- },
82
- 'aarch64-linux-android': {
83
- host: 'ubuntu-latest',
84
- build_setup: [
85
- 'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
86
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
87
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
88
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
89
- ],
90
- test: false,
91
- },
92
- 'armv7-linux-androideabi': {
93
- host: 'ubuntu-latest',
94
- build_setup: [
95
- 'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
96
- 'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
97
- 'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
98
- 'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
99
- ],
100
- test: false,
101
- },
102
- 'riscv64gc-unknown-linux-gnu': {
103
- host: 'ubuntu-latest',
104
- build_setup: [
105
- 'sudo apt-get update',
106
- 'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
107
- ],
108
- // No official nodejs docker image for riscv64
109
- test: false,
110
- },
111
- }