@napi-rs/cli 3.0.0-alpha.61 → 3.0.0-alpha.63

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.
@@ -26,7 +26,7 @@ function detectCargoBinary(bin) {
26
26
  debug('Cargo binary detected: %s', bin);
27
27
  return true;
28
28
  }
29
- catch (e) {
29
+ catch {
30
30
  debug('Cargo binary not detected: %s', bin);
31
31
  return false;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cargo.js","sourceRoot":"","sources":["../../src/utils/cargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAA;QAC1C,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE;YAChC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,EAAE;YACzD,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;IACxC,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE;YAC5B,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cargo.js","sourceRoot":"","sources":["../../src/utils/cargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAA;QAC1C,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE;YAChC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,EAAE;YACzD,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;IACxC,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE;YAC5B,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -110,7 +110,7 @@ export interface CommonPackageJsonFields {
110
110
  timeout?: string;
111
111
  };
112
112
  }
113
- export type NapiConfig = Required<Pick<UserNapiConfig, 'binaryName' | 'packageName' | 'npmClient'>> & Pick<UserNapiConfig, 'wasm' | 'dtsHeader' | 'dtsHeaderFile'> & {
113
+ export type NapiConfig = Required<Pick<UserNapiConfig, 'binaryName' | 'packageName' | 'npmClient'>> & Pick<UserNapiConfig, 'wasm' | 'dtsHeader' | 'dtsHeaderFile' | 'constEnum'> & {
114
114
  targets: Target[];
115
115
  packageJson: CommonPackageJsonFields;
116
116
  };
@@ -10,6 +10,7 @@ var TypeDefKind;
10
10
  TypeDefKind["Enum"] = "enum";
11
11
  TypeDefKind["StringEnum"] = "string_enum";
12
12
  TypeDefKind["Interface"] = "interface";
13
+ TypeDefKind["Type"] = "type";
13
14
  TypeDefKind["Fn"] = "fn";
14
15
  TypeDefKind["Struct"] = "struct";
15
16
  TypeDefKind["Impl"] = "impl";
@@ -20,6 +21,9 @@ function prettyPrint(line, constEnum, ident, ambient = false) {
20
21
  case TypeDefKind.Interface:
21
22
  s += `export interface ${line.name} {\n${line.def}\n}`;
22
23
  break;
24
+ case TypeDefKind.Type:
25
+ s += `export type ${line.name} = \n${line.def}`;
26
+ break;
23
27
  case TypeDefKind.Enum:
24
28
  const enumName = constEnum ? 'const enum' : 'enum';
25
29
  s += `${exportDeclare(ambient)} ${enumName} ${line.name} {\n${line.def}\n}`;
@@ -57,11 +61,11 @@ export async function processTypeDef(intermediateTypeFile, constEnum, header) {
57
61
  const defs = await readIntermediateTypeFile(intermediateTypeFile);
58
62
  const groupedDefs = preprocessTypeDef(defs);
59
63
  header = header ?? '';
60
- let dts = '';
61
- sortBy(Array.from(groupedDefs), ([namespace]) => namespace).forEach(([namespace, defs]) => {
64
+ const dts = sortBy(Array.from(groupedDefs), ([namespace]) => namespace)
65
+ .map(([namespace, defs]) => {
62
66
  if (namespace === TOP_LEVEL_NAMESPACE) {
63
- for (const def of defs) {
64
- dts += prettyPrint(def, constEnum, 0) + '\n\n';
67
+ return defs
68
+ .map((def) => {
65
69
  switch (def.kind) {
66
70
  case TypeDefKind.Const:
67
71
  case TypeDefKind.Enum:
@@ -77,17 +81,22 @@ export async function processTypeDef(intermediateTypeFile, constEnum, header) {
77
81
  default:
78
82
  break;
79
83
  }
80
- }
84
+ return prettyPrint(def, constEnum, 0);
85
+ })
86
+ .join('\n\n');
81
87
  }
82
88
  else {
83
89
  exports.push(namespace);
84
- dts += `export declare namespace ${namespace} {\n`;
90
+ let declaration = '';
91
+ declaration += `export declare namespace ${namespace} {\n`;
85
92
  for (const def of defs) {
86
- dts += prettyPrint(def, constEnum, 2, true) + '\n';
93
+ declaration += prettyPrint(def, constEnum, 2, true) + '\n';
87
94
  }
88
- dts += '}\n\n';
95
+ declaration += '}';
96
+ return declaration;
89
97
  }
90
- });
98
+ })
99
+ .join('\n\n') + '\n';
91
100
  if (dts.indexOf('ExternalObject<') > -1) {
92
101
  header += `
93
102
  export declare class ExternalObject<T> {
@@ -175,13 +184,18 @@ export function correctStringIdent(src, ident) {
175
184
  const isInMultilineComment = line.startsWith('*');
176
185
  const isClosingBracket = line.endsWith('}');
177
186
  const isOpeningBracket = line.endsWith('{');
187
+ const isTypeDeclaration = line.endsWith('=');
188
+ const isTypeVariant = line.startsWith('|');
178
189
  let rightIndent = ident;
179
- if (isOpeningBracket && !isInMultilineComment) {
190
+ if ((isOpeningBracket || isTypeDeclaration) && !isInMultilineComment) {
180
191
  bracketDepth += 1;
181
192
  rightIndent += (bracketDepth - 1) * 2;
182
193
  }
183
194
  else {
184
- if (isClosingBracket && bracketDepth > 0 && !isInMultilineComment) {
195
+ if (isClosingBracket &&
196
+ bracketDepth > 0 &&
197
+ !isInMultilineComment &&
198
+ !isTypeVariant) {
185
199
  bracketDepth -= 1;
186
200
  }
187
201
  rightIndent += bracketDepth * 2;
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../src/utils/typegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../src/utils/typegen.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.0.0-alpha.61",
3
+ "version": "3.0.0-alpha.63",
4
4
  "description": "Cli tools for napi-rs",
5
5
  "author": "LongYinan <lynweklm@gmail.com>",
6
6
  "homepage": "https://github.com/napi-rs/napi-rs",
@@ -67,6 +67,7 @@
67
67
  "url": "https://github.com/napi-rs/napi-rs/issues"
68
68
  },
69
69
  "dependencies": {
70
+ "@inquirer/prompts": "^6.0.0",
70
71
  "@napi-rs/cross-toolchain": "^0.0.16",
71
72
  "@napi-rs/wasm-tools": "^0.0.2",
72
73
  "@octokit/rest": "^21.0.0",
@@ -74,7 +75,6 @@
74
75
  "colorette": "^2.0.20",
75
76
  "debug": "^4.3.4",
76
77
  "emnapi": "^1.2.0",
77
- "inquirer": "^10.0.0",
78
78
  "js-yaml": "^4.1.0",
79
79
  "lodash-es": "^4.17.21",
80
80
  "semver": "^7.5.4",
@@ -93,7 +93,7 @@
93
93
  "@types/semver": "^7.5.8",
94
94
  "ava": "^6.1.1",
95
95
  "env-paths": "^3.0.0",
96
- "esbuild": "^0.23.0",
96
+ "esbuild": "^0.24.0",
97
97
  "prettier": "^3.2.4",
98
98
  "ts-node": "^10.9.2",
99
99
  "tslib": "^2.6.2",
@@ -129,5 +129,5 @@
129
129
  "**/__tests__/**/*.spec.ts"
130
130
  ]
131
131
  },
132
- "gitHead": "cf5f7bcd84cfab282a65fa0e2f0cd8cfb36a156e"
132
+ "gitHead": "8f4f74a32c12a5c9dec7ad5df1ef0f02377ac942"
133
133
  }
package/src/api/build.ts CHANGED
@@ -840,9 +840,9 @@ class Builder {
840
840
 
841
841
  const { dts, exports } = await processTypeDef(
842
842
  this.envs.TYPE_DEF_TMP_PATH,
843
- this.options.constEnum ?? true,
843
+ this.options.constEnum ?? this.config.constEnum ?? true,
844
844
  !this.options.noDtsHeader
845
- ? this.options.dtsHeader ??
845
+ ? (this.options.dtsHeader ??
846
846
  (this.config.dtsHeaderFile
847
847
  ? await readFileAsync(
848
848
  join(this.cwd, this.config.dtsHeaderFile),
@@ -855,7 +855,7 @@ class Builder {
855
855
  })
856
856
  : null) ??
857
857
  this.config.dtsHeader ??
858
- DEFAULT_TYPE_DEF_HEADER
858
+ DEFAULT_TYPE_DEF_HEADER)
859
859
  : '',
860
860
  )
861
861
 
@@ -136,7 +136,7 @@ export async function createNpmDirs(userOptions: CreateNpmDirsOptions) {
136
136
  const targetPackageJson = join(targetDir, 'package.json')
137
137
  await writeFileAsync(
138
138
  targetPackageJson,
139
- JSON.stringify(scopedPackageJson, null, 2),
139
+ JSON.stringify(scopedPackageJson, null, 2) + '\n',
140
140
  )
141
141
  const targetReadme = join(targetDir, 'README.md')
142
142
  await writeFileAsync(targetReadme, readme(packageName, target))
@@ -32,4 +32,5 @@ napi-build = "2"
32
32
 
33
33
  [profile.release]
34
34
  lto = true
35
+ strip = "symbols"
35
36
  `
@@ -122,7 +122,7 @@ jobs:
122
122
  targets: \${{ matrix.settings.target }}
123
123
 
124
124
  - name: Cache cargo
125
- uses: actions/cache@v3
125
+ uses: actions/cache@v4
126
126
  with:
127
127
  path: |
128
128
  ~/.cargo/registry/index/
@@ -136,7 +136,15 @@ jobs:
136
136
  - uses: goto-bus-stop/setup-zig@v2
137
137
  if: \${{ contains(matrix.settings.target, 'musl') }}
138
138
  with:
139
- version: 0.12.0
139
+ version: 0.13.0
140
+
141
+ - name: Install cargo-zigbuild
142
+ uses: taiki-e/install-action@v2
143
+ if: \${{ contains(matrix.settings.target, 'musl') }}
144
+ env:
145
+ GITHUB_TOKEN: \${{ github.token }}
146
+ with:
147
+ tool: cargo-zigbuild
140
148
 
141
149
  - name: Setup toolchain
142
150
  run: \${{ matrix.settings.setup }}
@@ -179,20 +187,19 @@ jobs:
179
187
  if-no-files-found: error
180
188
 
181
189
  build-freebsd:
182
- runs-on: macos-12
190
+ runs-on: ubuntu-latest
183
191
  name: Build FreeBSD
184
192
  steps:
185
193
  - uses: actions/checkout@v4
186
194
  - name: Build
187
195
  id: build
188
- uses: cross-platform-actions/action@v0.23.0
189
- timeout-minutes: 30
196
+ uses: cross-platform-actions/action@v0.25.0
190
197
  env:
191
198
  DEBUG: 'napi:*'
192
199
  RUSTUP_IO_THREADS: 1
193
200
  with:
194
201
  operating_system: freebsd
195
- version: '13.2'
202
+ version: '14.1'
196
203
  memory: 8G
197
204
  cpu_count: 3
198
205
  environment_variables: 'DEBUG RUSTUP_IO_THREADS'
@@ -238,8 +245,13 @@ jobs:
238
245
  settings:
239
246
  - host: macos-latest
240
247
  target: 'x86_64-apple-darwin'
248
+ architecture: x64
249
+ - host: macos-latest
250
+ target: 'aarch64-apple-darwin'
251
+ architecture: arm64
241
252
  - host: windows-latest
242
253
  target: 'x86_64-pc-windows-msvc'
254
+ architecture: x64
243
255
  node: ['18', '20']
244
256
  runs-on: \${{ matrix.settings.host }}
245
257
 
@@ -251,6 +263,7 @@ jobs:
251
263
  with:
252
264
  node-version: \${{ matrix.node }}
253
265
  cache: '${packageManager}'
266
+ architecture: \${{ matrix.settings.architecture }}
254
267
 
255
268
  - name: 'Install dependencies'
256
269
  run: ${packageManager} install
@@ -266,7 +279,7 @@ jobs:
266
279
  shell: bash
267
280
 
268
281
  - name: Test bindings
269
- run: ${packageManager} test
282
+ run: ${packageManager} run test
270
283
 
271
284
  test-linux-x64-gnu-binding:
272
285
  name: Test bindings on Linux-x64-gnu - node@\${{ matrix.node }}
@@ -301,7 +314,7 @@ jobs:
301
314
  shell: bash
302
315
 
303
316
  - name: Test bindings
304
- run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-slim yarn test
317
+ run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-slim ${packageManager} run test
305
318
 
306
319
  test-linux-x64-musl-binding:
307
320
  name: Test bindings on x86_64-unknown-linux-musl - node@\${{ matrix.node }}
@@ -320,7 +333,7 @@ jobs:
320
333
  uses: actions/setup-node@v4
321
334
  with:
322
335
  node-version: \${{ matrix.node }}
323
- cache: 'yarn'
336
+ cache: '${packageManager}'
324
337
 
325
338
  - name: 'Install dependencies'
326
339
  run: |
@@ -338,7 +351,7 @@ jobs:
338
351
  shell: bash
339
352
 
340
353
  - name: Test bindings
341
- run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-alpine yarn test
354
+ run: docker run --rm -v $(pwd):/build -w /build node:\${{ matrix.node }}-alpine ${packageManager} run test
342
355
 
343
356
  test-linux-aarch64-gnu-binding:
344
357
  name: Test bindings on aarch64-unknown-linux-gnu - node@\${{ matrix.node }}
@@ -380,7 +393,7 @@ jobs:
380
393
  with:
381
394
  image: node:\${{ matrix.node }}-slim
382
395
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
383
- run: yarn test
396
+ run: ${packageManager} run test
384
397
 
385
398
  test-linux-aarch64-musl-binding:
386
399
  name: Test bindings on aarch64-unknown-linux-musl - node@\${{ matrix.node }}
@@ -423,7 +436,7 @@ jobs:
423
436
  with:
424
437
  image: node:\${{ matrix.node }}-alpine
425
438
  options: --platform linux/arm64 -v \${{ github.workspace }}:/build -w /build
426
- run: yarn test
439
+ run: ${packageManager} run test
427
440
 
428
441
  test-linux-arm-gnueabihf-binding:
429
442
  name: Test bindings on armv7-unknown-linux-gnueabihf - node@\${{ matrix.node }}
@@ -566,7 +579,7 @@ jobs:
566
579
  path: artifacts
567
580
 
568
581
  - name: Move artifacts
569
- run: yarn artifacts
582
+ run: ${packageManager} artifacts
570
583
 
571
584
  - name: List packages
572
585
  run: ls -R ./npm
@@ -155,7 +155,7 @@ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
155
155
  nativeBinding = require('./${localName}.wasi.cjs')
156
156
  } catch (err) {
157
157
  if (process.env.NAPI_RS_FORCE_WASI) {
158
- console.error(err)
158
+ loadErrors.push(err)
159
159
  }
160
160
  }
161
161
  if (!nativeBinding) {
@@ -163,7 +163,7 @@ if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
163
163
  nativeBinding = require('${pkgName}-wasm32-wasi')
164
164
  } catch (err) {
165
165
  if (process.env.NAPI_RS_FORCE_WASI) {
166
- console.error(err)
166
+ loadErrors.push(err)
167
167
  }
168
168
  }
169
169
  }
@@ -1,7 +1,7 @@
1
1
  import path from 'node:path'
2
2
 
3
+ import { input, select, checkbox, confirm } from '@inquirer/prompts'
3
4
  import { Option } from 'clipanion'
4
- import inquirer from 'inquirer'
5
5
 
6
6
  import { newProject } from '../api/new.js'
7
7
  import { BaseNewCommand } from '../def/new.js'
@@ -58,43 +58,31 @@ export class NewCommand extends BaseNewCommand {
58
58
  private async fetchName(defaultName: string): Promise<string> {
59
59
  return (
60
60
  this.$$name ??
61
- inquirer
62
- .prompt({
63
- type: 'input',
64
- name: 'name',
65
- message: 'Package name (the name field in your package.json file)',
66
- default: defaultName,
67
- })
68
- .then(({ name }) => name)
61
+ input({
62
+ message: 'Package name (the name field in your package.json file)',
63
+ default: defaultName,
64
+ })
69
65
  )
70
66
  }
71
67
 
72
68
  private async fetchLicense(): Promise<string> {
73
- return inquirer
74
- .prompt({
75
- type: 'input',
76
- name: 'license',
77
- message: 'License for open-sourced project',
78
- default: this.license,
79
- })
80
- .then(({ license }) => license)
69
+ return input({
70
+ message: 'License for open-sourced project',
71
+ default: this.license,
72
+ })
81
73
  }
82
74
 
83
75
  private async fetchNapiVersion(): Promise<number> {
84
- return inquirer
85
- .prompt({
86
- type: 'list',
87
- name: 'minNodeApiVersion',
88
- message: 'Minimum node-api version (with node version requirement)',
89
- loop: false,
90
- choices: Array.from({ length: 8 }, (_, i) => ({
91
- name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
92
- value: i + 1,
93
- })),
94
- // choice index
95
- default: this.minNodeApiVersion - 1,
96
- })
97
- .then(({ minNodeApiVersion }) => minNodeApiVersion)
76
+ return select({
77
+ message: 'Minimum node-api version (with node version requirement)',
78
+ loop: false,
79
+ choices: Array.from({ length: 8 }, (_, i) => ({
80
+ name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
81
+ value: i + 1,
82
+ })),
83
+ // choice index
84
+ default: this.minNodeApiVersion - 1,
85
+ })
98
86
  }
99
87
 
100
88
  private async fetchTargets(): Promise<TargetTriple[]> {
@@ -102,9 +90,7 @@ export class NewCommand extends BaseNewCommand {
102
90
  return AVAILABLE_TARGETS.concat()
103
91
  }
104
92
 
105
- const { targets } = await inquirer.prompt({
106
- name: 'targets',
107
- type: 'checkbox',
93
+ const targets = await checkbox({
108
94
  loop: false,
109
95
  message: 'Choose target(s) your crate will be compiled to',
110
96
  choices: AVAILABLE_TARGETS.map((target) => ({
@@ -119,9 +105,7 @@ export class NewCommand extends BaseNewCommand {
119
105
  }
120
106
 
121
107
  private async fetchTypeDef(): Promise<boolean> {
122
- const { enableTypeDef } = await inquirer.prompt({
123
- name: 'enableTypeDef',
124
- type: 'confirm',
108
+ const enableTypeDef = await confirm({
125
109
  message: 'Enable type definition auto-generation',
126
110
  default: this.enableTypeDef,
127
111
  })
@@ -130,9 +114,7 @@ export class NewCommand extends BaseNewCommand {
130
114
  }
131
115
 
132
116
  private async fetchGithubActions(): Promise<boolean> {
133
- const { enableGithubActions } = await inquirer.prompt({
134
- name: 'enableGithubActions',
135
- type: 'confirm',
117
+ const enableGithubActions = await confirm({
136
118
  message: 'Enable Github Actions CI',
137
119
  default: this.enableGithubActions,
138
120
  })
@@ -142,16 +124,12 @@ export class NewCommand extends BaseNewCommand {
142
124
  }
143
125
 
144
126
  async function inquirerProjectPath(): Promise<string> {
145
- return inquirer
146
- .prompt({
147
- type: 'input',
148
- name: 'path',
149
- message: 'Target path to create the project, relative to cwd.',
150
- })
151
- .then(({ path }) => {
152
- if (!path) {
153
- return inquirerProjectPath()
154
- }
155
- return path
156
- })
127
+ return input({
128
+ message: 'Target path to create the project, relative to cwd.',
129
+ }).then((path) => {
130
+ if (!path) {
131
+ return inquirerProjectPath()
132
+ }
133
+ return path
134
+ })
157
135
  }
@@ -614,7 +614,6 @@ Generated by [AVA](https://avajs.dev).
614
614
  export function xxh128(input: Buffer): bigint␊
615
615
  export function xxh3_64(input: Buffer): bigint␊
616
616
  }␊
617
- ␊
618
617
  `
619
618
 
620
619
  ## should process type def with noConstEnum correctly
@@ -1169,5 +1168,4 @@ Generated by [AVA](https://avajs.dev).
1169
1168
  export function xxh128(input: Buffer): bigint␊
1170
1169
  export function xxh3_64(input: Buffer): bigint␊
1171
1170
  }␊
1172
- ␊
1173
1171
  `
@@ -28,7 +28,7 @@ function detectCargoBinary(bin: string) {
28
28
  })
29
29
  debug('Cargo binary detected: %s', bin)
30
30
  return true
31
- } catch (e) {
31
+ } catch {
32
32
  debug('Cargo binary not detected: %s', bin)
33
33
  return false
34
34
  }
@@ -139,7 +139,7 @@ export interface CommonPackageJsonFields {
139
139
  export type NapiConfig = Required<
140
140
  Pick<UserNapiConfig, 'binaryName' | 'packageName' | 'npmClient'>
141
141
  > &
142
- Pick<UserNapiConfig, 'wasm' | 'dtsHeader' | 'dtsHeaderFile'> & {
142
+ Pick<UserNapiConfig, 'wasm' | 'dtsHeader' | 'dtsHeaderFile' | 'constEnum'> & {
143
143
  targets: Target[]
144
144
  packageJson: CommonPackageJsonFields
145
145
  }
@@ -12,6 +12,7 @@ enum TypeDefKind {
12
12
  Enum = 'enum',
13
13
  StringEnum = 'string_enum',
14
14
  Interface = 'interface',
15
+ Type = 'type',
15
16
  Fn = 'fn',
16
17
  Struct = 'struct',
17
18
  Impl = 'impl',
@@ -38,6 +39,10 @@ function prettyPrint(
38
39
  s += `export interface ${line.name} {\n${line.def}\n}`
39
40
  break
40
41
 
42
+ case TypeDefKind.Type:
43
+ s += `export type ${line.name} = \n${line.def}`
44
+ break
45
+
41
46
  case TypeDefKind.Enum:
42
47
  const enumName = constEnum ? 'const enum' : 'enum'
43
48
  s += `${exportDeclare(ambient)} ${enumName} ${line.name} {\n${line.def}\n}`
@@ -87,39 +92,43 @@ export async function processTypeDef(
87
92
  const groupedDefs = preprocessTypeDef(defs)
88
93
 
89
94
  header = header ?? ''
90
- let dts = ''
91
-
92
- sortBy(Array.from(groupedDefs), ([namespace]) => namespace).forEach(
93
- ([namespace, defs]) => {
94
- if (namespace === TOP_LEVEL_NAMESPACE) {
95
- for (const def of defs) {
96
- dts += prettyPrint(def, constEnum, 0) + '\n\n'
97
- switch (def.kind) {
98
- case TypeDefKind.Const:
99
- case TypeDefKind.Enum:
100
- case TypeDefKind.StringEnum:
101
- case TypeDefKind.Fn:
102
- case TypeDefKind.Struct: {
103
- exports.push(def.name)
104
- if (def.original_name && def.original_name !== def.name) {
105
- exports.push(def.original_name)
95
+
96
+ const dts =
97
+ sortBy(Array.from(groupedDefs), ([namespace]) => namespace)
98
+ .map(([namespace, defs]) => {
99
+ if (namespace === TOP_LEVEL_NAMESPACE) {
100
+ return defs
101
+ .map((def) => {
102
+ switch (def.kind) {
103
+ case TypeDefKind.Const:
104
+ case TypeDefKind.Enum:
105
+ case TypeDefKind.StringEnum:
106
+ case TypeDefKind.Fn:
107
+ case TypeDefKind.Struct: {
108
+ exports.push(def.name)
109
+ if (def.original_name && def.original_name !== def.name) {
110
+ exports.push(def.original_name)
111
+ }
112
+ break
113
+ }
114
+ default:
115
+ break
106
116
  }
107
- break
108
- }
109
- default:
110
- break
117
+ return prettyPrint(def, constEnum, 0)
118
+ })
119
+ .join('\n\n')
120
+ } else {
121
+ exports.push(namespace)
122
+ let declaration = ''
123
+ declaration += `export declare namespace ${namespace} {\n`
124
+ for (const def of defs) {
125
+ declaration += prettyPrint(def, constEnum, 2, true) + '\n'
111
126
  }
127
+ declaration += '}'
128
+ return declaration
112
129
  }
113
- } else {
114
- exports.push(namespace)
115
- dts += `export declare namespace ${namespace} {\n`
116
- for (const def of defs) {
117
- dts += prettyPrint(def, constEnum, 2, true) + '\n'
118
- }
119
- dts += '}\n\n'
120
- }
121
- },
122
- )
130
+ })
131
+ .join('\n\n') + '\n'
123
132
 
124
133
  if (dts.indexOf('ExternalObject<') > -1) {
125
134
  header += `
@@ -215,13 +224,20 @@ export function correctStringIdent(src: string, ident: number): string {
215
224
  const isInMultilineComment = line.startsWith('*')
216
225
  const isClosingBracket = line.endsWith('}')
217
226
  const isOpeningBracket = line.endsWith('{')
227
+ const isTypeDeclaration = line.endsWith('=')
228
+ const isTypeVariant = line.startsWith('|')
218
229
 
219
230
  let rightIndent = ident
220
- if (isOpeningBracket && !isInMultilineComment) {
231
+ if ((isOpeningBracket || isTypeDeclaration) && !isInMultilineComment) {
221
232
  bracketDepth += 1
222
233
  rightIndent += (bracketDepth - 1) * 2
223
234
  } else {
224
- if (isClosingBracket && bracketDepth > 0 && !isInMultilineComment) {
235
+ if (
236
+ isClosingBracket &&
237
+ bracketDepth > 0 &&
238
+ !isInMultilineComment &&
239
+ !isTypeVariant
240
+ ) {
225
241
  bracketDepth -= 1
226
242
  }
227
243
  rightIndent += bracketDepth * 2