@matter/tools 0.13.0-alpha.0-20250304-d4a7592a4 → 0.13.0-alpha.0-20250311-3eb0af5f2
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 +2 -2
- package/dist/cjs/building/builder.d.ts +0 -38
- package/dist/cjs/building/builder.d.ts.map +0 -1
- package/dist/cjs/building/builder.js +0 -200
- package/dist/cjs/building/builder.js.map +0 -6
- package/dist/esm/building/builder.d.ts +0 -38
- package/dist/esm/building/builder.d.ts.map +0 -1
- package/dist/esm/building/builder.js +0 -180
- package/dist/esm/building/builder.js.map +0 -6
- package/src/building/builder.ts +0 -230
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/tools",
|
|
3
|
-
"version": "0.13.0-alpha.0-
|
|
3
|
+
"version": "0.13.0-alpha.0-20250311-3eb0af5f2",
|
|
4
4
|
"description": "Matter.js tooling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@types/madge": "^5.0.3",
|
|
76
76
|
"@types/minimatch": "^5.1.2",
|
|
77
|
-
"@types/node": "^22.13.
|
|
77
|
+
"@types/node": "^22.13.10",
|
|
78
78
|
"detective-typescript": "^14.0.0"
|
|
79
79
|
},
|
|
80
80
|
"publishConfig": {
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Graph } from "./graph.js";
|
|
7
|
-
import { Project } from "./project.js";
|
|
8
|
-
import { TypescriptContext } from "./typescript/context.js";
|
|
9
|
-
export declare enum Target {
|
|
10
|
-
clean = "clean",
|
|
11
|
-
types = "types",
|
|
12
|
-
esm = "esm",
|
|
13
|
-
cjs = "cjs"
|
|
14
|
-
}
|
|
15
|
-
export interface Options {
|
|
16
|
-
targets?: Target[];
|
|
17
|
-
clean?: boolean;
|
|
18
|
-
graph?: Graph;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* High-level build coordination.
|
|
22
|
-
*
|
|
23
|
-
* Warning: This class is intended for command line use and will process.exit if things go wrong.
|
|
24
|
-
*/
|
|
25
|
-
export declare class Builder {
|
|
26
|
-
#private;
|
|
27
|
-
private options;
|
|
28
|
-
unconditional: boolean;
|
|
29
|
-
tsContext?: TypescriptContext;
|
|
30
|
-
graph?: Graph;
|
|
31
|
-
constructor(options?: Options);
|
|
32
|
-
get hasClean(): boolean | undefined;
|
|
33
|
-
clearClean(): void;
|
|
34
|
-
hasTargets(): boolean | undefined;
|
|
35
|
-
configure(project: Project): Promise<void>;
|
|
36
|
-
build(project: Project): Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/building/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAoB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,MAAM;IACd,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,OAAO;;IAKJ,OAAO,CAAC,OAAO;IAJ3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEM,OAAO,GAAE,OAAY;IAMzC,IAAI,QAAQ,wBAEX;IAED,UAAU;IAIV,UAAU;IAIG,SAAS,CAAC,OAAO,EAAE,OAAO;IAQ1B,KAAK,CAAC,OAAO,EAAE,OAAO;CAsKtC"}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var builder_exports = {};
|
|
20
|
-
__export(builder_exports, {
|
|
21
|
-
Builder: () => Builder,
|
|
22
|
-
Target: () => Target
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(builder_exports);
|
|
25
|
-
var import_node_crypto = require("node:crypto");
|
|
26
|
-
var import_error = require("./error.js");
|
|
27
|
-
var import_graph = require("./graph.js");
|
|
28
|
-
var import_typescript = require("./typescript.js");
|
|
29
|
-
/**
|
|
30
|
-
* @license
|
|
31
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
32
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
33
|
-
*/
|
|
34
|
-
var Target = /* @__PURE__ */ ((Target2) => {
|
|
35
|
-
Target2["clean"] = "clean";
|
|
36
|
-
Target2["types"] = "types";
|
|
37
|
-
Target2["esm"] = "esm";
|
|
38
|
-
Target2["cjs"] = "cjs";
|
|
39
|
-
return Target2;
|
|
40
|
-
})(Target || {});
|
|
41
|
-
class Builder {
|
|
42
|
-
constructor(options = {}) {
|
|
43
|
-
this.options = options;
|
|
44
|
-
this.graph = options.graph;
|
|
45
|
-
this.unconditional = options.clean || options.targets !== void 0 && options.targets?.indexOf("clean" /* clean */) !== -1;
|
|
46
|
-
}
|
|
47
|
-
unconditional;
|
|
48
|
-
tsContext;
|
|
49
|
-
graph;
|
|
50
|
-
get hasClean() {
|
|
51
|
-
return this.options.clean;
|
|
52
|
-
}
|
|
53
|
-
clearClean() {
|
|
54
|
-
delete this.options.clean;
|
|
55
|
-
}
|
|
56
|
-
hasTargets() {
|
|
57
|
-
return this.options.targets && this.options.targets.length > 0;
|
|
58
|
-
}
|
|
59
|
-
async configure(project) {
|
|
60
|
-
if (!project.pkg.hasConfig) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
await project.configure();
|
|
64
|
-
}
|
|
65
|
-
async build(project) {
|
|
66
|
-
const progress = project.pkg.start("Building");
|
|
67
|
-
try {
|
|
68
|
-
await this.#doBuild(project, progress);
|
|
69
|
-
} catch (e) {
|
|
70
|
-
progress.close();
|
|
71
|
-
process.stderr.write(`${e.stack ?? e.message}
|
|
72
|
-
|
|
73
|
-
`);
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
progress.close();
|
|
77
|
-
}
|
|
78
|
-
async #doBuild(project, progress) {
|
|
79
|
-
const targets = this.#selectTargets(project);
|
|
80
|
-
if (targets.has("clean" /* clean */) || this.options.clean) {
|
|
81
|
-
await progress.run("Clean", () => project.clean());
|
|
82
|
-
}
|
|
83
|
-
if (!targets.has("types" /* types */) && !targets.has("esm" /* esm */) && !targets.has("cjs" /* cjs */)) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const info = {};
|
|
87
|
-
const config = await project.configure();
|
|
88
|
-
await config?.before?.({ project });
|
|
89
|
-
const graph = this.graph ?? await import_graph.Graph.forProject(project.pkg.path);
|
|
90
|
-
let node;
|
|
91
|
-
if (graph) {
|
|
92
|
-
node = graph.get(project.pkg.name);
|
|
93
|
-
for (const dep of node.dependencies) {
|
|
94
|
-
if (dep.info.apiSha !== void 0) {
|
|
95
|
-
if (info.dependencyApiShas === void 0) {
|
|
96
|
-
info.dependencyApiShas = {};
|
|
97
|
-
}
|
|
98
|
-
info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (targets.has("types" /* types */)) {
|
|
103
|
-
try {
|
|
104
|
-
let context = this.tsContext;
|
|
105
|
-
if (context === void 0) {
|
|
106
|
-
context = this.tsContext = await (0, import_typescript.createTypescriptContext)(project.pkg.workspace, graph);
|
|
107
|
-
}
|
|
108
|
-
const refreshCallback = progress.refresh.bind(progress);
|
|
109
|
-
if (project.pkg.isLibrary) {
|
|
110
|
-
const apiSha = (0, import_node_crypto.createHash)("sha1");
|
|
111
|
-
if (node) {
|
|
112
|
-
for (const dep of node.dependencies) {
|
|
113
|
-
if (dep.info.apiSha !== void 0) {
|
|
114
|
-
apiSha.update(dep.info.apiSha);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
|
|
119
|
-
await context.build(project.pkg, "src", refreshCallback);
|
|
120
|
-
await project.hashDeclarations(apiSha);
|
|
121
|
-
});
|
|
122
|
-
info.apiSha = apiSha.digest("hex");
|
|
123
|
-
} else {
|
|
124
|
-
await progress.run(
|
|
125
|
-
`Validate ${progress.emphasize("types")}`,
|
|
126
|
-
() => context.build(project.pkg, "src", refreshCallback, false)
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
if (project.pkg.hasTests) {
|
|
130
|
-
await progress.run(
|
|
131
|
-
`Validate ${progress.emphasize("test types")}`,
|
|
132
|
-
() => context.build(project.pkg, "test", refreshCallback)
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
} catch (e) {
|
|
136
|
-
if (e instanceof import_error.BuildError) {
|
|
137
|
-
progress.failure("Terminating due to type errors");
|
|
138
|
-
process.stderr.write(`${e.diagnostics}
|
|
139
|
-
`);
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
throw e;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
const formats = Array();
|
|
146
|
-
if (targets.has("esm" /* esm */)) {
|
|
147
|
-
formats.push("esm");
|
|
148
|
-
}
|
|
149
|
-
if (targets.has("cjs" /* cjs */)) {
|
|
150
|
-
formats.push("cjs");
|
|
151
|
-
}
|
|
152
|
-
if (formats.length) {
|
|
153
|
-
const groups = [project.pkg.isLibrary ? "library" : "app"];
|
|
154
|
-
if (project.pkg.hasTests) {
|
|
155
|
-
groups.push("tests");
|
|
156
|
-
}
|
|
157
|
-
const formatDesc = formats.map(progress.emphasize).join("+");
|
|
158
|
-
const groupDesc = groups.map(progress.emphasize).join("+");
|
|
159
|
-
await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
|
|
160
|
-
for (const format of formats) {
|
|
161
|
-
await this.#transpile(project, format);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
await config?.after?.({ project });
|
|
166
|
-
if (!this.options.targets?.length) {
|
|
167
|
-
await project.recordBuildInfo(info);
|
|
168
|
-
if (node) {
|
|
169
|
-
node.info = info;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
async #transpile(project, format) {
|
|
174
|
-
await project.buildSource(format);
|
|
175
|
-
if (project.pkg.hasTests) {
|
|
176
|
-
await project.buildTests(format);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
#selectTargets(project) {
|
|
180
|
-
const targets = new Set(this.options.targets);
|
|
181
|
-
if (!targets.size) {
|
|
182
|
-
targets.add("types" /* types */);
|
|
183
|
-
if (project.pkg.supportsEsm) {
|
|
184
|
-
targets.add("esm" /* esm */);
|
|
185
|
-
}
|
|
186
|
-
if (project.pkg.supportsCjs) {
|
|
187
|
-
targets.add("cjs" /* cjs */);
|
|
188
|
-
}
|
|
189
|
-
} else {
|
|
190
|
-
if (!project.pkg.supportsEsm) {
|
|
191
|
-
targets.delete("esm" /* esm */);
|
|
192
|
-
}
|
|
193
|
-
if (!project.pkg.supportsCjs) {
|
|
194
|
-
targets.delete("cjs" /* cjs */);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return targets;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=builder.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/building/builder.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["Target"]
|
|
6
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Graph } from "./graph.js";
|
|
7
|
-
import { Project } from "./project.js";
|
|
8
|
-
import { TypescriptContext } from "./typescript/context.js";
|
|
9
|
-
export declare enum Target {
|
|
10
|
-
clean = "clean",
|
|
11
|
-
types = "types",
|
|
12
|
-
esm = "esm",
|
|
13
|
-
cjs = "cjs"
|
|
14
|
-
}
|
|
15
|
-
export interface Options {
|
|
16
|
-
targets?: Target[];
|
|
17
|
-
clean?: boolean;
|
|
18
|
-
graph?: Graph;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* High-level build coordination.
|
|
22
|
-
*
|
|
23
|
-
* Warning: This class is intended for command line use and will process.exit if things go wrong.
|
|
24
|
-
*/
|
|
25
|
-
export declare class Builder {
|
|
26
|
-
#private;
|
|
27
|
-
private options;
|
|
28
|
-
unconditional: boolean;
|
|
29
|
-
tsContext?: TypescriptContext;
|
|
30
|
-
graph?: Graph;
|
|
31
|
-
constructor(options?: Options);
|
|
32
|
-
get hasClean(): boolean | undefined;
|
|
33
|
-
clearClean(): void;
|
|
34
|
-
hasTargets(): boolean | undefined;
|
|
35
|
-
configure(project: Project): Promise<void>;
|
|
36
|
-
build(project: Project): Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/building/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAoB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,MAAM;IACd,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,OAAO;;IAKJ,OAAO,CAAC,OAAO;IAJ3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEM,OAAO,GAAE,OAAY;IAMzC,IAAI,QAAQ,wBAEX;IAED,UAAU;IAIV,UAAU;IAIG,SAAS,CAAC,OAAO,EAAE,OAAO;IAQ1B,KAAK,CAAC,OAAO,EAAE,OAAO;CAsKtC"}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { createHash } from "node:crypto";
|
|
7
|
-
import { BuildError } from "./error.js";
|
|
8
|
-
import { Graph } from "./graph.js";
|
|
9
|
-
import { createTypescriptContext } from "./typescript.js";
|
|
10
|
-
var Target = /* @__PURE__ */ ((Target2) => {
|
|
11
|
-
Target2["clean"] = "clean";
|
|
12
|
-
Target2["types"] = "types";
|
|
13
|
-
Target2["esm"] = "esm";
|
|
14
|
-
Target2["cjs"] = "cjs";
|
|
15
|
-
return Target2;
|
|
16
|
-
})(Target || {});
|
|
17
|
-
class Builder {
|
|
18
|
-
constructor(options = {}) {
|
|
19
|
-
this.options = options;
|
|
20
|
-
this.graph = options.graph;
|
|
21
|
-
this.unconditional = options.clean || options.targets !== void 0 && options.targets?.indexOf("clean" /* clean */) !== -1;
|
|
22
|
-
}
|
|
23
|
-
unconditional;
|
|
24
|
-
tsContext;
|
|
25
|
-
graph;
|
|
26
|
-
get hasClean() {
|
|
27
|
-
return this.options.clean;
|
|
28
|
-
}
|
|
29
|
-
clearClean() {
|
|
30
|
-
delete this.options.clean;
|
|
31
|
-
}
|
|
32
|
-
hasTargets() {
|
|
33
|
-
return this.options.targets && this.options.targets.length > 0;
|
|
34
|
-
}
|
|
35
|
-
async configure(project) {
|
|
36
|
-
if (!project.pkg.hasConfig) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
await project.configure();
|
|
40
|
-
}
|
|
41
|
-
async build(project) {
|
|
42
|
-
const progress = project.pkg.start("Building");
|
|
43
|
-
try {
|
|
44
|
-
await this.#doBuild(project, progress);
|
|
45
|
-
} catch (e) {
|
|
46
|
-
progress.close();
|
|
47
|
-
process.stderr.write(`${e.stack ?? e.message}
|
|
48
|
-
|
|
49
|
-
`);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
progress.close();
|
|
53
|
-
}
|
|
54
|
-
async #doBuild(project, progress) {
|
|
55
|
-
const targets = this.#selectTargets(project);
|
|
56
|
-
if (targets.has("clean" /* clean */) || this.options.clean) {
|
|
57
|
-
await progress.run("Clean", () => project.clean());
|
|
58
|
-
}
|
|
59
|
-
if (!targets.has("types" /* types */) && !targets.has("esm" /* esm */) && !targets.has("cjs" /* cjs */)) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const info = {};
|
|
63
|
-
const config = await project.configure();
|
|
64
|
-
await config?.before?.({ project });
|
|
65
|
-
const graph = this.graph ?? await Graph.forProject(project.pkg.path);
|
|
66
|
-
let node;
|
|
67
|
-
if (graph) {
|
|
68
|
-
node = graph.get(project.pkg.name);
|
|
69
|
-
for (const dep of node.dependencies) {
|
|
70
|
-
if (dep.info.apiSha !== void 0) {
|
|
71
|
-
if (info.dependencyApiShas === void 0) {
|
|
72
|
-
info.dependencyApiShas = {};
|
|
73
|
-
}
|
|
74
|
-
info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (targets.has("types" /* types */)) {
|
|
79
|
-
try {
|
|
80
|
-
let context = this.tsContext;
|
|
81
|
-
if (context === void 0) {
|
|
82
|
-
context = this.tsContext = await createTypescriptContext(project.pkg.workspace, graph);
|
|
83
|
-
}
|
|
84
|
-
const refreshCallback = progress.refresh.bind(progress);
|
|
85
|
-
if (project.pkg.isLibrary) {
|
|
86
|
-
const apiSha = createHash("sha1");
|
|
87
|
-
if (node) {
|
|
88
|
-
for (const dep of node.dependencies) {
|
|
89
|
-
if (dep.info.apiSha !== void 0) {
|
|
90
|
-
apiSha.update(dep.info.apiSha);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
|
|
95
|
-
await context.build(project.pkg, "src", refreshCallback);
|
|
96
|
-
await project.hashDeclarations(apiSha);
|
|
97
|
-
});
|
|
98
|
-
info.apiSha = apiSha.digest("hex");
|
|
99
|
-
} else {
|
|
100
|
-
await progress.run(
|
|
101
|
-
`Validate ${progress.emphasize("types")}`,
|
|
102
|
-
() => context.build(project.pkg, "src", refreshCallback, false)
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
if (project.pkg.hasTests) {
|
|
106
|
-
await progress.run(
|
|
107
|
-
`Validate ${progress.emphasize("test types")}`,
|
|
108
|
-
() => context.build(project.pkg, "test", refreshCallback)
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
} catch (e) {
|
|
112
|
-
if (e instanceof BuildError) {
|
|
113
|
-
progress.failure("Terminating due to type errors");
|
|
114
|
-
process.stderr.write(`${e.diagnostics}
|
|
115
|
-
`);
|
|
116
|
-
process.exit(1);
|
|
117
|
-
}
|
|
118
|
-
throw e;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
const formats = Array();
|
|
122
|
-
if (targets.has("esm" /* esm */)) {
|
|
123
|
-
formats.push("esm");
|
|
124
|
-
}
|
|
125
|
-
if (targets.has("cjs" /* cjs */)) {
|
|
126
|
-
formats.push("cjs");
|
|
127
|
-
}
|
|
128
|
-
if (formats.length) {
|
|
129
|
-
const groups = [project.pkg.isLibrary ? "library" : "app"];
|
|
130
|
-
if (project.pkg.hasTests) {
|
|
131
|
-
groups.push("tests");
|
|
132
|
-
}
|
|
133
|
-
const formatDesc = formats.map(progress.emphasize).join("+");
|
|
134
|
-
const groupDesc = groups.map(progress.emphasize).join("+");
|
|
135
|
-
await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
|
|
136
|
-
for (const format of formats) {
|
|
137
|
-
await this.#transpile(project, format);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
await config?.after?.({ project });
|
|
142
|
-
if (!this.options.targets?.length) {
|
|
143
|
-
await project.recordBuildInfo(info);
|
|
144
|
-
if (node) {
|
|
145
|
-
node.info = info;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
async #transpile(project, format) {
|
|
150
|
-
await project.buildSource(format);
|
|
151
|
-
if (project.pkg.hasTests) {
|
|
152
|
-
await project.buildTests(format);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
#selectTargets(project) {
|
|
156
|
-
const targets = new Set(this.options.targets);
|
|
157
|
-
if (!targets.size) {
|
|
158
|
-
targets.add("types" /* types */);
|
|
159
|
-
if (project.pkg.supportsEsm) {
|
|
160
|
-
targets.add("esm" /* esm */);
|
|
161
|
-
}
|
|
162
|
-
if (project.pkg.supportsCjs) {
|
|
163
|
-
targets.add("cjs" /* cjs */);
|
|
164
|
-
}
|
|
165
|
-
} else {
|
|
166
|
-
if (!project.pkg.supportsEsm) {
|
|
167
|
-
targets.delete("esm" /* esm */);
|
|
168
|
-
}
|
|
169
|
-
if (!project.pkg.supportsCjs) {
|
|
170
|
-
targets.delete("cjs" /* cjs */);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return targets;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
export {
|
|
177
|
-
Builder,
|
|
178
|
-
Target
|
|
179
|
-
};
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2J1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vdXRpbC9wcm9ncmVzcy5qc1wiO1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCIuL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBCdWlsZEluZm9ybWF0aW9uLCBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc2NyaXB0LmpzXCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29udGV4dCB9IGZyb20gXCIuL3R5cGVzY3JpcHQvY29udGV4dC5qc1wiO1xuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIGNsZWFuID0gXCJjbGVhblwiLFxuICAgIHR5cGVzID0gXCJ0eXBlc1wiLFxuICAgIGVzbSA9IFwiZXNtXCIsXG4gICAgY2pzID0gXCJjanNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICB0YXJnZXRzPzogVGFyZ2V0W107XG4gICAgY2xlYW4/OiBib29sZWFuO1xuICAgIGdyYXBoPzogR3JhcGg7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBidWlsZCBjb29yZGluYXRpb24uXG4gKlxuICogV2FybmluZzogVGhpcyBjbGFzcyBpcyBpbnRlbmRlZCBmb3IgY29tbWFuZCBsaW5lIHVzZSBhbmQgd2lsbCBwcm9jZXNzLmV4aXQgaWYgdGhpbmdzIGdvIHdyb25nLlxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRlciB7XG4gICAgdW5jb25kaXRpb25hbDogYm9vbGVhbjtcbiAgICB0c0NvbnRleHQ/OiBUeXBlc2NyaXB0Q29udGV4dDtcbiAgICBncmFwaD86IEdyYXBoO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5ncmFwaCA9IG9wdGlvbnMuZ3JhcGg7XG4gICAgICAgIHRoaXMudW5jb25kaXRpb25hbCA9XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFuIHx8IChvcHRpb25zLnRhcmdldHMgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnRhcmdldHM/LmluZGV4T2YoVGFyZ2V0LmNsZWFuKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5jbGVhbjtcbiAgICB9XG5cbiAgICBjbGVhckNsZWFuKCkge1xuICAgICAgICBkZWxldGUgdGhpcy5vcHRpb25zLmNsZWFuO1xuICAgIH1cblxuICAgIGhhc1RhcmdldHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudGFyZ2V0cyAmJiB0aGlzLm9wdGlvbnMudGFyZ2V0cy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb25maWd1cmUocHJvamVjdDogUHJvamVjdCkge1xuICAgICAgICBpZiAoIXByb2plY3QucGtnLmhhc0NvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgcHJvamVjdC5jb25maWd1cmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYnVpbGQocHJvamVjdDogUHJvamVjdCkge1xuICAgICAgICBjb25zdCBwcm9ncmVzcyA9IHByb2plY3QucGtnLnN0YXJ0KFwiQnVpbGRpbmdcIik7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuI2RvQnVpbGQocHJvamVjdCwgcHJvZ3Jlc3MpO1xuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgIHByb2dyZXNzLmNsb3NlKCk7XG4gICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlLnN0YWNrID8/IGUubWVzc2FnZX1cXG5cXG5gKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2dyZXNzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgI2RvQnVpbGQocHJvamVjdDogUHJvamVjdCwgcHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLiNzZWxlY3RUYXJnZXRzKHByb2plY3QpO1xuXG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuY2xlYW4pIHx8IHRoaXMub3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKFwiQ2xlYW5cIiwgKCkgPT4gcHJvamVjdC5jbGVhbigpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGFyZ2V0cy5oYXMoVGFyZ2V0LnR5cGVzKSAmJiAhdGFyZ2V0cy5oYXMoVGFyZ2V0LmVzbSkgJiYgIXRhcmdldHMuaGFzKFRhcmdldC5janMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmZvOiBCdWlsZEluZm9ybWF0aW9uID0ge307XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgcHJvamVjdC5jb25maWd1cmUoKTtcblxuICAgICAgICBhd2FpdCBjb25maWc/LmJlZm9yZT8uKHsgcHJvamVjdCB9KTtcblxuICAgICAgICAvLyBJZiBhdmFpbGFibGUgd2UgdXNlIGdyYXBoIHRvIGFjY2VzcyBkZXBlbmRlbmN5IEFQSSBzaGFzXG4gICAgICAgIGNvbnN0IGdyYXBoID0gdGhpcy5ncmFwaCA/PyAoYXdhaXQgR3JhcGguZm9yUHJvamVjdChwcm9qZWN0LnBrZy5wYXRoKSk7XG4gICAgICAgIGxldCBub2RlOiBHcmFwaC5Ob2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZ3JhcGgpIHtcbiAgICAgICAgICAgIG5vZGUgPSBncmFwaC5nZXQocHJvamVjdC5wa2cubmFtZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgIGlmIChkZXAuaW5mby5hcGlTaGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5kZXBlbmRlbmN5QXBpU2hhcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmRlcGVuZGVuY3lBcGlTaGFzID0ge307XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5mby5kZXBlbmRlbmN5QXBpU2hhc1tkZXAucGtnLm5hbWVdID0gZGVwLmluZm8uYXBpU2hhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQudHlwZXMpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIE9idGFpbiBvciBpbml0aWFsaXplIHR5cGVzY3JpcHQgc29sdXRpb24gYnVpbGRlclxuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gdGhpcy50c0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0ID0gdGhpcy50c0NvbnRleHQgPSBhd2FpdCBjcmVhdGVUeXBlc2NyaXB0Q29udGV4dChwcm9qZWN0LnBrZy53b3Jrc3BhY2UsIGdyYXBoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoQ2FsbGJhY2sgPSBwcm9ncmVzcy5yZWZyZXNoLmJpbmQocHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmlzTGlicmFyeSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcGlTaGEgPSBjcmVhdGVIYXNoKFwic2hhMVwiKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBPdXIgQVBJIFNIQSBjaGFuZ2VzIGlmIHRoYXQgb2YgYW55IGRlcGVuZGVuY3kgY2hhbmdlc1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVwLmluZm8uYXBpU2hhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpU2hhLnVwZGF0ZShkZXAuaW5mby5hcGlTaGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgR2VuZXJhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0eXBlIGRlY2xhcmF0aW9uc1wiKX1gLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInNyY1wiLCByZWZyZXNoQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcHJvamVjdC5oYXNoRGVjbGFyYXRpb25zKGFwaVNoYSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFdvcmstaW4tcHJvZ3Jlc3MgYWx0ZXJuYXRpdmUgZG9jIGdlbmVyYXRpb24gaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgICAgICAgICAgLy8gYXdhaXQgcHJvZ3Jlc3MucnVuKGBFeHRyYWN0ICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwiYXBpIGRvY3NcIil9YCwgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIGVtaXRBcGlEb2MocHJvamVjdC5wa2csIHByb2dyYW0sIHByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICAgICAgICBpbmZvLmFwaVNoYSA9IGFwaVNoYS5kaWdlc3QoXCJoZXhcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKGBWYWxpZGF0ZSAke3Byb2dyZXNzLmVtcGhhc2l6ZShcInR5cGVzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInNyY1wiLCByZWZyZXNoQ2FsbGJhY2ssIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVmFsaWRhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0ZXN0IHR5cGVzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInRlc3RcIiwgcmVmcmVzaENhbGxiYWNrKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCdWlsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzLmZhaWx1cmUoXCJUZXJtaW5hdGluZyBkdWUgdG8gdHlwZSBlcnJvcnNcIik7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke2UuZGlhZ25vc3RpY3N9XFxuYCk7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHMgPSBBcnJheTxcImVzbVwiIHwgXCJjanNcIj4oKTtcbiAgICAgICAgaWYgKHRhcmdldHMuaGFzKFRhcmdldC5lc20pKSB7XG4gICAgICAgICAgICBmb3JtYXRzLnB1c2goXCJlc21cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldHMuaGFzKFRhcmdldC5janMpKSB7XG4gICAgICAgICAgICBmb3JtYXRzLnB1c2goXCJjanNcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm9ybWF0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFtwcm9qZWN0LnBrZy5pc0xpYnJhcnkgPyBcImxpYnJhcnlcIiA6IFwiYXBwXCJdO1xuICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goXCJ0ZXN0c1wiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0RGVzYyA9IGZvcm1hdHMubWFwKHByb2dyZXNzLmVtcGhhc2l6ZSkuam9pbihcIitcIik7XG4gICAgICAgICAgICBjb25zdCBncm91cERlc2MgPSBncm91cHMubWFwKHByb2dyZXNzLmVtcGhhc2l6ZSkuam9pbihcIitcIik7XG5cbiAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVHJhbnNwaWxlICR7Z3JvdXBEZXNjfSB0byAke2Zvcm1hdERlc2N9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy4jdHJhbnNwaWxlKHByb2plY3QsIGZvcm1hdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjb25maWc/LmFmdGVyPy4oeyBwcm9qZWN0IH0pO1xuXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGJ1aWxkIGluZm9ybWF0aW9uIHdoZW4gdGhlcmUgYXJlIG5vIGV4cGxpY2l0IHRhcmdldHMgc28gd2Uga25vdyBpdCdzIGEgZnVsbCBidWlsZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy50YXJnZXRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGF3YWl0IHByb2plY3QucmVjb3JkQnVpbGRJbmZvKGluZm8pO1xuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBub2RlLmluZm8gPSBpbmZvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgI3RyYW5zcGlsZShwcm9qZWN0OiBQcm9qZWN0LCBmb3JtYXQ6IFwiZXNtXCIgfCBcImNqc1wiKSB7XG4gICAgICAgIGF3YWl0IHByb2plY3QuYnVpbGRTb3VyY2UoZm9ybWF0KTtcbiAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICBhd2FpdCBwcm9qZWN0LmJ1aWxkVGVzdHMoZm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNzZWxlY3RUYXJnZXRzKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IG5ldyBTZXQ8c3RyaW5nPih0aGlzLm9wdGlvbnMudGFyZ2V0cyk7XG5cbiAgICAgICAgaWYgKCF0YXJnZXRzLnNpemUpIHtcbiAgICAgICAgICAgIHRhcmdldHMuYWRkKFRhcmdldC50eXBlcyk7XG5cbiAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5zdXBwb3J0c0VzbSkge1xuICAgICAgICAgICAgICAgIHRhcmdldHMuYWRkKFRhcmdldC5lc20pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvamVjdC5wa2cuc3VwcG9ydHNDanMpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQuY2pzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghcHJvamVjdC5wa2cuc3VwcG9ydHNFc20pIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmRlbGV0ZShUYXJnZXQuZXNtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwcm9qZWN0LnBrZy5zdXBwb3J0c0Nqcykge1xuICAgICAgICAgICAgICAgIHRhcmdldHMuZGVsZXRlKFRhcmdldC5janMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldHM7XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsa0JBQWtCO0FBRTNCLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsYUFBYTtBQUV0QixTQUFTLCtCQUErQjtBQUdqQyxJQUFLLFNBQUwsa0JBQUtBLFlBQUw7QUFDSCxFQUFBQSxRQUFBLFdBQVE7QUFDUixFQUFBQSxRQUFBLFdBQVE7QUFDUixFQUFBQSxRQUFBLFNBQU07QUFDTixFQUFBQSxRQUFBLFNBQU07QUFKRSxTQUFBQTtBQUFBLEdBQUE7QUFrQkwsTUFBTSxRQUFRO0FBQUEsRUFLakIsWUFBb0IsVUFBbUIsQ0FBQyxHQUFHO0FBQXZCO0FBQ2hCLFNBQUssUUFBUSxRQUFRO0FBQ3JCLFNBQUssZ0JBQ0QsUUFBUSxTQUFVLFFBQVEsWUFBWSxVQUFhLFFBQVEsU0FBUyxRQUFRLG1CQUFZLE1BQU07QUFBQSxFQUN0RztBQUFBLEVBUkE7QUFBQSxFQUNB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
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/building/builder.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["Target"]
|
|
6
|
-
}
|
package/src/building/builder.ts
DELETED
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { createHash } from "node:crypto";
|
|
8
|
-
import { Progress } from "../util/progress.js";
|
|
9
|
-
import { BuildError } from "./error.js";
|
|
10
|
-
import { Graph } from "./graph.js";
|
|
11
|
-
import { BuildInformation, Project } from "./project.js";
|
|
12
|
-
import { createTypescriptContext } from "./typescript.js";
|
|
13
|
-
import { TypescriptContext } from "./typescript/context.js";
|
|
14
|
-
|
|
15
|
-
export enum Target {
|
|
16
|
-
clean = "clean",
|
|
17
|
-
types = "types",
|
|
18
|
-
esm = "esm",
|
|
19
|
-
cjs = "cjs",
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface Options {
|
|
23
|
-
targets?: Target[];
|
|
24
|
-
clean?: boolean;
|
|
25
|
-
graph?: Graph;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* High-level build coordination.
|
|
30
|
-
*
|
|
31
|
-
* Warning: This class is intended for command line use and will process.exit if things go wrong.
|
|
32
|
-
*/
|
|
33
|
-
export class Builder {
|
|
34
|
-
unconditional: boolean;
|
|
35
|
-
tsContext?: TypescriptContext;
|
|
36
|
-
graph?: Graph;
|
|
37
|
-
|
|
38
|
-
constructor(private options: Options = {}) {
|
|
39
|
-
this.graph = options.graph;
|
|
40
|
-
this.unconditional =
|
|
41
|
-
options.clean || (options.targets !== undefined && options.targets?.indexOf(Target.clean) !== -1);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
get hasClean() {
|
|
45
|
-
return this.options.clean;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
clearClean() {
|
|
49
|
-
delete this.options.clean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
hasTargets() {
|
|
53
|
-
return this.options.targets && this.options.targets.length > 0;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public async configure(project: Project) {
|
|
57
|
-
if (!project.pkg.hasConfig) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
await project.configure();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public async build(project: Project) {
|
|
65
|
-
const progress = project.pkg.start("Building");
|
|
66
|
-
|
|
67
|
-
try {
|
|
68
|
-
await this.#doBuild(project, progress);
|
|
69
|
-
} catch (e: any) {
|
|
70
|
-
progress.close();
|
|
71
|
-
process.stderr.write(`${e.stack ?? e.message}\n\n`);
|
|
72
|
-
process.exit(1);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
progress.close();
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
async #doBuild(project: Project, progress: Progress) {
|
|
79
|
-
const targets = this.#selectTargets(project);
|
|
80
|
-
|
|
81
|
-
if (targets.has(Target.clean) || this.options.clean) {
|
|
82
|
-
await progress.run("Clean", () => project.clean());
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (!targets.has(Target.types) && !targets.has(Target.esm) && !targets.has(Target.cjs)) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const info: BuildInformation = {};
|
|
90
|
-
|
|
91
|
-
const config = await project.configure();
|
|
92
|
-
|
|
93
|
-
await config?.before?.({ project });
|
|
94
|
-
|
|
95
|
-
// If available we use graph to access dependency API shas
|
|
96
|
-
const graph = this.graph ?? (await Graph.forProject(project.pkg.path));
|
|
97
|
-
let node: Graph.Node | undefined;
|
|
98
|
-
if (graph) {
|
|
99
|
-
node = graph.get(project.pkg.name);
|
|
100
|
-
for (const dep of node.dependencies) {
|
|
101
|
-
if (dep.info.apiSha !== undefined) {
|
|
102
|
-
if (info.dependencyApiShas === undefined) {
|
|
103
|
-
info.dependencyApiShas = {};
|
|
104
|
-
}
|
|
105
|
-
info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (targets.has(Target.types)) {
|
|
111
|
-
try {
|
|
112
|
-
// Obtain or initialize typescript solution builder
|
|
113
|
-
let context = this.tsContext;
|
|
114
|
-
if (context === undefined) {
|
|
115
|
-
context = this.tsContext = await createTypescriptContext(project.pkg.workspace, graph);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const refreshCallback = progress.refresh.bind(progress);
|
|
119
|
-
|
|
120
|
-
if (project.pkg.isLibrary) {
|
|
121
|
-
const apiSha = createHash("sha1");
|
|
122
|
-
|
|
123
|
-
// Our API SHA changes if that of any dependency changes
|
|
124
|
-
if (node) {
|
|
125
|
-
for (const dep of node.dependencies) {
|
|
126
|
-
if (dep.info.apiSha !== undefined) {
|
|
127
|
-
apiSha.update(dep.info.apiSha);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
|
|
133
|
-
await context.build(project.pkg, "src", refreshCallback);
|
|
134
|
-
await project.hashDeclarations(apiSha);
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
// Work-in-progress alternative doc generation implementation
|
|
138
|
-
// await progress.run(`Extract ${progress.emphasize("api docs")}`, () =>
|
|
139
|
-
// emitApiDoc(project.pkg, program, progress),
|
|
140
|
-
// );
|
|
141
|
-
|
|
142
|
-
info.apiSha = apiSha.digest("hex");
|
|
143
|
-
} else {
|
|
144
|
-
await progress.run(`Validate ${progress.emphasize("types")}`, () =>
|
|
145
|
-
context.build(project.pkg, "src", refreshCallback, false),
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
if (project.pkg.hasTests) {
|
|
149
|
-
await progress.run(`Validate ${progress.emphasize("test types")}`, () =>
|
|
150
|
-
context.build(project.pkg, "test", refreshCallback),
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
} catch (e) {
|
|
154
|
-
if (e instanceof BuildError) {
|
|
155
|
-
progress.failure("Terminating due to type errors");
|
|
156
|
-
process.stderr.write(`${e.diagnostics}\n`);
|
|
157
|
-
process.exit(1);
|
|
158
|
-
}
|
|
159
|
-
throw e;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
const formats = Array<"esm" | "cjs">();
|
|
164
|
-
if (targets.has(Target.esm)) {
|
|
165
|
-
formats.push("esm");
|
|
166
|
-
}
|
|
167
|
-
if (targets.has(Target.cjs)) {
|
|
168
|
-
formats.push("cjs");
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (formats.length) {
|
|
172
|
-
const groups = [project.pkg.isLibrary ? "library" : "app"];
|
|
173
|
-
if (project.pkg.hasTests) {
|
|
174
|
-
groups.push("tests");
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
const formatDesc = formats.map(progress.emphasize).join("+");
|
|
178
|
-
const groupDesc = groups.map(progress.emphasize).join("+");
|
|
179
|
-
|
|
180
|
-
await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
|
|
181
|
-
for (const format of formats) {
|
|
182
|
-
await this.#transpile(project, format);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
await config?.after?.({ project });
|
|
188
|
-
|
|
189
|
-
// Only update build information when there are no explicit targets so we know it's a full build
|
|
190
|
-
if (!this.options.targets?.length) {
|
|
191
|
-
await project.recordBuildInfo(info);
|
|
192
|
-
if (node) {
|
|
193
|
-
node.info = info;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
async #transpile(project: Project, format: "esm" | "cjs") {
|
|
199
|
-
await project.buildSource(format);
|
|
200
|
-
if (project.pkg.hasTests) {
|
|
201
|
-
await project.buildTests(format);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
#selectTargets(project: Project) {
|
|
206
|
-
const targets = new Set<string>(this.options.targets);
|
|
207
|
-
|
|
208
|
-
if (!targets.size) {
|
|
209
|
-
targets.add(Target.types);
|
|
210
|
-
|
|
211
|
-
if (project.pkg.supportsEsm) {
|
|
212
|
-
targets.add(Target.esm);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
if (project.pkg.supportsCjs) {
|
|
216
|
-
targets.add(Target.cjs);
|
|
217
|
-
}
|
|
218
|
-
} else {
|
|
219
|
-
if (!project.pkg.supportsEsm) {
|
|
220
|
-
targets.delete(Target.esm);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (!project.pkg.supportsCjs) {
|
|
224
|
-
targets.delete(Target.cjs);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return targets;
|
|
229
|
-
}
|
|
230
|
-
}
|