@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/dist/utils/typegen.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { sortBy } from 'lodash-es';
|
|
2
|
-
import { readFileAsync } from './misc.js';
|
|
3
|
-
const TOP_LEVEL_NAMESPACE = '__TOP_LEVEL_MODULE__';
|
|
4
|
-
export const DEFAULT_TYPE_DEF_HEADER = `/* auto-generated by NAPI-RS */
|
|
5
|
-
/* eslint-disable */
|
|
6
|
-
`;
|
|
7
|
-
var TypeDefKind;
|
|
8
|
-
(function (TypeDefKind) {
|
|
9
|
-
TypeDefKind["Const"] = "const";
|
|
10
|
-
TypeDefKind["Enum"] = "enum";
|
|
11
|
-
TypeDefKind["Interface"] = "interface";
|
|
12
|
-
TypeDefKind["Fn"] = "fn";
|
|
13
|
-
TypeDefKind["Struct"] = "struct";
|
|
14
|
-
TypeDefKind["Impl"] = "impl";
|
|
15
|
-
})(TypeDefKind || (TypeDefKind = {}));
|
|
16
|
-
function prettyPrint(line, constEnum, ident) {
|
|
17
|
-
let s = line.js_doc ?? '';
|
|
18
|
-
switch (line.kind) {
|
|
19
|
-
case TypeDefKind.Interface:
|
|
20
|
-
s += `export interface ${line.name} {\n${line.def}\n}`;
|
|
21
|
-
break;
|
|
22
|
-
case TypeDefKind.Enum:
|
|
23
|
-
const enumName = constEnum ? 'const enum' : 'enum';
|
|
24
|
-
s += `export ${enumName} ${line.name} {\n${line.def}\n}`;
|
|
25
|
-
break;
|
|
26
|
-
case TypeDefKind.Struct:
|
|
27
|
-
s += `export class ${line.name} {\n${line.def}\n}`;
|
|
28
|
-
if (line.original_name && line.original_name !== line.name) {
|
|
29
|
-
s += `\nexport type ${line.original_name} = ${line.name}`;
|
|
30
|
-
}
|
|
31
|
-
break;
|
|
32
|
-
default:
|
|
33
|
-
s += line.def;
|
|
34
|
-
}
|
|
35
|
-
return correctStringIdent(s, ident);
|
|
36
|
-
}
|
|
37
|
-
export async function processTypeDef(intermediateTypeFile, constEnum, header) {
|
|
38
|
-
const exports = [];
|
|
39
|
-
const defs = await readIntermediateTypeFile(intermediateTypeFile);
|
|
40
|
-
const groupedDefs = preprocessTypeDef(defs);
|
|
41
|
-
header = header ? header + '\n' : '';
|
|
42
|
-
let dts = '';
|
|
43
|
-
sortBy(Array.from(groupedDefs), ([namespace]) => namespace).forEach(([namespace, defs]) => {
|
|
44
|
-
if (namespace === TOP_LEVEL_NAMESPACE) {
|
|
45
|
-
for (const def of defs) {
|
|
46
|
-
dts += prettyPrint(def, constEnum, 0) + '\n\n';
|
|
47
|
-
switch (def.kind) {
|
|
48
|
-
case TypeDefKind.Const:
|
|
49
|
-
case TypeDefKind.Enum:
|
|
50
|
-
case TypeDefKind.Fn:
|
|
51
|
-
case TypeDefKind.Struct: {
|
|
52
|
-
exports.push(def.name);
|
|
53
|
-
if (def.original_name && def.original_name !== def.name) {
|
|
54
|
-
exports.push(def.original_name);
|
|
55
|
-
}
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
default:
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
exports.push(namespace);
|
|
65
|
-
dts += `export namespace ${namespace} {\n`;
|
|
66
|
-
for (const def of defs) {
|
|
67
|
-
dts += prettyPrint(def, constEnum, 2) + '\n';
|
|
68
|
-
}
|
|
69
|
-
dts += '}\n\n';
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
if (dts.indexOf('ExternalObject<') > -1) {
|
|
73
|
-
header += `
|
|
74
|
-
export class ExternalObject<T> {
|
|
75
|
-
readonly '': {
|
|
76
|
-
readonly '': unique symbol
|
|
77
|
-
[K: symbol]: T
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
`;
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
dts: header + dts,
|
|
84
|
-
exports,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
async function readIntermediateTypeFile(file) {
|
|
88
|
-
const content = await readFileAsync(file, 'utf8');
|
|
89
|
-
const defs = content
|
|
90
|
-
.split('\n')
|
|
91
|
-
.filter(Boolean)
|
|
92
|
-
.map((line) => {
|
|
93
|
-
line = line.trim();
|
|
94
|
-
if (!line.startsWith('{')) {
|
|
95
|
-
// crateName:{ "def": "", ... }
|
|
96
|
-
const start = line.indexOf(':') + 1;
|
|
97
|
-
line = line.slice(start);
|
|
98
|
-
}
|
|
99
|
-
return JSON.parse(line);
|
|
100
|
-
});
|
|
101
|
-
// move all `struct` def to the very top
|
|
102
|
-
// and order the rest alphabetically.
|
|
103
|
-
return defs.sort((a, b) => {
|
|
104
|
-
if (a.kind === TypeDefKind.Struct) {
|
|
105
|
-
if (b.kind === TypeDefKind.Struct) {
|
|
106
|
-
return a.name.localeCompare(b.name);
|
|
107
|
-
}
|
|
108
|
-
return -1;
|
|
109
|
-
}
|
|
110
|
-
else if (b.kind === TypeDefKind.Struct) {
|
|
111
|
-
return 1;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return a.name.localeCompare(b.name);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
function preprocessTypeDef(defs) {
|
|
119
|
-
const namespaceGrouped = new Map();
|
|
120
|
-
const classDefs = new Map();
|
|
121
|
-
for (const def of defs) {
|
|
122
|
-
const namespace = def.js_mod ?? TOP_LEVEL_NAMESPACE;
|
|
123
|
-
if (!namespaceGrouped.has(namespace)) {
|
|
124
|
-
namespaceGrouped.set(namespace, []);
|
|
125
|
-
}
|
|
126
|
-
const group = namespaceGrouped.get(namespace);
|
|
127
|
-
if (def.kind === TypeDefKind.Struct) {
|
|
128
|
-
group.push(def);
|
|
129
|
-
classDefs.set(def.name, def);
|
|
130
|
-
}
|
|
131
|
-
else if (def.kind === TypeDefKind.Impl) {
|
|
132
|
-
// merge `impl` into class definition
|
|
133
|
-
const classDef = classDefs.get(def.name);
|
|
134
|
-
if (classDef) {
|
|
135
|
-
if (classDef.def) {
|
|
136
|
-
classDef.def += '\n';
|
|
137
|
-
}
|
|
138
|
-
classDef.def += def.def;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
group.push(def);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return namespaceGrouped;
|
|
146
|
-
}
|
|
147
|
-
export function correctStringIdent(src, ident) {
|
|
148
|
-
let bracketDepth = 0;
|
|
149
|
-
const result = src
|
|
150
|
-
.split('\n')
|
|
151
|
-
.map((line) => {
|
|
152
|
-
line = line.trim();
|
|
153
|
-
if (line === '') {
|
|
154
|
-
return '';
|
|
155
|
-
}
|
|
156
|
-
const isInMultilineComment = line.startsWith('*');
|
|
157
|
-
const isClosingBracket = line.endsWith('}');
|
|
158
|
-
const isOpeningBracket = line.endsWith('{');
|
|
159
|
-
let rightIndent = ident;
|
|
160
|
-
if (isOpeningBracket && !isInMultilineComment) {
|
|
161
|
-
bracketDepth += 1;
|
|
162
|
-
rightIndent += (bracketDepth - 1) * 2;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
if (isClosingBracket && bracketDepth > 0 && !isInMultilineComment) {
|
|
166
|
-
bracketDepth -= 1;
|
|
167
|
-
}
|
|
168
|
-
rightIndent += bracketDepth * 2;
|
|
169
|
-
}
|
|
170
|
-
if (isInMultilineComment) {
|
|
171
|
-
rightIndent += 1;
|
|
172
|
-
}
|
|
173
|
-
const s = `${' '.repeat(rightIndent)}${line}`;
|
|
174
|
-
return s;
|
|
175
|
-
})
|
|
176
|
-
.join('\n');
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=typegen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,WAOJ;AAPD,WAAK,WAAW;IACd,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,wBAAS,CAAA;IACT,gCAAiB,CAAA;IACjB,4BAAa,CAAA;AACf,CAAC,EAPI,WAAW,KAAX,WAAW,QAOf;AAWD,SAAS,WAAW,CAClB,IAAiB,EACjB,SAAkB,EAClB,KAAa;IAEb,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;IACzB,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,WAAW,CAAC,SAAS;YACxB,CAAC,IAAI,oBAAoB,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,CAAA;YACtD,MAAK;QAEP,KAAK,WAAW,CAAC,IAAI;YACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAA;YAClD,CAAC,IAAI,UAAU,QAAQ,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,CAAA;YACxD,MAAK;QAEP,KAAK,WAAW,CAAC,MAAM;YACrB,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,CAAA;YAClD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC1D,CAAC,IAAI,iBAAiB,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;aAC1D;YACD,MAAK;QAEP;YACE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAA;KAChB;IAED,OAAO,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,oBAA4B,EAC5B,SAAkB,EAClB,MAAe;IAEf,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,oBAAoB,CAAC,CAAA;IACjE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAE3C,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CACjE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,IAAI,SAAS,KAAK,mBAAmB,EAAE;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,MAAM,CAAA;gBAC9C,QAAQ,GAAG,CAAC,IAAI,EAAE;oBAChB,KAAK,WAAW,CAAC,KAAK,CAAC;oBACvB,KAAK,WAAW,CAAC,IAAI,CAAC;oBACtB,KAAK,WAAW,CAAC,EAAE,CAAC;oBACpB,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;wBACtB,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,IAAI,EAAE;4BACvD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;yBAChC;wBACD,MAAK;qBACN;oBACD;wBACE,MAAK;iBACR;aACF;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,GAAG,IAAI,oBAAoB,SAAS,MAAM,CAAA;YAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;aAC7C;YACD,GAAG,IAAI,OAAO,CAAA;SACf;IACH,CAAC,CACF,CAAA;IAED,IAAI,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;QACvC,MAAM,IAAI;;;;;;;CAOb,CAAA;KACE;IAED,OAAO;QACL,GAAG,EAAE,MAAM,GAAG,GAAG;QACjB,OAAO;KACR,CAAA;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,OAAO;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,+BAA+B;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAA;IACxC,CAAC,CAAC,CAAA;IAEJ,wCAAwC;IACxC,qCAAqC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE;gBACjC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;aACpC;YACD,OAAO,CAAC,CAAC,CAAA;SACV;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE;YACxC,OAAO,CAAC,CAAA;SACT;aAAM;YACL,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;SACpC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAA;IACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAA;IAEhD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,IAAI,mBAAmB,CAAA;QACnD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACpC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;SACpC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;QAE9C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACf,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;SAC7B;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE;YACxC,qCAAqC;YACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAChB,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAA;iBACrB;gBAED,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAA;aACxB;SACF;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAChB;KACF;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAAa;IAC3D,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,MAAM,MAAM,GAAG,GAAG;SACf,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,OAAO,EAAE,CAAA;SACV;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAE3C,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,IAAI,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;YAC7C,YAAY,IAAI,CAAC,CAAA;YACjB,WAAW,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;SACtC;aAAM;YACL,IAAI,gBAAgB,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACjE,YAAY,IAAI,CAAC,CAAA;aAClB;YACD,WAAW,IAAI,YAAY,GAAG,CAAC,CAAA;SAChC;QAED,IAAI,oBAAoB,EAAE;YACxB,WAAW,IAAI,CAAC,CAAA;SACjB;QAED,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAA;QAE7C,OAAO,CAAC,CAAA;IACV,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/utils/version.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
export var NapiVersion;
|
|
2
|
-
(function (NapiVersion) {
|
|
3
|
-
NapiVersion[NapiVersion["Napi1"] = 1] = "Napi1";
|
|
4
|
-
NapiVersion[NapiVersion["Napi2"] = 2] = "Napi2";
|
|
5
|
-
NapiVersion[NapiVersion["Napi3"] = 3] = "Napi3";
|
|
6
|
-
NapiVersion[NapiVersion["Napi4"] = 4] = "Napi4";
|
|
7
|
-
NapiVersion[NapiVersion["Napi5"] = 5] = "Napi5";
|
|
8
|
-
NapiVersion[NapiVersion["Napi6"] = 6] = "Napi6";
|
|
9
|
-
NapiVersion[NapiVersion["Napi7"] = 7] = "Napi7";
|
|
10
|
-
NapiVersion[NapiVersion["Napi8"] = 8] = "Napi8";
|
|
11
|
-
})(NapiVersion || (NapiVersion = {}));
|
|
12
|
-
/// because node support new napi version in some minor version updates, so we might meet such situation:
|
|
13
|
-
/// `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 supportness from node version directly.
|
|
15
|
-
const NAPI_VERSION_MATRIX = new Map([
|
|
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'],
|
|
21
|
-
[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'],
|
|
24
|
-
]);
|
|
25
|
-
function parseNodeVersion(v) {
|
|
26
|
-
const matches = v.match(/v?([0-9]+)\.([0-9]+)\.([0-9]+)/i);
|
|
27
|
-
if (!matches) {
|
|
28
|
-
throw new Error('Unknown node version number: ' + v);
|
|
29
|
-
}
|
|
30
|
-
const [, major, minor, patch] = matches;
|
|
31
|
-
return {
|
|
32
|
-
major: parseInt(major),
|
|
33
|
-
minor: parseInt(minor),
|
|
34
|
-
patch: parseInt(patch),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function requiredNodeVersions(napiVersion) {
|
|
38
|
-
const requirement = NAPI_VERSION_MATRIX.get(napiVersion);
|
|
39
|
-
if (!requirement) {
|
|
40
|
-
return [parseNodeVersion('10.0.0')];
|
|
41
|
-
}
|
|
42
|
-
return requirement.split('|').map(parseNodeVersion);
|
|
43
|
-
}
|
|
44
|
-
function toEngineRequirement(versions) {
|
|
45
|
-
const requirements = [];
|
|
46
|
-
versions.forEach((v, i) => {
|
|
47
|
-
let req = '';
|
|
48
|
-
if (i !== 0) {
|
|
49
|
-
const lastVersion = versions[i - 1];
|
|
50
|
-
req += `< ${lastVersion.major + 1}`;
|
|
51
|
-
}
|
|
52
|
-
req += `${i === 0 ? '' : ' || '}>= ${v.major}.${v.minor}.${v.patch}`;
|
|
53
|
-
requirements.push(req);
|
|
54
|
-
});
|
|
55
|
-
return requirements.join(' ');
|
|
56
|
-
}
|
|
57
|
-
export function napiEngineRequirement(napiVersion) {
|
|
58
|
-
return toEngineRequirement(requiredNodeVersions(napiVersion));
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=version.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,+CAAS,CAAA;IACT,+CAAK,CAAA;IACL,+CAAK,CAAA;IACL,+CAAK,CAAA;IACL,+CAAK,CAAA;IACL,+CAAK,CAAA;IACL,+CAAK,CAAA;IACL,+CAAK,CAAA;AACP,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,yGAAyG;AACzG,0FAA0F;AAC1F,2FAA2F;AAC3F,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAsB;IACvD,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5B,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACrC,CAAC,WAAW,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC/C,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACvC,CAAC,WAAW,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACxC,CAAC,WAAW,CAAC,KAAK,EAAE,4BAA4B,CAAC;IACjD,CAAC,WAAW,CAAC,KAAK,EAAE,6BAA6B,CAAC;IAClD,CAAC,WAAW,CAAC,KAAK,EAAE,6BAA6B,CAAC;CACnD,CAAC,CAAA;AAQF,SAAS,gBAAgB,CAAC,CAAS;IACjC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAE1D,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,CAAC,CAAA;KACrD;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAA;IAEvC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;KACvB,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAwB;IACpD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAExD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;KACpC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB;IAClD,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACnC,GAAG,IAAI,KAAK,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;SACpC;QAED,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;QACpE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAwB;IAC5D,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export const createWasiBinding = (
|
|
2
|
-
wasmFileName: string,
|
|
3
|
-
wasiRegisterFunctions: string[],
|
|
4
|
-
) => `/* eslint-disable */
|
|
5
|
-
/* prettier-ignore */
|
|
6
|
-
|
|
7
|
-
/* auto-generated by NAPI-RS */
|
|
8
|
-
|
|
9
|
-
import * as __nodeFsPromises from 'node:fs/promises'
|
|
10
|
-
import * as __nodePath from 'node:path'
|
|
11
|
-
import { WASI as __nodeWASI } from 'node:wasi'
|
|
12
|
-
import { Worker } from 'node:worker_threads'
|
|
13
|
-
import * as __nodeURL from 'node:url'
|
|
14
|
-
|
|
15
|
-
import { instantiateNapiModule as __emnapiInstantiateNapiModule } from '@emnapi/core'
|
|
16
|
-
import { getDefaultContext as __emnapiGetDefaultContext } from '@emnapi/runtime'
|
|
17
|
-
|
|
18
|
-
const __wasi = new __nodeWASI({
|
|
19
|
-
version: 'preview1',
|
|
20
|
-
env: process.env,
|
|
21
|
-
preopens: {
|
|
22
|
-
'/': __nodePath.join(__nodeURL.fileURLToPath(import.meta.url), '..'),
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
const __dirname = __nodePath.join(__nodeURL.fileURLToPath(import.meta.url), '..')
|
|
27
|
-
|
|
28
|
-
const __emnapiContext = __emnapiGetDefaultContext()
|
|
29
|
-
|
|
30
|
-
const __sharedMemory = new WebAssembly.Memory({
|
|
31
|
-
initial: 1024,
|
|
32
|
-
maximum: 10240,
|
|
33
|
-
shared: true,
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
|
|
37
|
-
context: __emnapiContext,
|
|
38
|
-
asyncWorkPoolSize: 4,
|
|
39
|
-
wasi: __wasi,
|
|
40
|
-
onCreateWorker() {
|
|
41
|
-
return new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
|
|
42
|
-
env: process.env,
|
|
43
|
-
execArgv: ['--experimental-wasi-unstable-preview1'],
|
|
44
|
-
})
|
|
45
|
-
},
|
|
46
|
-
overwriteImports(importObject) {
|
|
47
|
-
importObject.env = {
|
|
48
|
-
...importObject.env,
|
|
49
|
-
...importObject.napi,
|
|
50
|
-
...importObject.emnapi,
|
|
51
|
-
memory: __sharedMemory,
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
beforeInit({ instance }) {
|
|
55
|
-
__napi_rs_initialize_modules(instance)
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
function __napi_rs_initialize_modules(__napiInstance) {
|
|
60
|
-
${wasiRegisterFunctions
|
|
61
|
-
.map((name) => ` __napiInstance.exports['${name}']()`)
|
|
62
|
-
.join('\n')}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const binding = __napiModule.exports
|
|
66
|
-
`
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export const WASI_WORKER_TEMPLATE = `import fs from "node:fs";
|
|
2
|
-
import { createRequire } from "node:module";
|
|
3
|
-
import { parentPort, Worker } from "node:worker_threads";
|
|
4
|
-
|
|
5
|
-
import { instantiateNapiModuleSync, MessageHandler } from "@emnapi/core";
|
|
6
|
-
import { WASI } from "@tybys/wasm-util";
|
|
7
|
-
|
|
8
|
-
const require = createRequire(import.meta.url);
|
|
9
|
-
|
|
10
|
-
if (parentPort) {
|
|
11
|
-
parentPort.on("message", (data) => {
|
|
12
|
-
globalThis.onmessage({ data });
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
Object.assign(globalThis, {
|
|
17
|
-
self: globalThis,
|
|
18
|
-
require,
|
|
19
|
-
Worker,
|
|
20
|
-
importScripts: function (f) {
|
|
21
|
-
;(0, eval)(fs.readFileSync(f, "utf8") + "//# sourceURL=" + f);
|
|
22
|
-
},
|
|
23
|
-
postMessage: function (msg) {
|
|
24
|
-
if (parentPort) {
|
|
25
|
-
parentPort.postMessage(msg);
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const handler = new MessageHandler({
|
|
31
|
-
onLoad({ wasmModule, wasmMemory }) {
|
|
32
|
-
const wasi = new WASI({ fs });
|
|
33
|
-
|
|
34
|
-
return instantiateNapiModuleSync(wasmModule, {
|
|
35
|
-
childThread: true,
|
|
36
|
-
wasi,
|
|
37
|
-
overwriteImports(importObject) {
|
|
38
|
-
importObject.env = {
|
|
39
|
-
...importObject.env,
|
|
40
|
-
...importObject.napi,
|
|
41
|
-
...importObject.emnapi,
|
|
42
|
-
memory: wasmMemory
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
globalThis.onmessage = function (e) {
|
|
50
|
-
handler.handle(e);
|
|
51
|
-
};
|
|
52
|
-
`
|
package/src/utils/ci.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { TargetTriple } from './target.js'
|
|
2
|
-
|
|
3
|
-
export const CIConfig: Partial<
|
|
4
|
-
Record<
|
|
5
|
-
TargetTriple,
|
|
6
|
-
{
|
|
7
|
-
host: string
|
|
8
|
-
build_image?: string
|
|
9
|
-
build_setup?: string[]
|
|
10
|
-
test?: boolean
|
|
11
|
-
test_image?: string
|
|
12
|
-
test_setup?: string[]
|
|
13
|
-
yarn_cpu?: string
|
|
14
|
-
yarn_libc?: string
|
|
15
|
-
}
|
|
16
|
-
>
|
|
17
|
-
> = {
|
|
18
|
-
'x86_64-apple-darwin': {
|
|
19
|
-
host: 'macos-latest',
|
|
20
|
-
},
|
|
21
|
-
'x86_64-pc-windows-msvc': {
|
|
22
|
-
host: 'windows-latest',
|
|
23
|
-
},
|
|
24
|
-
'i686-pc-windows-msvc': {
|
|
25
|
-
host: 'windows-latest',
|
|
26
|
-
test: false,
|
|
27
|
-
},
|
|
28
|
-
'x86_64-unknown-linux-gnu': {
|
|
29
|
-
host: 'ubuntu-latest',
|
|
30
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
|
|
31
|
-
},
|
|
32
|
-
'x86_64-unknown-linux-musl': {
|
|
33
|
-
host: 'ubuntu-latest',
|
|
34
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
35
|
-
test_image: 'node:${{ matrix.node }}-alpine',
|
|
36
|
-
yarn_libc: 'musl',
|
|
37
|
-
},
|
|
38
|
-
'aarch64-apple-darwin': {
|
|
39
|
-
host: 'macos-latest',
|
|
40
|
-
build_setup: [
|
|
41
|
-
'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
|
|
42
|
-
'export CC=$(xcrun -f clang)',
|
|
43
|
-
'export CXX=$(xcrun -f clang++)',
|
|
44
|
-
'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
|
|
45
|
-
'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
|
|
46
|
-
],
|
|
47
|
-
test: false,
|
|
48
|
-
},
|
|
49
|
-
'aarch64-unknown-linux-gnu': {
|
|
50
|
-
host: 'ubuntu-latest',
|
|
51
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
|
|
52
|
-
build_setup: [
|
|
53
|
-
'sudo apt-get update',
|
|
54
|
-
'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
|
|
55
|
-
'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
|
|
56
|
-
],
|
|
57
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
|
|
58
|
-
yarn_cpu: 'arm64',
|
|
59
|
-
},
|
|
60
|
-
'aarch64-unknown-linux-musl': {
|
|
61
|
-
host: 'ubuntu-latest',
|
|
62
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
63
|
-
build_setup: ['rustup target add aarch64-unknown-linux-musl'],
|
|
64
|
-
test_image: 'multiarch/alpine:aarch64-latest-stable',
|
|
65
|
-
test_setup: ['apk add nodejs npm yarn'],
|
|
66
|
-
yarn_cpu: 'arm64',
|
|
67
|
-
yarn_libc: 'musl',
|
|
68
|
-
},
|
|
69
|
-
'aarch64-pc-windows-msvc': {
|
|
70
|
-
host: 'windows-latest',
|
|
71
|
-
test: false,
|
|
72
|
-
},
|
|
73
|
-
'armv7-unknown-linux-gnueabihf': {
|
|
74
|
-
host: 'ubuntu-latest',
|
|
75
|
-
build_setup: [
|
|
76
|
-
'sudo apt-get update',
|
|
77
|
-
'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
|
|
78
|
-
],
|
|
79
|
-
yarn_cpu: 'arm',
|
|
80
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
|
|
81
|
-
},
|
|
82
|
-
'aarch64-linux-android': {
|
|
83
|
-
host: 'ubuntu-latest',
|
|
84
|
-
build_setup: [
|
|
85
|
-
'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
86
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
87
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
|
|
88
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
89
|
-
],
|
|
90
|
-
test: false,
|
|
91
|
-
},
|
|
92
|
-
'armv7-linux-androideabi': {
|
|
93
|
-
host: 'ubuntu-latest',
|
|
94
|
-
build_setup: [
|
|
95
|
-
'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
96
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
97
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
|
|
98
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
99
|
-
],
|
|
100
|
-
test: false,
|
|
101
|
-
},
|
|
102
|
-
'riscv64gc-unknown-linux-gnu': {
|
|
103
|
-
host: 'ubuntu-latest',
|
|
104
|
-
build_setup: [
|
|
105
|
-
'sudo apt-get update',
|
|
106
|
-
'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
|
|
107
|
-
],
|
|
108
|
-
// No official nodejs docker image for riscv64
|
|
109
|
-
test: false,
|
|
110
|
-
},
|
|
111
|
-
}
|