@napi-rs/cli 3.0.0-alpha.5 → 3.0.0-alpha.51

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 (178) hide show
  1. package/dist/api/artifacts.js +32 -8
  2. package/dist/api/artifacts.js.map +1 -0
  3. package/dist/api/build.d.ts +1 -1
  4. package/dist/api/build.js +249 -25
  5. package/dist/api/build.js.map +1 -0
  6. package/dist/api/create-npm-dirs.js +46 -8
  7. package/dist/api/create-npm-dirs.js.map +1 -0
  8. package/dist/api/new.js +58 -20
  9. package/dist/api/new.js.map +1 -0
  10. package/dist/api/pre-publish.js +10 -7
  11. package/dist/api/pre-publish.js.map +1 -0
  12. package/dist/api/rename.js +10 -1
  13. package/dist/api/rename.js.map +1 -0
  14. package/dist/api/templates/.gitignore.d.ts +1 -1
  15. package/dist/api/templates/.gitignore.js +2 -0
  16. package/dist/api/templates/.gitignore.js.map +1 -0
  17. package/dist/api/templates/.npmignore.js +1 -0
  18. package/dist/api/templates/.npmignore.js.map +1 -0
  19. package/dist/api/templates/build.rs.js +1 -0
  20. package/dist/api/templates/build.rs.js.map +1 -0
  21. package/dist/api/templates/cargo.toml.js +1 -0
  22. package/dist/api/templates/cargo.toml.js.map +1 -0
  23. package/dist/api/templates/ci-template.d.ts +3 -1
  24. package/dist/api/templates/ci-template.js +165 -150
  25. package/dist/api/templates/ci-template.js.map +1 -0
  26. package/dist/api/templates/ci.yml.d.ts +3 -1
  27. package/dist/api/templates/ci.yml.js +22 -5
  28. package/dist/api/templates/ci.yml.js.map +1 -0
  29. package/dist/api/templates/index.js +1 -0
  30. package/dist/api/templates/index.js.map +1 -0
  31. package/dist/api/templates/js-binding.js +150 -225
  32. package/dist/api/templates/js-binding.js.map +1 -0
  33. package/dist/api/templates/lib.rs.js +2 -4
  34. package/dist/api/templates/lib.rs.js.map +1 -0
  35. package/dist/api/templates/load-wasi-template.d.ts +2 -0
  36. package/dist/api/templates/load-wasi-template.js +155 -0
  37. package/dist/api/templates/load-wasi-template.js.map +1 -0
  38. package/dist/api/templates/package.json.d.ts +9 -2
  39. package/dist/api/templates/package.json.js +27 -4
  40. package/dist/api/templates/package.json.js.map +1 -0
  41. package/dist/api/templates/wasi-worker-template.d.ts +2 -0
  42. package/dist/api/templates/wasi-worker-template.js +103 -0
  43. package/dist/api/templates/wasi-worker-template.js.map +1 -0
  44. package/dist/api/universalize.js +6 -5
  45. package/dist/api/universalize.js.map +1 -0
  46. package/dist/api/version.js +3 -2
  47. package/dist/api/version.js.map +1 -0
  48. package/dist/cli.js +1 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/commands/artifacts.js +3 -2
  51. package/dist/commands/artifacts.js.map +1 -0
  52. package/dist/commands/build.js +2 -1
  53. package/dist/commands/build.js.map +1 -0
  54. package/dist/commands/create-npm-dirs.js +1 -0
  55. package/dist/commands/create-npm-dirs.js.map +1 -0
  56. package/dist/commands/help.js +1 -0
  57. package/dist/commands/help.js.map +1 -0
  58. package/dist/commands/new.js +25 -6
  59. package/dist/commands/new.js.map +1 -0
  60. package/dist/commands/pre-publish.js +1 -0
  61. package/dist/commands/pre-publish.js.map +1 -0
  62. package/dist/commands/rename.js +1 -0
  63. package/dist/commands/rename.js.map +1 -0
  64. package/dist/commands/universalize.js +1 -0
  65. package/dist/commands/universalize.js.map +1 -0
  66. package/dist/commands/version.js +1 -0
  67. package/dist/commands/version.js.map +1 -0
  68. package/dist/def/artifacts.d.ts +21 -1
  69. package/dist/def/artifacts.js +11 -2
  70. package/dist/def/artifacts.js.map +1 -0
  71. package/dist/def/build.d.ts +20 -2
  72. package/dist/def/build.js +15 -2
  73. package/dist/def/build.js.map +1 -0
  74. package/dist/def/create-npm-dirs.d.ts +10 -0
  75. package/dist/def/create-npm-dirs.js +5 -0
  76. package/dist/def/create-npm-dirs.js.map +1 -0
  77. package/dist/def/new.d.ts +24 -6
  78. package/dist/def/new.js +12 -1
  79. package/dist/def/new.js.map +1 -0
  80. package/dist/def/pre-publish.d.ts +10 -0
  81. package/dist/def/pre-publish.js +8 -3
  82. package/dist/def/pre-publish.js.map +1 -0
  83. package/dist/def/rename.d.ts +11 -1
  84. package/dist/def/rename.js +6 -1
  85. package/dist/def/rename.js.map +1 -0
  86. package/dist/def/universalize.d.ts +10 -0
  87. package/dist/def/universalize.js +5 -0
  88. package/dist/def/universalize.js.map +1 -0
  89. package/dist/def/version.d.ts +10 -0
  90. package/dist/def/version.js +5 -0
  91. package/dist/def/version.js.map +1 -0
  92. package/dist/index.cjs +3931 -718
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.js +2 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/utils/__tests__/config.spec.d.ts +1 -0
  97. package/dist/utils/__tests__/config.spec.js +63 -0
  98. package/dist/utils/__tests__/config.spec.js.map +1 -0
  99. package/dist/utils/__tests__/target.spec.js +1 -0
  100. package/dist/utils/__tests__/target.spec.js.map +1 -0
  101. package/dist/utils/__tests__/typegen.spec.js +9 -4
  102. package/dist/utils/__tests__/typegen.spec.js.map +1 -0
  103. package/dist/utils/__tests__/version.spec.js +1 -0
  104. package/dist/utils/__tests__/version.spec.js.map +1 -0
  105. package/dist/utils/cargo.js +2 -1
  106. package/dist/utils/cargo.js.map +1 -0
  107. package/dist/utils/config.d.ts +49 -5
  108. package/dist/utils/config.js +39 -6
  109. package/dist/utils/config.js.map +1 -0
  110. package/dist/utils/index.d.ts +0 -1
  111. package/dist/utils/index.js +1 -1
  112. package/dist/utils/index.js.map +1 -0
  113. package/dist/utils/log.js +1 -0
  114. package/dist/utils/log.js.map +1 -0
  115. package/dist/utils/metadata.js +3 -2
  116. package/dist/utils/metadata.js.map +1 -0
  117. package/dist/utils/misc.d.ts +1 -1
  118. package/dist/utils/misc.js +4 -3
  119. package/dist/utils/misc.js.map +1 -0
  120. package/dist/utils/target.d.ts +9 -5
  121. package/dist/utils/target.js +25 -1
  122. package/dist/utils/target.js.map +1 -0
  123. package/dist/utils/typegen.d.ts +1 -1
  124. package/dist/utils/typegen.js +8 -6
  125. package/dist/utils/typegen.js.map +1 -0
  126. package/dist/utils/version.d.ts +2 -1
  127. package/dist/utils/version.js +11 -8
  128. package/dist/utils/version.js.map +1 -0
  129. package/package.json +46 -13
  130. package/src/api/artifacts.ts +83 -8
  131. package/src/api/build.ts +417 -27
  132. package/src/api/create-npm-dirs.ts +56 -8
  133. package/src/api/new.ts +86 -31
  134. package/src/api/pre-publish.ts +13 -7
  135. package/src/api/rename.ts +10 -1
  136. package/src/api/templates/.gitignore.ts +1 -0
  137. package/src/api/templates/ci-template.ts +174 -150
  138. package/src/api/templates/ci.yml.ts +24 -6
  139. package/src/api/templates/js-binding.ts +150 -225
  140. package/src/api/templates/lib.rs.ts +1 -4
  141. package/src/api/templates/load-wasi-template.ts +168 -0
  142. package/src/api/templates/package.json.ts +47 -5
  143. package/src/api/templates/wasi-worker-template.ts +103 -0
  144. package/src/api/universalize.ts +8 -5
  145. package/src/api/version.ts +5 -2
  146. package/src/commands/artifacts.ts +2 -2
  147. package/src/commands/build.ts +1 -1
  148. package/src/commands/new.ts +25 -6
  149. package/src/def/artifacts.ts +22 -3
  150. package/src/def/build.ts +32 -4
  151. package/src/def/create-npm-dirs.ts +9 -0
  152. package/src/def/new.ts +28 -3
  153. package/src/def/pre-publish.ts +12 -3
  154. package/src/def/rename.ts +11 -2
  155. package/src/def/universalize.ts +9 -0
  156. package/src/def/version.ts +9 -0
  157. package/src/index.ts +2 -0
  158. package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
  159. package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
  160. package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
  161. package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
  162. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +555 -0
  163. package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
  164. package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
  165. package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
  166. package/src/utils/__tests__/config.spec.ts +81 -0
  167. package/src/utils/__tests__/typegen.spec.ts +18 -3
  168. package/src/utils/cargo.ts +1 -1
  169. package/src/utils/config.ts +114 -12
  170. package/src/utils/index.ts +0 -1
  171. package/src/utils/metadata.ts +2 -2
  172. package/src/utils/misc.ts +11 -3
  173. package/src/utils/target.ts +34 -7
  174. package/src/utils/typegen.ts +11 -5
  175. package/src/utils/version.ts +10 -8
  176. package/dist/utils/ci.d.ts +0 -11
  177. package/dist/utils/ci.js +0 -95
  178. package/src/utils/ci.ts +0 -111
@@ -3,7 +3,7 @@
3
3
  import { Command, Option } from 'clipanion'
4
4
 
5
5
  export abstract class BasePrePublishCommand extends Command {
6
- static paths = [['pre-publish']]
6
+ static paths = [['pre-publish'], ['prepublish']]
7
7
 
8
8
  static usage = Command.Usage({
9
9
  description:
@@ -15,15 +15,19 @@ export abstract class BasePrePublishCommand extends Command {
15
15
  'The working directory of where napi command will be executed in, all other paths options are relative to this path',
16
16
  })
17
17
 
18
+ configPath?: string = Option.String('--config-path,-c', {
19
+ description: 'Path to `napi` config json file',
20
+ })
21
+
18
22
  packageJsonPath = Option.String('--package-json-path', 'package.json', {
19
23
  description: 'Path to `package.json`',
20
24
  })
21
25
 
22
- npmDir = Option.String('--npm-dir', 'npm', {
26
+ npmDir = Option.String('--npm-dir,-p', 'npm', {
23
27
  description: 'Path to the folder where the npm packages put',
24
28
  })
25
29
 
26
- tagStyle = Option.String('--tag-style', 'lerna', {
30
+ tagStyle = Option.String('--tag-style,--tagstyle,-t', 'lerna', {
27
31
  description: 'git tag style, `npm` or `lerna`',
28
32
  })
29
33
 
@@ -46,6 +50,7 @@ export abstract class BasePrePublishCommand extends Command {
46
50
  getOptions() {
47
51
  return {
48
52
  cwd: this.cwd,
53
+ configPath: this.configPath,
49
54
  packageJsonPath: this.packageJsonPath,
50
55
  npmDir: this.npmDir,
51
56
  tagStyle: this.tagStyle,
@@ -67,6 +72,10 @@ export interface PrePublishOptions {
67
72
  * @default process.cwd()
68
73
  */
69
74
  cwd?: string
75
+ /**
76
+ * Path to `napi` config json file
77
+ */
78
+ configPath?: string
70
79
  /**
71
80
  * Path to `package.json`
72
81
  *
package/src/def/rename.ts CHANGED
@@ -6,7 +6,7 @@ export abstract class BaseRenameCommand extends Command {
6
6
  static paths = [['rename']]
7
7
 
8
8
  static usage = Command.Usage({
9
- description: 'Rename the napi-rs project',
9
+ description: 'Rename the NAPI-RS project',
10
10
  })
11
11
 
12
12
  cwd = Option.String('--cwd', process.cwd(), {
@@ -14,6 +14,10 @@ export abstract class BaseRenameCommand extends Command {
14
14
  'The working directory of where napi command will be executed in, all other paths options are relative to this path',
15
15
  })
16
16
 
17
+ configPath?: string = Option.String('--config-path,-c', {
18
+ description: 'Path to `napi` config json file',
19
+ })
20
+
17
21
  packageJsonPath = Option.String('--package-json-path', 'package.json', {
18
22
  description: 'Path to `package.json`',
19
23
  })
@@ -49,6 +53,7 @@ export abstract class BaseRenameCommand extends Command {
49
53
  getOptions() {
50
54
  return {
51
55
  cwd: this.cwd,
56
+ configPath: this.configPath,
52
57
  packageJsonPath: this.packageJsonPath,
53
58
  npmDir: this.npmDir,
54
59
  name: this.$$name,
@@ -62,7 +67,7 @@ export abstract class BaseRenameCommand extends Command {
62
67
  }
63
68
 
64
69
  /**
65
- * Rename the napi-rs project
70
+ * Rename the NAPI-RS project
66
71
  */
67
72
  export interface RenameOptions {
68
73
  /**
@@ -71,6 +76,10 @@ export interface RenameOptions {
71
76
  * @default process.cwd()
72
77
  */
73
78
  cwd?: string
79
+ /**
80
+ * Path to `napi` config json file
81
+ */
82
+ configPath?: string
74
83
  /**
75
84
  * Path to `package.json`
76
85
  *
@@ -14,6 +14,10 @@ export abstract class BaseUniversalizeCommand extends Command {
14
14
  'The working directory of where napi command will be executed in, all other paths options are relative to this path',
15
15
  })
16
16
 
17
+ configPath?: string = Option.String('--config-path,-c', {
18
+ description: 'Path to `napi` config json file',
19
+ })
20
+
17
21
  packageJsonPath = Option.String('--package-json-path', 'package.json', {
18
22
  description: 'Path to `package.json`',
19
23
  })
@@ -26,6 +30,7 @@ export abstract class BaseUniversalizeCommand extends Command {
26
30
  getOptions() {
27
31
  return {
28
32
  cwd: this.cwd,
33
+ configPath: this.configPath,
29
34
  packageJsonPath: this.packageJsonPath,
30
35
  outputDir: this.outputDir,
31
36
  }
@@ -42,6 +47,10 @@ export interface UniversalizeOptions {
42
47
  * @default process.cwd()
43
48
  */
44
49
  cwd?: string
50
+ /**
51
+ * Path to `napi` config json file
52
+ */
53
+ configPath?: string
45
54
  /**
46
55
  * Path to `package.json`
47
56
  *
@@ -14,6 +14,10 @@ export abstract class BaseVersionCommand extends Command {
14
14
  'The working directory of where napi command will be executed in, all other paths options are relative to this path',
15
15
  })
16
16
 
17
+ configPath?: string = Option.String('--config-path,-c', {
18
+ description: 'Path to `napi` config json file',
19
+ })
20
+
17
21
  packageJsonPath = Option.String('--package-json-path', 'package.json', {
18
22
  description: 'Path to `package.json`',
19
23
  })
@@ -25,6 +29,7 @@ export abstract class BaseVersionCommand extends Command {
25
29
  getOptions() {
26
30
  return {
27
31
  cwd: this.cwd,
32
+ configPath: this.configPath,
28
33
  packageJsonPath: this.packageJsonPath,
29
34
  npmDir: this.npmDir,
30
35
  }
@@ -41,6 +46,10 @@ export interface VersionOptions {
41
46
  * @default process.cwd()
42
47
  */
43
48
  cwd?: string
49
+ /**
50
+ * Path to `napi` config json file
51
+ */
52
+ configPath?: string
44
53
  /**
45
54
  * Path to `package.json`
46
55
  *
package/src/index.ts CHANGED
@@ -29,3 +29,5 @@ export class NapiCli {
29
29
  universalize = universalizeBinaries
30
30
  version = version
31
31
  }
32
+
33
+ export { parseTriple } from './utils/target.js'
@@ -0,0 +1,97 @@
1
+ # Snapshot report for `src/utils/__tests__/config.spec.ts`
2
+
3
+ The actual snapshot is saved in `config.spec.ts.snap`.
4
+
5
+ Generated by [AVA](https://avajs.dev).
6
+
7
+ ## should be able to read config from package.json
8
+
9
+ > Snapshot 1
10
+
11
+ {
12
+ binaryName: 'testing',
13
+ npmClient: 'npm',
14
+ packageJson: {
15
+ name: '@napi-rs/testing',
16
+ napi: {
17
+ binaryName: 'testing',
18
+ packageName: '@napi-rs/testing',
19
+ targets: [
20
+ 'x86_64-unknown-linux-gnu',
21
+ 'x86_64-pc-windows-msvc',
22
+ 'x86_64-apple-darwin',
23
+ ],
24
+ },
25
+ version: '0.0.0',
26
+ },
27
+ packageName: '@napi-rs/testing',
28
+ targets: [
29
+ {
30
+ abi: 'gnu',
31
+ arch: 'x64',
32
+ platform: 'linux',
33
+ platformArchABI: 'linux-x64-gnu',
34
+ triple: 'x86_64-unknown-linux-gnu',
35
+ },
36
+ {
37
+ abi: 'msvc',
38
+ arch: 'x64',
39
+ platform: 'win32',
40
+ platformArchABI: 'win32-x64-msvc',
41
+ triple: 'x86_64-pc-windows-msvc',
42
+ },
43
+ {
44
+ abi: null,
45
+ arch: 'x64',
46
+ platform: 'darwin',
47
+ platformArchABI: 'darwin-x64',
48
+ triple: 'x86_64-apple-darwin',
49
+ },
50
+ ],
51
+ }
52
+
53
+ ## should be able to read config from napi.json
54
+
55
+ > Snapshot 1
56
+
57
+ {
58
+ binaryName: 'testing',
59
+ npmClient: 'npm',
60
+ packageJson: {
61
+ name: '@napi-rs/testing',
62
+ napi: {
63
+ binaryName: 'testing',
64
+ packageName: '@node-rs/testing',
65
+ targets: [
66
+ 'x86_64-unknown-linux-gnu',
67
+ 'x86_64-apple-darwin',
68
+ 'aarch64-apple-darwin',
69
+ ],
70
+ },
71
+ version: '0.0.0',
72
+ },
73
+ packageName: '@node-rs/testing',
74
+ targets: [
75
+ {
76
+ abi: 'gnu',
77
+ arch: 'x64',
78
+ platform: 'linux',
79
+ platformArchABI: 'linux-x64-gnu',
80
+ triple: 'x86_64-unknown-linux-gnu',
81
+ },
82
+ {
83
+ abi: null,
84
+ arch: 'x64',
85
+ platform: 'darwin',
86
+ platformArchABI: 'darwin-x64',
87
+ triple: 'x86_64-apple-darwin',
88
+ },
89
+ {
90
+ abi: null,
91
+ arch: 'arm64',
92
+ platform: 'darwin',
93
+ platformArchABI: 'darwin-arm64',
94
+ triple: 'aarch64-apple-darwin',
95
+ },
96
+ ],
97
+ }
@@ -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,4 +121,25 @@ 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
+ },
138
+ {
139
+ abi: 'wasi',
140
+ arch: 'wasm32',
141
+ platform: 'wasi',
142
+ platformArchABI: 'wasm32-wasi',
143
+ triple: 'wasm32-wasi-preview1-threads',
144
+ },
117
145
  ]