@napi-rs/cli 3.0.0-alpha.9 → 3.0.0-alpha.91
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/cli.mjs +1 -1
- package/dist/api/__tests__/new.spec.d.ts +1 -0
- package/dist/api/build.d.ts +1 -1
- package/dist/api/templates/ci-template.d.ts +3 -1
- package/dist/api/templates/ci.yml.d.ts +3 -1
- package/dist/api/templates/js-binding.d.ts +1 -0
- package/dist/api/templates/load-wasi-template.d.ts +2 -0
- package/dist/api/templates/package.json.d.ts +9 -2
- package/dist/api/templates/wasi-worker-template.d.ts +2 -0
- package/dist/cli.js +3867 -15
- package/dist/def/artifacts.d.ts +21 -1
- package/dist/def/build.d.ts +149 -4
- package/dist/def/create-npm-dirs.d.ts +10 -0
- package/dist/def/new.d.ts +25 -7
- package/dist/def/pre-publish.d.ts +12 -2
- package/dist/def/rename.d.ts +16 -6
- package/dist/def/universalize.d.ts +10 -0
- package/dist/def/version.d.ts +10 -0
- package/dist/index.cjs +9946 -15669
- package/dist/index.js +3618 -32
- package/dist/utils/__tests__/config.spec.d.ts +1 -0
- package/dist/utils/config.d.ts +48 -4
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/metadata.d.ts +13 -1
- package/dist/utils/misc.d.ts +3 -3
- package/dist/utils/read-config.d.ts +7 -0
- package/dist/utils/target.d.ts +7 -5
- package/dist/utils/typegen.d.ts +1 -1
- package/dist/utils/version.d.ts +2 -1
- package/package.json +38 -34
- package/src/api/__tests__/new.spec.ts +429 -0
- package/src/api/artifacts.ts +81 -9
- package/src/api/build.ts +498 -149
- package/src/api/create-npm-dirs.ts +57 -9
- package/src/api/new.ts +389 -122
- package/src/api/pre-publish.ts +13 -7
- package/src/api/rename.ts +103 -17
- package/src/api/templates/cargo.toml.ts +1 -0
- package/src/api/templates/ci-template.ts +150 -125
- package/src/api/templates/ci.yml.ts +27 -6
- package/src/api/templates/js-binding.ts +148 -220
- package/src/api/templates/load-wasi-template.ts +182 -0
- package/src/api/templates/package.json.ts +47 -5
- package/src/api/templates/wasi-worker-template.ts +122 -0
- package/src/api/universalize.ts +13 -8
- package/src/api/version.ts +5 -2
- package/src/commands/artifacts.ts +2 -2
- package/src/commands/build.ts +1 -1
- package/src/commands/new.ts +46 -45
- package/src/def/artifacts.ts +22 -3
- package/src/def/build.ts +55 -8
- package/src/def/create-npm-dirs.ts +9 -0
- package/src/def/new.ts +28 -3
- package/src/def/pre-publish.ts +12 -3
- package/src/def/rename.ts +11 -2
- package/src/def/universalize.ts +9 -0
- package/src/def/version.ts +9 -0
- package/src/utils/__tests__/__fixtures__/napi_type_def +130 -130
- package/src/utils/__tests__/__snapshots__/config.spec.ts.md +97 -0
- package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.md +28 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/typegen.spec.ts.md +316 -332
- package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/version.spec.ts.md +8 -7
- package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
- package/src/utils/__tests__/config.spec.ts +81 -0
- package/src/utils/cargo.ts +2 -2
- package/src/utils/config.ts +110 -9
- package/src/utils/index.ts +1 -1
- package/src/utils/log.ts +1 -1
- package/src/utils/metadata.ts +52 -14
- package/src/utils/misc.ts +21 -12
- package/src/utils/read-config.ts +20 -0
- package/src/utils/target.ts +22 -4
- package/src/utils/typegen.ts +87 -52
- package/src/utils/version.ts +10 -8
- package/dist/api/artifacts.js +0 -53
- package/dist/api/artifacts.js.map +0 -1
- package/dist/api/build.js +0 -498
- package/dist/api/build.js.map +0 -1
- package/dist/api/create-npm-dirs.js +0 -64
- package/dist/api/create-npm-dirs.js.map +0 -1
- package/dist/api/load-wasi-template.d.ts +0 -1
- package/dist/api/load-wasi-template.js +0 -64
- package/dist/api/load-wasi-template.js.map +0 -1
- package/dist/api/new.js +0 -155
- package/dist/api/new.js.map +0 -1
- package/dist/api/pre-publish.js +0 -158
- package/dist/api/pre-publish.js.map +0 -1
- package/dist/api/rename.js +0 -29
- package/dist/api/rename.js.map +0 -1
- package/dist/api/templates/.gitignore.js +0 -200
- package/dist/api/templates/.gitignore.js.map +0 -1
- package/dist/api/templates/.npmignore.js +0 -15
- package/dist/api/templates/.npmignore.js.map +0 -1
- package/dist/api/templates/build.rs.js +0 -5
- package/dist/api/templates/build.rs.js.map +0 -1
- package/dist/api/templates/cargo.toml.js +0 -26
- package/dist/api/templates/cargo.toml.js.map +0 -1
- package/dist/api/templates/ci-template.js +0 -578
- package/dist/api/templates/ci-template.js.map +0 -1
- package/dist/api/templates/ci.yml.js +0 -99
- package/dist/api/templates/ci.yml.js.map +0 -1
- package/dist/api/templates/index.js +0 -9
- package/dist/api/templates/index.js.map +0 -1
- package/dist/api/templates/js-binding.js +0 -293
- package/dist/api/templates/js-binding.js.map +0 -1
- package/dist/api/templates/lib.rs.js +0 -8
- package/dist/api/templates/lib.rs.js.map +0 -1
- package/dist/api/templates/package.json.js +0 -32
- package/dist/api/templates/package.json.js.map +0 -1
- package/dist/api/universalize.js +0 -39
- package/dist/api/universalize.js.map +0 -1
- package/dist/api/version.js +0 -17
- package/dist/api/version.js.map +0 -1
- package/dist/api/wasi-worker-template.d.ts +0 -1
- package/dist/api/wasi-worker-template.js +0 -53
- package/dist/api/wasi-worker-template.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/artifacts.js +0 -20
- package/dist/commands/artifacts.js.map +0 -1
- package/dist/commands/build.js +0 -35
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/create-npm-dirs.js +0 -8
- package/dist/commands/create-npm-dirs.js.map +0 -1
- package/dist/commands/help.js +0 -13
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/new.js +0 -110
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/pre-publish.js +0 -9
- package/dist/commands/pre-publish.js.map +0 -1
- package/dist/commands/rename.js +0 -8
- package/dist/commands/rename.js.map +0 -1
- package/dist/commands/universalize.js +0 -8
- package/dist/commands/universalize.js.map +0 -1
- package/dist/commands/version.js +0 -8
- package/dist/commands/version.js.map +0 -1
- package/dist/def/artifacts.js +0 -39
- package/dist/def/artifacts.js.map +0 -1
- package/dist/def/build.js +0 -118
- package/dist/def/build.js.map +0 -1
- package/dist/def/create-npm-dirs.js +0 -39
- package/dist/def/create-npm-dirs.js.map +0 -1
- package/dist/def/new.js +0 -67
- package/dist/def/new.js.map +0 -1
- package/dist/def/pre-publish.js +0 -57
- package/dist/def/pre-publish.js.map +0 -1
- package/dist/def/rename.js +0 -59
- package/dist/def/rename.js.map +0 -1
- package/dist/def/universalize.js +0 -34
- package/dist/def/universalize.js.map +0 -1
- package/dist/def/version.js +0 -34
- package/dist/def/version.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/utils/__tests__/target.spec.js +0 -11
- package/dist/utils/__tests__/target.spec.js.map +0 -1
- package/dist/utils/__tests__/typegen.spec.js +0 -42
- package/dist/utils/__tests__/typegen.spec.js.map +0 -1
- package/dist/utils/__tests__/version.spec.js +0 -6
- package/dist/utils/__tests__/version.spec.js.map +0 -1
- package/dist/utils/cargo.js +0 -34
- package/dist/utils/cargo.js.map +0 -1
- package/dist/utils/ci.d.ts +0 -11
- package/dist/utils/ci.js +0 -96
- package/dist/utils/ci.js.map +0 -1
- package/dist/utils/config.js +0 -43
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/index.js +0 -10
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/log.js +0 -15
- package/dist/utils/log.js.map +0 -1
- package/dist/utils/metadata.js +0 -20
- package/dist/utils/metadata.js.map +0 -1
- package/dist/utils/misc.js +0 -41
- package/dist/utils/misc.js.map +0 -1
- package/dist/utils/target.js +0 -121
- package/dist/utils/target.js.map +0 -1
- package/dist/utils/typegen.js +0 -179
- package/dist/utils/typegen.js.map +0 -1
- package/dist/utils/version.js +0 -60
- package/dist/utils/version.js.map +0 -1
- package/src/api/load-wasi-template.ts +0 -66
- package/src/api/wasi-worker-template.ts +0 -52
- package/src/utils/ci.ts +0 -111
package/src/utils/typegen.ts
CHANGED
|
@@ -10,7 +10,9 @@ export const DEFAULT_TYPE_DEF_HEADER = `/* auto-generated by NAPI-RS */
|
|
|
10
10
|
enum TypeDefKind {
|
|
11
11
|
Const = 'const',
|
|
12
12
|
Enum = 'enum',
|
|
13
|
+
StringEnum = 'string_enum',
|
|
13
14
|
Interface = 'interface',
|
|
15
|
+
Type = 'type',
|
|
14
16
|
Fn = 'fn',
|
|
15
17
|
Struct = 'struct',
|
|
16
18
|
Impl = 'impl',
|
|
@@ -29,6 +31,7 @@ function prettyPrint(
|
|
|
29
31
|
line: TypeDefLine,
|
|
30
32
|
constEnum: boolean,
|
|
31
33
|
ident: number,
|
|
34
|
+
ambient = false,
|
|
32
35
|
): string {
|
|
33
36
|
let s = line.js_doc ?? ''
|
|
34
37
|
switch (line.kind) {
|
|
@@ -36,18 +39,34 @@ function prettyPrint(
|
|
|
36
39
|
s += `export interface ${line.name} {\n${line.def}\n}`
|
|
37
40
|
break
|
|
38
41
|
|
|
42
|
+
case TypeDefKind.Type:
|
|
43
|
+
s += `export type ${line.name} = \n${line.def}`
|
|
44
|
+
break
|
|
45
|
+
|
|
39
46
|
case TypeDefKind.Enum:
|
|
40
47
|
const enumName = constEnum ? 'const enum' : 'enum'
|
|
41
|
-
s +=
|
|
48
|
+
s += `${exportDeclare(ambient)} ${enumName} ${line.name} {\n${line.def}\n}`
|
|
49
|
+
break
|
|
50
|
+
|
|
51
|
+
case TypeDefKind.StringEnum:
|
|
52
|
+
if (constEnum) {
|
|
53
|
+
s += `${exportDeclare(ambient)} const enum ${line.name} {\n${line.def}\n}`
|
|
54
|
+
} else {
|
|
55
|
+
s += `export type ${line.name} = ${line.def.replaceAll(/.*=/g, '').replaceAll(',', '|')};`
|
|
56
|
+
}
|
|
42
57
|
break
|
|
43
58
|
|
|
44
59
|
case TypeDefKind.Struct:
|
|
45
|
-
s +=
|
|
60
|
+
s += `${exportDeclare(ambient)} class ${line.name} {\n${line.def}\n}`
|
|
46
61
|
if (line.original_name && line.original_name !== line.name) {
|
|
47
62
|
s += `\nexport type ${line.original_name} = ${line.name}`
|
|
48
63
|
}
|
|
49
64
|
break
|
|
50
65
|
|
|
66
|
+
case TypeDefKind.Fn:
|
|
67
|
+
s += `${exportDeclare(ambient)} ${line.def}`
|
|
68
|
+
break
|
|
69
|
+
|
|
51
70
|
default:
|
|
52
71
|
s += line.def
|
|
53
72
|
}
|
|
@@ -55,79 +74,84 @@ function prettyPrint(
|
|
|
55
74
|
return correctStringIdent(s, ident)
|
|
56
75
|
}
|
|
57
76
|
|
|
77
|
+
function exportDeclare(ambient: boolean): string {
|
|
78
|
+
if (ambient) {
|
|
79
|
+
return 'export'
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return 'export declare'
|
|
83
|
+
}
|
|
84
|
+
|
|
58
85
|
export async function processTypeDef(
|
|
59
86
|
intermediateTypeFile: string,
|
|
60
87
|
constEnum: boolean,
|
|
61
|
-
header?: string,
|
|
62
88
|
) {
|
|
63
89
|
const exports: string[] = []
|
|
64
90
|
const defs = await readIntermediateTypeFile(intermediateTypeFile)
|
|
65
91
|
const groupedDefs = preprocessTypeDef(defs)
|
|
66
92
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
const dts =
|
|
94
|
+
sortBy(Array.from(groupedDefs), ([namespace]) => namespace)
|
|
95
|
+
.map(([namespace, defs]) => {
|
|
96
|
+
if (namespace === TOP_LEVEL_NAMESPACE) {
|
|
97
|
+
return defs
|
|
98
|
+
.map((def) => {
|
|
99
|
+
switch (def.kind) {
|
|
100
|
+
case TypeDefKind.Const:
|
|
101
|
+
case TypeDefKind.Enum:
|
|
102
|
+
case TypeDefKind.StringEnum:
|
|
103
|
+
case TypeDefKind.Fn:
|
|
104
|
+
case TypeDefKind.Struct: {
|
|
105
|
+
exports.push(def.name)
|
|
106
|
+
if (def.original_name && def.original_name !== def.name) {
|
|
107
|
+
exports.push(def.original_name)
|
|
108
|
+
}
|
|
109
|
+
break
|
|
110
|
+
}
|
|
111
|
+
default:
|
|
112
|
+
break
|
|
83
113
|
}
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
114
|
+
return prettyPrint(def, constEnum, 0)
|
|
115
|
+
})
|
|
116
|
+
.join('\n\n')
|
|
117
|
+
} else {
|
|
118
|
+
exports.push(namespace)
|
|
119
|
+
let declaration = ''
|
|
120
|
+
declaration += `export declare namespace ${namespace} {\n`
|
|
121
|
+
for (const def of defs) {
|
|
122
|
+
declaration += prettyPrint(def, constEnum, 2, true) + '\n'
|
|
88
123
|
}
|
|
124
|
+
declaration += '}'
|
|
125
|
+
return declaration
|
|
89
126
|
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
dts += `export namespace ${namespace} {\n`
|
|
93
|
-
for (const def of defs) {
|
|
94
|
-
dts += prettyPrint(def, constEnum, 2) + '\n'
|
|
95
|
-
}
|
|
96
|
-
dts += '}\n\n'
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
if (dts.indexOf('ExternalObject<') > -1) {
|
|
102
|
-
header += `
|
|
103
|
-
export class ExternalObject<T> {
|
|
104
|
-
readonly '': {
|
|
105
|
-
readonly '': unique symbol
|
|
106
|
-
[K: symbol]: T
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
`
|
|
110
|
-
}
|
|
127
|
+
})
|
|
128
|
+
.join('\n\n') + '\n'
|
|
111
129
|
|
|
112
130
|
return {
|
|
113
|
-
dts
|
|
131
|
+
dts,
|
|
114
132
|
exports,
|
|
115
133
|
}
|
|
116
134
|
}
|
|
117
135
|
|
|
118
136
|
async function readIntermediateTypeFile(file: string) {
|
|
119
137
|
const content = await readFileAsync(file, 'utf8')
|
|
138
|
+
|
|
120
139
|
const defs = content
|
|
121
140
|
.split('\n')
|
|
122
141
|
.filter(Boolean)
|
|
123
142
|
.map((line) => {
|
|
124
143
|
line = line.trim()
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
144
|
+
const parsed = JSON.parse(line) as TypeDefLine
|
|
145
|
+
// Convert escaped newlines back to actual newlines in js_doc fields
|
|
146
|
+
if (parsed.js_doc) {
|
|
147
|
+
parsed.js_doc = parsed.js_doc.replace(/\\n/g, '\n')
|
|
148
|
+
}
|
|
149
|
+
// Convert escaped newlines to actual newlines in def fields for struct/class/interface/type types
|
|
150
|
+
// where \n represents method/field separators that should be actual newlines
|
|
151
|
+
if (parsed.def) {
|
|
152
|
+
parsed.def = parsed.def.replace(/\\n/g, '\n')
|
|
129
153
|
}
|
|
130
|
-
return
|
|
154
|
+
return parsed
|
|
131
155
|
})
|
|
132
156
|
|
|
133
157
|
// move all `struct` def to the very top
|
|
@@ -170,6 +194,10 @@ function preprocessTypeDef(defs: TypeDefLine[]): Map<string, TypeDefLine[]> {
|
|
|
170
194
|
}
|
|
171
195
|
|
|
172
196
|
classDef.def += def.def
|
|
197
|
+
// Convert any remaining \n sequences in the merged def to actual newlines
|
|
198
|
+
if (classDef.def) {
|
|
199
|
+
classDef.def = classDef.def.replace(/\\n/g, '\n')
|
|
200
|
+
}
|
|
173
201
|
}
|
|
174
202
|
} else {
|
|
175
203
|
group.push(def)
|
|
@@ -192,13 +220,20 @@ export function correctStringIdent(src: string, ident: number): string {
|
|
|
192
220
|
const isInMultilineComment = line.startsWith('*')
|
|
193
221
|
const isClosingBracket = line.endsWith('}')
|
|
194
222
|
const isOpeningBracket = line.endsWith('{')
|
|
223
|
+
const isTypeDeclaration = line.endsWith('=')
|
|
224
|
+
const isTypeVariant = line.startsWith('|')
|
|
195
225
|
|
|
196
226
|
let rightIndent = ident
|
|
197
|
-
if (isOpeningBracket && !isInMultilineComment) {
|
|
227
|
+
if ((isOpeningBracket || isTypeDeclaration) && !isInMultilineComment) {
|
|
198
228
|
bracketDepth += 1
|
|
199
229
|
rightIndent += (bracketDepth - 1) * 2
|
|
200
230
|
} else {
|
|
201
|
-
if (
|
|
231
|
+
if (
|
|
232
|
+
isClosingBracket &&
|
|
233
|
+
bracketDepth > 0 &&
|
|
234
|
+
!isInMultilineComment &&
|
|
235
|
+
!isTypeVariant
|
|
236
|
+
) {
|
|
202
237
|
bracketDepth -= 1
|
|
203
238
|
}
|
|
204
239
|
rightIndent += bracketDepth * 2
|
package/src/utils/version.ts
CHANGED
|
@@ -7,20 +7,22 @@ export enum NapiVersion {
|
|
|
7
7
|
Napi6,
|
|
8
8
|
Napi7,
|
|
9
9
|
Napi8,
|
|
10
|
+
Napi9,
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
/// because node support new napi version in some minor version updates, so we might meet such situation:
|
|
13
14
|
/// `node v10.20.0` supports `napi5` and `napi6`, but `node v12.0.0` only support `napi4`,
|
|
14
|
-
/// by which, we can not tell directly napi version
|
|
15
|
+
/// by which, we can not tell directly napi version supportless from node version directly.
|
|
15
16
|
const NAPI_VERSION_MATRIX = new Map<NapiVersion, string>([
|
|
16
|
-
[NapiVersion.Napi1, '8.6.0'],
|
|
17
|
-
[NapiVersion.Napi2, '8.10.0 | 9.3.0'],
|
|
18
|
-
[NapiVersion.Napi3, '6.14.2 | 8.11.2 | 9.11.0'],
|
|
19
|
-
[NapiVersion.Napi4, '10.16.0 | 11.8.0'],
|
|
20
|
-
[NapiVersion.Napi5, '10.17.0 | 12.11.0'],
|
|
17
|
+
[NapiVersion.Napi1, '8.6.0 | 9.0.0 | 10.0.0'],
|
|
18
|
+
[NapiVersion.Napi2, '8.10.0 | 9.3.0 | 10.0.0'],
|
|
19
|
+
[NapiVersion.Napi3, '6.14.2 | 8.11.2 | 9.11.0 | 10.0.0'],
|
|
20
|
+
[NapiVersion.Napi4, '10.16.0 | 11.8.0 | 12.0.0'],
|
|
21
|
+
[NapiVersion.Napi5, '10.17.0 | 12.11.0 | 13.0.0'],
|
|
21
22
|
[NapiVersion.Napi6, '10.20.0 | 12.17.0 | 14.0.0'],
|
|
22
|
-
[NapiVersion.Napi7, '10.23.0 | 12.19.0 | 14.12.0'],
|
|
23
|
-
[NapiVersion.Napi8, '12.22.0 | 14.17.0 | 15.12.0'],
|
|
23
|
+
[NapiVersion.Napi7, '10.23.0 | 12.19.0 | 14.12.0 | 15.0.0'],
|
|
24
|
+
[NapiVersion.Napi8, '12.22.0 | 14.17.0 | 15.12.0 | 16.0.0'],
|
|
25
|
+
[NapiVersion.Napi9, '18.17.0 | 20.3.0 | 21.1.0'],
|
|
24
26
|
])
|
|
25
27
|
|
|
26
28
|
interface NodeVersion {
|
package/dist/api/artifacts.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { join, parse, resolve } from 'node:path';
|
|
2
|
-
import * as colors from 'colorette';
|
|
3
|
-
import { applyDefaultArtifactsOptions, } from '../def/artifacts.js';
|
|
4
|
-
import { readNapiConfig, debugFactory, readFileAsync, writeFileAsync, UniArchsByPlatform, readdirAsync, } from '../utils/index.js';
|
|
5
|
-
const debug = debugFactory('artifacts');
|
|
6
|
-
export async function collectArtifacts(userOptions) {
|
|
7
|
-
const options = applyDefaultArtifactsOptions(userOptions);
|
|
8
|
-
const packageJsonPath = resolve(options.cwd, options.packageJsonPath);
|
|
9
|
-
const { targets, binaryName } = await readNapiConfig(packageJsonPath);
|
|
10
|
-
const distDirs = targets.map((platform) => resolve(options.cwd, options.npmDir, platform.platformArchABI));
|
|
11
|
-
const universalSourceBins = new Set(targets
|
|
12
|
-
.filter((platform) => platform.arch === 'universal')
|
|
13
|
-
.flatMap((p) => UniArchsByPlatform[p.platform]?.map((a) => `${p.platform}-${a}`))
|
|
14
|
-
.filter(Boolean));
|
|
15
|
-
await collectNodeBinaries(resolve(options.cwd, options.outputDir)).then((output) => Promise.all(output.map(async (filePath) => {
|
|
16
|
-
debug.info(`Read [${colors.yellowBright(filePath)}]`);
|
|
17
|
-
const sourceContent = await readFileAsync(filePath);
|
|
18
|
-
const parsedName = parse(filePath);
|
|
19
|
-
const terms = parsedName.name.split('.');
|
|
20
|
-
const platformArchABI = terms.pop();
|
|
21
|
-
const _binaryName = terms.join('.');
|
|
22
|
-
if (_binaryName !== binaryName) {
|
|
23
|
-
debug.warn(`[${_binaryName}] is not matched with [${binaryName}], skip`);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const dir = distDirs.find((dir) => dir.includes(platformArchABI));
|
|
27
|
-
if (!dir && universalSourceBins.has(platformArchABI)) {
|
|
28
|
-
debug.warn(`[${platformArchABI}] has no dist dir but it is source bin for universal arch, skip`);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (!dir) {
|
|
32
|
-
throw new Error(`No dist dir found for ${filePath}`);
|
|
33
|
-
}
|
|
34
|
-
const distFilePath = join(dir, parsedName.base);
|
|
35
|
-
debug.info(`Write file content to [${colors.yellowBright(distFilePath)}]`);
|
|
36
|
-
await writeFileAsync(distFilePath, sourceContent);
|
|
37
|
-
const distFilePathLocal = join(parse(packageJsonPath).dir, parsedName.base);
|
|
38
|
-
debug.info(`Write file content to [${colors.yellowBright(distFilePathLocal)}]`);
|
|
39
|
-
await writeFileAsync(distFilePathLocal, sourceContent);
|
|
40
|
-
})));
|
|
41
|
-
}
|
|
42
|
-
async function collectNodeBinaries(root) {
|
|
43
|
-
const files = await readdirAsync(root, { withFileTypes: true });
|
|
44
|
-
const nodeBinaries = files
|
|
45
|
-
.filter((file) => file.isFile() && file.name.endsWith('.node'))
|
|
46
|
-
.map((file) => join(root, file.name));
|
|
47
|
-
const dirs = files.filter((file) => file.isDirectory());
|
|
48
|
-
for (const dir of dirs) {
|
|
49
|
-
nodeBinaries.push(...(await collectNodeBinaries(join(root, dir.name))));
|
|
50
|
-
}
|
|
51
|
-
return nodeBinaries;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=artifacts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/api/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEhD,OAAO,KAAK,MAAM,MAAM,WAAW,CAAA;AAEnC,OAAO,EACL,4BAA4B,GAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAA6B;IAClE,MAAM,OAAO,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAA;IAEzD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACrE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAC/D,CAAA;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,OAAO;SACJ,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC;SACnD,OAAO,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,CACxE;SACA,MAAM,CAAC,OAAO,CAAa,CAC/B,CAAA;IAED,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACpC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,WAAW,KAAK,UAAU,EAAE;YAC9B,KAAK,CAAC,IAAI,CACR,IAAI,WAAW,0BAA0B,UAAU,SAAS,CAC7D,CAAA;YACD,OAAM;SACP;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;QACjE,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YACpD,KAAK,CAAC,IAAI,CACR,IAAI,eAAe,iEAAiE,CACrF,CAAA;YACD,OAAM;SACP;QACD,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;SACrD;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/C,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAC/D,CAAA;QACD,MAAM,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,iBAAiB,GAAG,IAAI,CAC5B,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAC1B,UAAU,CAAC,IAAI,CAChB,CAAA;QACD,KAAK,CAAC,IAAI,CACR,0BAA0B,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CACpE,CAAA;QACD,MAAM,cAAc,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IACxD,CAAC,CAAC,CACH,CACJ,CAAA;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,KAAK;SACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;KACxE;IACD,OAAO,YAAY,CAAA;AACrB,CAAC"}
|