@napi-rs/cli 3.0.0-alpha.55 → 3.0.0-alpha.57
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/dist/api/build.js +17 -10
- package/dist/api/build.js.map +1 -1
- package/dist/def/artifacts.d.ts +2 -2
- package/dist/def/build.d.ts +2 -2
- package/dist/def/build.js +2 -2
- package/dist/def/create-npm-dirs.d.ts +1 -1
- package/dist/def/new.d.ts +2 -2
- package/dist/def/pre-publish.d.ts +3 -3
- package/dist/def/rename.d.ts +6 -6
- package/dist/def/universalize.d.ts +1 -1
- package/dist/def/version.d.ts +1 -1
- package/dist/index.cjs +890 -16073
- package/dist/utils/misc.d.ts +0 -1
- package/dist/utils/target.d.ts +0 -1
- package/dist/utils/typegen.js +16 -7
- package/dist/utils/typegen.js.map +1 -1
- package/package.json +5 -5
- package/src/api/build.ts +40 -32
- package/src/def/build.ts +4 -4
- package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
- package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +316 -316
- package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
- package/src/utils/typegen.ts +19 -6
package/dist/utils/misc.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { readFile, writeFile, copyFile, mkdir, unlink, stat, readdir } from 'node:fs';
|
|
3
2
|
export declare const readFileAsync: typeof readFile.__promisify__;
|
|
4
3
|
export declare const writeFileAsync: typeof writeFile.__promisify__;
|
package/dist/utils/target.d.ts
CHANGED
package/dist/utils/typegen.js
CHANGED
|
@@ -14,7 +14,7 @@ var TypeDefKind;
|
|
|
14
14
|
TypeDefKind["Struct"] = "struct";
|
|
15
15
|
TypeDefKind["Impl"] = "impl";
|
|
16
16
|
})(TypeDefKind || (TypeDefKind = {}));
|
|
17
|
-
function prettyPrint(line, constEnum, ident) {
|
|
17
|
+
function prettyPrint(line, constEnum, ident, ambient = false) {
|
|
18
18
|
let s = line.js_doc ?? '';
|
|
19
19
|
switch (line.kind) {
|
|
20
20
|
case TypeDefKind.Interface:
|
|
@@ -22,27 +22,36 @@ function prettyPrint(line, constEnum, ident) {
|
|
|
22
22
|
break;
|
|
23
23
|
case TypeDefKind.Enum:
|
|
24
24
|
const enumName = constEnum ? 'const enum' : 'enum';
|
|
25
|
-
s +=
|
|
25
|
+
s += `${exportDeclare(ambient)} ${enumName} ${line.name} {\n${line.def}\n}`;
|
|
26
26
|
break;
|
|
27
27
|
case TypeDefKind.StringEnum:
|
|
28
28
|
if (constEnum) {
|
|
29
|
-
s +=
|
|
29
|
+
s += `${exportDeclare(ambient)} const enum ${line.name} {\n${line.def}\n}`;
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
32
|
s += `export type ${line.name} = ${line.def.replaceAll(/.*=/g, '').replaceAll(',', '|')};`;
|
|
33
33
|
}
|
|
34
34
|
break;
|
|
35
35
|
case TypeDefKind.Struct:
|
|
36
|
-
s +=
|
|
36
|
+
s += `${exportDeclare(ambient)} class ${line.name} {\n${line.def}\n}`;
|
|
37
37
|
if (line.original_name && line.original_name !== line.name) {
|
|
38
38
|
s += `\nexport type ${line.original_name} = ${line.name}`;
|
|
39
39
|
}
|
|
40
40
|
break;
|
|
41
|
+
case TypeDefKind.Fn:
|
|
42
|
+
s += `${exportDeclare(ambient)} ${line.def}`;
|
|
43
|
+
break;
|
|
41
44
|
default:
|
|
42
45
|
s += line.def;
|
|
43
46
|
}
|
|
44
47
|
return correctStringIdent(s, ident);
|
|
45
48
|
}
|
|
49
|
+
function exportDeclare(ambient) {
|
|
50
|
+
if (ambient) {
|
|
51
|
+
return 'export';
|
|
52
|
+
}
|
|
53
|
+
return 'export declare';
|
|
54
|
+
}
|
|
46
55
|
export async function processTypeDef(intermediateTypeFile, constEnum, header) {
|
|
47
56
|
const exports = [];
|
|
48
57
|
const defs = await readIntermediateTypeFile(intermediateTypeFile);
|
|
@@ -72,16 +81,16 @@ export async function processTypeDef(intermediateTypeFile, constEnum, header) {
|
|
|
72
81
|
}
|
|
73
82
|
else {
|
|
74
83
|
exports.push(namespace);
|
|
75
|
-
dts += `export namespace ${namespace} {\n`;
|
|
84
|
+
dts += `export declare namespace ${namespace} {\n`;
|
|
76
85
|
for (const def of defs) {
|
|
77
|
-
dts += prettyPrint(def, constEnum, 2) + '\n';
|
|
86
|
+
dts += prettyPrint(def, constEnum, 2, true) + '\n';
|
|
78
87
|
}
|
|
79
88
|
dts += '}\n\n';
|
|
80
89
|
}
|
|
81
90
|
});
|
|
82
91
|
if (dts.indexOf('ExternalObject<') > -1) {
|
|
83
92
|
header += `
|
|
84
|
-
export class ExternalObject<T> {
|
|
93
|
+
export declare class ExternalObject<T> {
|
|
85
94
|
readonly '': {
|
|
86
95
|
readonly '': unique symbol
|
|
87
96
|
[K: symbol]: T
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../src/utils/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,mBAAmB,GAAG,sBAAsB,CAAA;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG;;CAEtC,CAAA;AAED,IAAK,WAQJ;AARD,WAAK,WAAW;IACd,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,yCAA0B,CAAA;IAC1B,sCAAuB,CAAA;IACvB,wBAAS,CAAA;IACT,gCAAiB,CAAA;IACjB,4BAAa,CAAA;AACf,CAAC,EARI,WAAW,KAAX,WAAW,QAQf;AAWD,SAAS,WAAW,CAClB,IAAiB,EACjB,SAAkB,EAClB,KAAa;
|
|
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.
|
|
3
|
+
"version": "3.0.0-alpha.57",
|
|
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",
|
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@napi-rs/cross-toolchain": "^0.0.16",
|
|
71
71
|
"@napi-rs/wasm-tools": "^0.0.2",
|
|
72
|
-
"@octokit/rest": "^
|
|
72
|
+
"@octokit/rest": "^21.0.0",
|
|
73
73
|
"clipanion": "^3.2.1",
|
|
74
74
|
"colorette": "^2.0.20",
|
|
75
75
|
"debug": "^4.3.4",
|
|
76
|
-
"emnapi": "1.
|
|
76
|
+
"emnapi": "1.2.0",
|
|
77
77
|
"inquirer": "^9.2.13",
|
|
78
78
|
"js-yaml": "^4.1.0",
|
|
79
79
|
"lodash-es": "^4.17.21",
|
|
@@ -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.
|
|
96
|
+
"esbuild": "^0.23.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": "
|
|
132
|
+
"gitHead": "488762791dc31a3a9b156fb214ab3a6af9b4aa6a"
|
|
133
133
|
}
|
package/src/api/build.ts
CHANGED
|
@@ -517,10 +517,10 @@ class Builder {
|
|
|
517
517
|
Object.assign(this.envs, {
|
|
518
518
|
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-android24-clang`,
|
|
519
519
|
CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-androideabi24-clang`,
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
520
|
+
TARGET_CC: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-${targetPlatform}-clang`,
|
|
521
|
+
TARGET_CXX: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/${targetArch}-linux-${targetPlatform}-clang++`,
|
|
522
|
+
TARGET_AR: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/llvm-ar`,
|
|
523
|
+
TARGET_RANLIB: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin/llvm-ranlib`,
|
|
524
524
|
ANDROID_NDK: ANDROID_NDK_LATEST_HOME,
|
|
525
525
|
PATH: `${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/${hostPlatform}-x86_64/bin:${process.env.PATH}`,
|
|
526
526
|
})
|
|
@@ -671,40 +671,41 @@ class Builder {
|
|
|
671
671
|
})
|
|
672
672
|
}
|
|
673
673
|
|
|
674
|
-
const
|
|
674
|
+
const wasmBinaryName = await this.copyArtifact()
|
|
675
675
|
|
|
676
676
|
// only for cdylib
|
|
677
677
|
if (this.cdyLibName) {
|
|
678
678
|
const idents = await this.generateTypeDef()
|
|
679
679
|
const intermediateWasiRegisterFile = this.envs.WASI_REGISTER_TMP_PATH
|
|
680
|
-
const wasiRegisterFunctions =
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
)
|
|
692
|
-
|
|
680
|
+
const wasiRegisterFunctions = this.config.targets.some(
|
|
681
|
+
(t) => t.platform === 'wasi',
|
|
682
|
+
)
|
|
683
|
+
? await (async function readIntermediateWasiRegisterFile() {
|
|
684
|
+
const fileContent = await readFileAsync(
|
|
685
|
+
intermediateWasiRegisterFile,
|
|
686
|
+
'utf8',
|
|
687
|
+
).catch((err) => {
|
|
688
|
+
console.warn(
|
|
689
|
+
`Read ${colors.yellowBright(
|
|
690
|
+
intermediateWasiRegisterFile,
|
|
691
|
+
)} failed, reason: ${err.message}`,
|
|
692
|
+
)
|
|
693
|
+
return ``
|
|
694
|
+
})
|
|
695
|
+
return fileContent
|
|
696
|
+
.split('\n')
|
|
697
|
+
.map((l) => l.trim())
|
|
698
|
+
.filter((l) => l.length)
|
|
699
|
+
.map((line) => {
|
|
700
|
+
const [_, fn] = line.split(':')
|
|
701
|
+
return fn.trim()
|
|
693
702
|
})
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
.map((l) => l.trim())
|
|
697
|
-
.filter((l) => l.length)
|
|
698
|
-
.map((line) => {
|
|
699
|
-
const [_, fn] = line.split(':')
|
|
700
|
-
return fn.trim()
|
|
701
|
-
})
|
|
702
|
-
})()
|
|
703
|
-
: []
|
|
703
|
+
})()
|
|
704
|
+
: []
|
|
704
705
|
const jsOutput = await this.writeJsBinding(idents)
|
|
705
706
|
const wasmBindingsOutput = await this.writeWasiBinding(
|
|
706
707
|
wasiRegisterFunctions,
|
|
707
|
-
|
|
708
|
+
wasmBinaryName ?? 'index.wasm',
|
|
708
709
|
idents,
|
|
709
710
|
)
|
|
710
711
|
if (jsOutput) {
|
|
@@ -719,7 +720,7 @@ class Builder {
|
|
|
719
720
|
}
|
|
720
721
|
|
|
721
722
|
private async copyArtifact() {
|
|
722
|
-
const [srcName, destName] = this.getArtifactNames()
|
|
723
|
+
const [srcName, destName, wasmBinaryName] = this.getArtifactNames()
|
|
723
724
|
if (!srcName || !destName) {
|
|
724
725
|
return
|
|
725
726
|
}
|
|
@@ -778,7 +779,7 @@ class Builder {
|
|
|
778
779
|
kind: dest.endsWith('.node') ? 'node' : isWasm ? 'wasm' : 'exe',
|
|
779
780
|
path: dest,
|
|
780
781
|
})
|
|
781
|
-
return
|
|
782
|
+
return wasmBinaryName
|
|
782
783
|
} catch (e) {
|
|
783
784
|
throw new Error('Failed to copy artifact', {
|
|
784
785
|
cause: e,
|
|
@@ -789,6 +790,7 @@ class Builder {
|
|
|
789
790
|
private getArtifactNames() {
|
|
790
791
|
if (this.cdyLibName) {
|
|
791
792
|
const cdyLib = this.cdyLibName.replace(/-/g, '_')
|
|
793
|
+
const wasiTarget = this.config.targets.find((t) => t.platform === 'wasi')
|
|
792
794
|
|
|
793
795
|
const srcName =
|
|
794
796
|
this.target.platform === 'darwin'
|
|
@@ -812,7 +814,13 @@ class Builder {
|
|
|
812
814
|
destName += '.node'
|
|
813
815
|
}
|
|
814
816
|
|
|
815
|
-
return [
|
|
817
|
+
return [
|
|
818
|
+
srcName,
|
|
819
|
+
destName,
|
|
820
|
+
wasiTarget
|
|
821
|
+
? `${this.config.binaryName}.${wasiTarget.platformArchABI}.wasm`
|
|
822
|
+
: null,
|
|
823
|
+
]
|
|
816
824
|
} else if (this.binName) {
|
|
817
825
|
const srcName =
|
|
818
826
|
this.target.platform === 'win32' ? `${this.binName}.exe` : this.binName
|
package/src/def/build.ts
CHANGED
|
@@ -57,7 +57,7 @@ export abstract class BaseBuildCommand extends Command {
|
|
|
57
57
|
|
|
58
58
|
jsBinding?: string = Option.String('--js', {
|
|
59
59
|
description:
|
|
60
|
-
'Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--
|
|
60
|
+
'Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output-dir`.',
|
|
61
61
|
})
|
|
62
62
|
|
|
63
63
|
noJsBinding?: boolean = Option.Boolean('--no-js', {
|
|
@@ -67,7 +67,7 @@ export abstract class BaseBuildCommand extends Command {
|
|
|
67
67
|
|
|
68
68
|
dts?: string = Option.String('--dts', {
|
|
69
69
|
description:
|
|
70
|
-
'Path and filename of generated type def file. Relative to `--
|
|
70
|
+
'Path and filename of generated type def file. Relative to `--output-dir`',
|
|
71
71
|
})
|
|
72
72
|
|
|
73
73
|
dtsHeader?: string = Option.String('--dts-header', {
|
|
@@ -215,7 +215,7 @@ export interface BuildOptions {
|
|
|
215
215
|
*/
|
|
216
216
|
constEnum?: boolean
|
|
217
217
|
/**
|
|
218
|
-
* Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--
|
|
218
|
+
* Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output-dir`.
|
|
219
219
|
*/
|
|
220
220
|
jsBinding?: string
|
|
221
221
|
/**
|
|
@@ -223,7 +223,7 @@ export interface BuildOptions {
|
|
|
223
223
|
*/
|
|
224
224
|
noJsBinding?: boolean
|
|
225
225
|
/**
|
|
226
|
-
* Path and filename of generated type def file. Relative to `--
|
|
226
|
+
* Path and filename of generated type def file. Relative to `--output-dir`
|
|
227
227
|
*/
|
|
228
228
|
dts?: string
|
|
229
229
|
/**
|