@napi-rs/cli 3.3.0 → 3.4.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/cli",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
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",
@@ -114,7 +114,8 @@
114
114
  "extensions": {
115
115
  "ts": "module"
116
116
  },
117
- "timeout": "1m",
117
+ "timeout": "2m",
118
+ "workerThreads": false,
118
119
  "files": [
119
120
  "**/__tests__/**/*.spec.ts",
120
121
  "e2e/**/*.spec.ts"
package/src/api/build.ts CHANGED
@@ -619,9 +619,7 @@ class Builder {
619
619
 
620
620
  private setOpenHarmonyEnv() {
621
621
  const { OHOS_SDK_PATH, OHOS_SDK_NATIVE } = process.env
622
- const ndkPath = OHOS_SDK_PATH
623
- ? `${OHOS_SDK_NATIVE}/native`
624
- : OHOS_SDK_NATIVE
622
+ const ndkPath = OHOS_SDK_PATH ? `${OHOS_SDK_PATH}/native` : OHOS_SDK_NATIVE
625
623
  // @ts-expect-error
626
624
  if (!ndkPath && process.platform !== 'openharmony') {
627
625
  debug.warn(
@@ -880,10 +878,8 @@ class Builder {
880
878
  return []
881
879
  }
882
880
 
883
- const exports = await generateTypeDef({
881
+ const { exports, dts } = await generateTypeDef({
884
882
  typeDefDir,
885
- outputDir: this.outputDir,
886
- dts: this.options.dts,
887
883
  noDtsHeader: this.options.noDtsHeader,
888
884
  dtsHeader: this.options.dtsHeader,
889
885
  configDtsHeader: this.config.dtsHeader,
@@ -892,6 +888,17 @@ class Builder {
892
888
  cwd: this.options.cwd,
893
889
  })
894
890
 
891
+ const dest = join(this.outputDir, this.options.dts ?? 'index.d.ts')
892
+
893
+ try {
894
+ debug('Writing type def to:')
895
+ debug(' %i', dest)
896
+ await writeFileAsync(dest, dts, 'utf-8')
897
+ } catch (e) {
898
+ debug.error('Failed to write type def file')
899
+ debug.error(e as Error)
900
+ }
901
+
895
902
  if (exports.length > 0) {
896
903
  const dest = join(this.outputDir, this.options.dts ?? 'index.d.ts')
897
904
  this.outputs.push({ kind: 'dts', path: dest })
@@ -1044,8 +1051,6 @@ export async function writeJsBinding(
1044
1051
 
1045
1052
  export interface GenerateTypeDefOptions {
1046
1053
  typeDefDir: string
1047
- outputDir: string
1048
- dts?: string
1049
1054
  noDtsHeader?: boolean
1050
1055
  dtsHeader?: string
1051
1056
  dtsHeaderFile?: string
@@ -1057,13 +1062,11 @@ export interface GenerateTypeDefOptions {
1057
1062
 
1058
1063
  export async function generateTypeDef(
1059
1064
  options: GenerateTypeDefOptions,
1060
- ): Promise<string[]> {
1065
+ ): Promise<{ exports: string[]; dts: string }> {
1061
1066
  if (!(await dirExistsAsync(options.typeDefDir))) {
1062
- return []
1067
+ return { exports: [], dts: '' }
1063
1068
  }
1064
1069
 
1065
- const dest = join(options.outputDir, options.dts ?? 'index.d.ts')
1066
-
1067
1070
  let header = ''
1068
1071
  let dts = ''
1069
1072
  let exports: string[] = []
@@ -1094,7 +1097,7 @@ export async function generateTypeDef(
1094
1097
 
1095
1098
  if (!files.length) {
1096
1099
  debug('No type def files found. Skip generating dts file.')
1097
- return []
1100
+ return { exports: [], dts: '' }
1098
1101
  }
1099
1102
 
1100
1103
  for (const file of files) {
@@ -1130,14 +1133,8 @@ export type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array
1130
1133
 
1131
1134
  dts = header + dts
1132
1135
 
1133
- try {
1134
- debug('Writing type def to:')
1135
- debug(' %i', dest)
1136
- await writeFileAsync(dest, dts, 'utf-8')
1137
- } catch (e) {
1138
- debug.error('Failed to write type def file')
1139
- debug.error(e as Error)
1136
+ return {
1137
+ exports,
1138
+ dts,
1140
1139
  }
1141
-
1142
- return exports
1143
1140
  }
@@ -146,7 +146,7 @@ function requireNative() {
146
146
  }
147
147
  } else if (process.platform === 'win32') {
148
148
  if (process.arch === 'x64') {
149
- if (process.report?.getReport?.()?.header?.osName?.startsWith?.('MINGW')) {
149
+ if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
150
150
  ${requireTuple('win32-x64-gnu')}
151
151
  } else {
152
152
  ${requireTuple('win32-x64-msvc')}
package/src/index.ts CHANGED
@@ -57,6 +57,40 @@ export class NapiCli {
57
57
  version = version
58
58
  }
59
59
 
60
+ export function createBuildCommand(args: string[]): BuildCommand {
61
+ return cli.process(['build', ...args]) as BuildCommand
62
+ }
63
+
64
+ export function createArtifactsCommand(args: string[]): ArtifactsCommand {
65
+ return cli.process(['artifacts', ...args]) as ArtifactsCommand
66
+ }
67
+
68
+ export function createCreateNpmDirsCommand(
69
+ args: string[],
70
+ ): CreateNpmDirsCommand {
71
+ return cli.process(['create-npm-dirs', ...args]) as CreateNpmDirsCommand
72
+ }
73
+
74
+ export function createPrePublishCommand(args: string[]): PrePublishCommand {
75
+ return cli.process(['pre-publish', ...args]) as PrePublishCommand
76
+ }
77
+
78
+ export function createRenameCommand(args: string[]): RenameCommand {
79
+ return cli.process(['rename', ...args]) as RenameCommand
80
+ }
81
+
82
+ export function createUniversalizeCommand(args: string[]): UniversalizeCommand {
83
+ return cli.process(['universalize', ...args]) as UniversalizeCommand
84
+ }
85
+
86
+ export function createVersionCommand(args: string[]): VersionCommand {
87
+ return cli.process(['version', ...args]) as VersionCommand
88
+ }
89
+
90
+ export function createNewCommand(args: string[]): NewCommand {
91
+ return cli.process(['new', ...args]) as NewCommand
92
+ }
93
+
60
94
  export { parseTriple } from './utils/target.js'
61
95
  export {
62
96
  type GenerateTypeDefOptions,
@@ -64,3 +98,4 @@ export {
64
98
  writeJsBinding,
65
99
  generateTypeDef,
66
100
  } from './api/build.js'
101
+ export { readNapiConfig } from './utils/config.js'