@plugjs/plug 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/async.cjs +20 -19
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +9 -9
- package/dist/async.mjs +18 -17
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +113 -110
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +14 -56
- package/dist/build.mjs +114 -111
- package/dist/build.mjs.map +2 -2
- package/dist/files.cjs +2 -16
- package/dist/files.cjs.map +1 -1
- package/dist/files.d.ts +3 -10
- package/dist/files.mjs +3 -17
- package/dist/files.mjs.map +1 -1
- package/dist/fork.cjs +28 -40
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +6 -27
- package/dist/fork.mjs +29 -40
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +27 -61
- package/dist/helpers.cjs.map +2 -2
- package/dist/helpers.d.ts +29 -31
- package/dist/helpers.mjs +27 -62
- package/dist/helpers.mjs.map +2 -2
- package/dist/index.cjs +15 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +9 -13
- package/dist/index.mjs +7 -2
- package/dist/index.mjs.map +1 -1
- package/dist/log/colors.cjs +3 -1
- package/dist/log/colors.cjs.map +1 -1
- package/dist/log/colors.d.ts +2 -2
- package/dist/log/colors.mjs +3 -1
- package/dist/log/colors.mjs.map +1 -1
- package/dist/log/emit.d.ts +1 -1
- package/dist/log/logger.cjs +4 -0
- package/dist/log/logger.cjs.map +1 -1
- package/dist/log/logger.d.ts +4 -1
- package/dist/log/logger.mjs +4 -0
- package/dist/log/logger.mjs.map +1 -1
- package/dist/log/options.d.ts +1 -1
- package/dist/log/report.cjs +2 -11
- package/dist/log/report.cjs.map +1 -1
- package/dist/log/report.d.ts +36 -4
- package/dist/log/report.mjs +1 -10
- package/dist/log/report.mjs.map +1 -1
- package/dist/log.cjs +1 -1
- package/dist/log.cjs.map +1 -1
- package/dist/log.d.ts +6 -6
- package/dist/log.mjs +2 -2
- package/dist/log.mjs.map +1 -1
- package/dist/pipe.cjs +69 -26
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +178 -119
- package/dist/pipe.mjs +71 -24
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs +15 -25
- package/dist/plugs/copy.cjs.map +2 -2
- package/dist/plugs/copy.d.ts +14 -13
- package/dist/plugs/copy.mjs +15 -17
- package/dist/plugs/copy.mjs.map +2 -2
- package/dist/plugs/coverage/analysis.d.ts +2 -2
- package/dist/plugs/coverage/report.cjs +1 -1
- package/dist/plugs/coverage/report.cjs.map +1 -1
- package/dist/plugs/coverage/report.d.ts +3 -3
- package/dist/plugs/coverage/report.mjs +1 -1
- package/dist/plugs/coverage/report.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +20 -26
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.d.ts +33 -30
- package/dist/plugs/coverage.mjs +21 -19
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +12 -36
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +4 -11
- package/dist/plugs/debug.mjs +30 -21
- package/dist/plugs/debug.mjs.map +1 -1
- package/dist/plugs/esbuild/fix-extensions.mjs +1 -1
- package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
- package/dist/plugs/esbuild.cjs +14 -25
- package/dist/plugs/esbuild.cjs.map +1 -1
- package/dist/plugs/esbuild.d.ts +11 -16
- package/dist/plugs/esbuild.mjs +14 -17
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs +5 -6
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +6 -20
- package/dist/plugs/eslint/runner.mjs +6 -7
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/{task.cjs → plugs/eslint.cjs} +7 -24
- package/dist/plugs/eslint.cjs.map +6 -0
- package/dist/plugs/eslint.d.ts +34 -0
- package/dist/plugs/eslint.mjs +5 -0
- package/dist/plugs/eslint.mjs.map +6 -0
- package/dist/plugs/exec.cjs +20 -24
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.d.ts +53 -53
- package/dist/plugs/exec.mjs +20 -23
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/filter.cjs +9 -19
- package/dist/plugs/filter.cjs.map +1 -1
- package/dist/plugs/filter.d.ts +21 -15
- package/dist/plugs/filter.mjs +10 -12
- package/dist/plugs/filter.mjs.map +1 -1
- package/dist/plugs/mocha/reporter.cjs +12 -6
- package/dist/plugs/mocha/reporter.cjs.map +1 -1
- package/dist/plugs/mocha/reporter.d.ts +0 -2
- package/dist/plugs/mocha/reporter.mjs +11 -4
- package/dist/plugs/mocha/reporter.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +4 -5
- package/dist/plugs/mocha/runner.cjs.map +1 -1
- package/dist/plugs/mocha/runner.d.ts +5 -31
- package/dist/plugs/mocha/runner.mjs +5 -6
- package/dist/plugs/mocha/runner.mjs.map +1 -1
- package/dist/plugs/mocha.cjs +22 -0
- package/dist/plugs/mocha.cjs.map +6 -0
- package/dist/plugs/mocha.d.ts +35 -0
- package/dist/plugs/mocha.mjs +5 -0
- package/dist/plugs/mocha.mjs.map +6 -0
- package/dist/plugs/rmf.cjs +4 -32
- package/dist/plugs/rmf.cjs.map +1 -1
- package/dist/plugs/rmf.d.ts +8 -12
- package/dist/plugs/rmf.mjs +25 -20
- package/dist/plugs/rmf.mjs.map +1 -1
- package/dist/plugs/tsc/compiler.d.ts +1 -1
- package/dist/plugs/tsc/options.d.ts +1 -1
- package/dist/plugs/tsc/report.d.ts +2 -2
- package/dist/plugs/tsc/runner.cjs +12 -11
- package/dist/plugs/tsc/runner.cjs.map +1 -1
- package/dist/plugs/tsc/runner.d.ts +4 -9
- package/dist/plugs/tsc/runner.mjs +12 -11
- package/dist/plugs/tsc/runner.mjs.map +1 -1
- package/dist/plugs/tsc.cjs +7 -0
- package/dist/plugs/tsc.cjs.map +6 -0
- package/dist/plugs/tsc.d.ts +36 -0
- package/dist/plugs/tsc.mjs +15 -0
- package/dist/plugs/tsc.mjs.map +6 -0
- package/dist/plugs.cjs +3 -5
- package/dist/plugs.cjs.map +1 -1
- package/dist/plugs.d.ts +10 -17
- package/dist/plugs.mjs +3 -5
- package/dist/plugs.mjs.map +1 -1
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +6 -0
- package/dist/utils/caller.cjs +8 -11
- package/dist/utils/caller.cjs.map +2 -2
- package/dist/utils/caller.d.ts +2 -7
- package/dist/utils/caller.mjs +8 -11
- package/dist/utils/caller.mjs.map +2 -2
- package/dist/utils/options.cjs +4 -6
- package/dist/utils/options.cjs.map +1 -1
- package/dist/utils/options.d.ts +16 -15
- package/dist/utils/options.mjs +4 -6
- package/dist/utils/options.mjs.map +1 -1
- package/dist/utils/walk.d.ts +2 -2
- package/extra/cli.mjs +31 -20
- package/extra/ts-loader.mjs +6 -5
- package/package.json +8 -9
- package/src/async.ts +27 -19
- package/src/files.ts +6 -30
- package/src/fork.ts +35 -76
- package/src/helpers.ts +66 -99
- package/src/index.ts +10 -15
- package/src/log/colors.ts +4 -3
- package/src/log/emit.ts +4 -4
- package/src/log/logger.ts +12 -4
- package/src/log/options.ts +1 -1
- package/src/log/report.ts +8 -22
- package/src/log/spinner.ts +3 -3
- package/src/log.ts +9 -9
- package/src/paths.ts +1 -1
- package/src/pipe.ts +255 -170
- package/src/plugs/copy.ts +40 -31
- package/src/plugs/coverage/analysis.ts +4 -4
- package/src/plugs/coverage/report.ts +6 -5
- package/src/plugs/coverage.ts +64 -53
- package/src/plugs/debug.ts +28 -26
- package/src/plugs/esbuild/fix-extensions.ts +2 -2
- package/src/plugs/esbuild.ts +42 -46
- package/src/plugs/eslint/runner.ts +16 -31
- package/src/plugs/eslint.ts +42 -0
- package/src/plugs/exec.ts +93 -82
- package/src/plugs/filter.ts +42 -27
- package/src/plugs/mocha/reporter.ts +10 -5
- package/src/plugs/mocha/runner.ts +12 -38
- package/src/plugs/mocha.ts +41 -0
- package/src/plugs/rmf.ts +21 -25
- package/src/plugs/tsc/compiler.ts +1 -1
- package/src/plugs/tsc/options.ts +2 -2
- package/src/plugs/tsc/report.ts +2 -2
- package/src/plugs/tsc/runner.ts +24 -30
- package/src/plugs/tsc.ts +45 -0
- package/src/plugs.ts +10 -25
- package/src/types.ts +116 -0
- package/src/utils/caller.ts +11 -22
- package/src/utils/options.ts +49 -17
- package/src/utils/walk.ts +4 -4
- package/dist/run.cjs +0 -90
- package/dist/run.cjs.map +0 -6
- package/dist/run.d.ts +0 -89
- package/dist/run.mjs +0 -65
- package/dist/run.mjs.map +0 -6
- package/dist/task.cjs.map +0 -6
- package/dist/task.d.ts +0 -15
- package/dist/task.mjs +0 -14
- package/dist/task.mjs.map +0 -6
- package/src/run.ts +0 -159
- package/src/task.ts +0 -26
package/extra/cli.mjs
CHANGED
|
@@ -9,8 +9,11 @@ async function main(options2) {
|
|
|
9
9
|
if (tasks.length === 0)
|
|
10
10
|
tasks.push("default");
|
|
11
11
|
let build = await import(buildFile);
|
|
12
|
-
while (build
|
|
12
|
+
while (build) {
|
|
13
|
+
if (isBuild(build))
|
|
14
|
+
break;
|
|
13
15
|
build = build.default;
|
|
16
|
+
}
|
|
14
17
|
if (!isBuild(build)) {
|
|
15
18
|
console.log("Build file did not export a proper build");
|
|
16
19
|
console.log();
|
|
@@ -22,19 +25,10 @@ async function main(options2) {
|
|
|
22
25
|
console.log();
|
|
23
26
|
process.exit(1);
|
|
24
27
|
}
|
|
25
|
-
for (const task of tasks) {
|
|
26
|
-
if (task in build)
|
|
27
|
-
continue;
|
|
28
|
-
console.log(`Build file does not contain task "${task}"`);
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
28
|
if (listOnly) {
|
|
32
29
|
console.log("Build file tasks\n- " + Object.keys(build).sort().join("\n- "));
|
|
33
30
|
} else {
|
|
34
|
-
|
|
35
|
-
for (const task of tasks) {
|
|
36
|
-
run = await build[task](run);
|
|
37
|
-
}
|
|
31
|
+
await build[buildMarker](tasks);
|
|
38
32
|
}
|
|
39
33
|
}
|
|
40
34
|
const sourceMapsEnabled = process.execArgv.indexOf("--enable-source-maps") >= 0;
|
|
@@ -64,7 +58,7 @@ if (sourceMapsEnabled && typeScriptEnabled) {
|
|
|
64
58
|
const loader = _path.resolve(directory, `ts-loader${extension}`);
|
|
65
59
|
execArgv.push(`--experimental-loader=${loader}`, "--no-warnings");
|
|
66
60
|
}
|
|
67
|
-
const env = options.
|
|
61
|
+
const env = options.force ? { __TS_LOADER_FORCE_TYPE: options.force, ...process.env } : process.env;
|
|
68
62
|
const child = _childProcess.fork(script, [...process.argv.slice(2)], {
|
|
69
63
|
stdio: ["inherit", "inherit", "inherit", "ipc"],
|
|
70
64
|
execArgv,
|
|
@@ -89,7 +83,7 @@ if (sourceMapsEnabled && typeScriptEnabled) {
|
|
|
89
83
|
const buildMarker = Symbol.for("plugjs:isBuild");
|
|
90
84
|
const buildFailure = Symbol.for("plugjs:buildFailure");
|
|
91
85
|
function isBuild(build) {
|
|
92
|
-
return build && build[buildMarker] ===
|
|
86
|
+
return build && typeof build[buildMarker] === "function";
|
|
93
87
|
}
|
|
94
88
|
function isBuildFailure(arg) {
|
|
95
89
|
return arg && arg[buildFailure] === buildFailure;
|
|
@@ -102,7 +96,6 @@ function parseCommandLine() {
|
|
|
102
96
|
"strip-dashed": true
|
|
103
97
|
},
|
|
104
98
|
alias: {
|
|
105
|
-
"force-esm": ["e"],
|
|
106
99
|
"verbose": ["v"],
|
|
107
100
|
"quiet": ["q"],
|
|
108
101
|
"colors": ["c"],
|
|
@@ -111,7 +104,7 @@ function parseCommandLine() {
|
|
|
111
104
|
"help": ["h"]
|
|
112
105
|
},
|
|
113
106
|
string: ["file"],
|
|
114
|
-
boolean: ["help", "colors", "list", "force-esm"],
|
|
107
|
+
boolean: ["help", "colors", "list", "force-esm", "force-cjs"],
|
|
115
108
|
count: ["verbose", "quiet"]
|
|
116
109
|
});
|
|
117
110
|
const tasks = [];
|
|
@@ -119,6 +112,7 @@ function parseCommandLine() {
|
|
|
119
112
|
let colors = void 0;
|
|
120
113
|
let file = void 0;
|
|
121
114
|
let forceEsm = false;
|
|
115
|
+
let forceCjs = false;
|
|
122
116
|
let listOnly = false;
|
|
123
117
|
let help = false;
|
|
124
118
|
for (const key in parsed) {
|
|
@@ -138,6 +132,9 @@ function parseCommandLine() {
|
|
|
138
132
|
case "force-esm":
|
|
139
133
|
forceEsm = !!parsed[key];
|
|
140
134
|
break;
|
|
135
|
+
case "force-cjs":
|
|
136
|
+
forceCjs = !!parsed[key];
|
|
137
|
+
break;
|
|
141
138
|
case "colors":
|
|
142
139
|
colors = !!parsed[key];
|
|
143
140
|
break;
|
|
@@ -157,16 +154,27 @@ function parseCommandLine() {
|
|
|
157
154
|
|
|
158
155
|
plugjs [--options] [... tasks]
|
|
159
156
|
|
|
157
|
+
TypeScript module format:
|
|
158
|
+
|
|
159
|
+
Normally our TypeScript loader will transpile ".ts" files to the "type"
|
|
160
|
+
specified in "package.json", either "commonjs" (the default) or "module".
|
|
161
|
+
|
|
162
|
+
To force a specific module format we can use one of the following flags:
|
|
163
|
+
|
|
164
|
+
--force-esm Force transpilation of ".ts" files to EcmaScript modules
|
|
165
|
+
--force-cjs Force transpilation of ".ts" files to CommonJS modules
|
|
166
|
+
|
|
160
167
|
Options:
|
|
168
|
+
|
|
161
169
|
-v --verbose Increase logging verbosity
|
|
162
170
|
-q --quiet Decrease logging verbosity
|
|
163
171
|
-c --colors Force colorful output (use "--no-colors" to force plain text)
|
|
164
|
-
-e --force-esm Force our TypeScript loader to interpret ".ts" files as ESM
|
|
165
172
|
-f --file Specify the build file to use (default "./build.[ts/js/...]")
|
|
166
173
|
-l --list Only list the tasks defined by the build, nothing more!
|
|
167
174
|
-h --help Help! You're reading it now!
|
|
168
175
|
|
|
169
176
|
Tasks:
|
|
177
|
+
|
|
170
178
|
Any other argument will be treated as a task name. If no task names are
|
|
171
179
|
specified, the "default" task will be executed.
|
|
172
180
|
`);
|
|
@@ -206,7 +214,12 @@ function parseCommandLine() {
|
|
|
206
214
|
console.log(`Unable to find build file "./build.[${exts.join("|")}]`);
|
|
207
215
|
process.exit(1);
|
|
208
216
|
}
|
|
209
|
-
|
|
217
|
+
if (forceEsm && forceCjs) {
|
|
218
|
+
console.log('The "--force-cjs" and "--force-esm" flags can not coexist');
|
|
219
|
+
process.exit(1);
|
|
220
|
+
}
|
|
221
|
+
const force = forceEsm ? "module" : forceCjs ? "commonjs" : void 0;
|
|
222
|
+
return { buildFile, tasks, listOnly, force };
|
|
210
223
|
}
|
|
211
224
|
function isFile(path) {
|
|
212
225
|
try {
|
|
@@ -216,8 +229,6 @@ function isFile(path) {
|
|
|
216
229
|
}
|
|
217
230
|
}
|
|
218
231
|
export {
|
|
219
|
-
isBuild,
|
|
220
|
-
isBuildFailure,
|
|
221
232
|
parseCommandLine
|
|
222
233
|
};
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/extra/ts-loader.mjs
CHANGED
|
@@ -23,10 +23,11 @@ function _throw(type, message, options = {}) {
|
|
|
23
23
|
throw error;
|
|
24
24
|
}
|
|
25
25
|
const _moduleFormatCache = /* @__PURE__ */ new Map();
|
|
26
|
-
if (process.env.
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
if (process.env.__TS_LOADER_FORCE_TYPE) {
|
|
27
|
+
const type = process.env.__TS_LOADER_FORCE_TYPE;
|
|
28
|
+
const dir = process.cwd();
|
|
29
|
+
_log(null, `Forcing ".ts" files from "${dir}" to be interpreted as "${type}"`);
|
|
30
|
+
_moduleFormatCache.set(dir, type);
|
|
30
31
|
}
|
|
31
32
|
if (_debug)
|
|
32
33
|
process.on("exit", () => _log(null, "Format cache", _moduleFormatCache));
|
|
@@ -218,4 +219,4 @@ export {
|
|
|
218
219
|
load,
|
|
219
220
|
resolve
|
|
220
221
|
};
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plugjs/plug",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"author": "",
|
|
29
29
|
"license": "ISC",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@babel/parser": "^7.
|
|
32
|
-
"@babel/types": "^7.
|
|
31
|
+
"@babel/parser": "^7.19.0",
|
|
32
|
+
"@babel/types": "^7.19.0",
|
|
33
33
|
"@plugjs/cov8-html": "^0.0.2",
|
|
34
34
|
"@types/node": "<17",
|
|
35
35
|
"diff": "^5.1.0",
|
|
36
|
-
"esbuild": "^0.15.
|
|
37
|
-
"eslint": "^8.
|
|
36
|
+
"esbuild": "^0.15.7",
|
|
37
|
+
"eslint": "^8.23.1",
|
|
38
38
|
"mocha": "^10.0.0",
|
|
39
39
|
"picomatch": "^2.3.1",
|
|
40
40
|
"source-map": "^0.7.4",
|
|
41
|
-
"typescript": "^4.
|
|
41
|
+
"typescript": "^4.8.3",
|
|
42
42
|
"yargs-parser": "^21.1.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -47,11 +47,10 @@
|
|
|
47
47
|
"@types/diff": "^5.0.2",
|
|
48
48
|
"@types/eslint": "^8.4.6",
|
|
49
49
|
"@types/mocha": "^9.1.1",
|
|
50
|
-
"@types/ms": "^0.7.31",
|
|
51
50
|
"@types/picomatch": "^2.3.0",
|
|
52
51
|
"@types/yargs-parser": "^21.0.0",
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
54
|
-
"@typescript-eslint/parser": "^5.
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^5.37.0",
|
|
53
|
+
"@typescript-eslint/parser": "^5.37.0",
|
|
55
54
|
"chai": "^4.3.6",
|
|
56
55
|
"eslint-config-google": "^0.14.0"
|
|
57
56
|
}
|
package/src/async.ts
CHANGED
|
@@ -1,38 +1,46 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks'
|
|
2
|
-
import {
|
|
2
|
+
import { assert } from './assert'
|
|
3
|
+
import { Context } from './pipe'
|
|
3
4
|
|
|
4
5
|
/* ========================================================================== *
|
|
5
6
|
* EXPORTED *
|
|
6
7
|
* ========================================================================== */
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
|
-
* Run the specified `callback` associating the specified {@link
|
|
10
|
+
* Run the specified `callback` associating the specified {@link Context} and task
|
|
10
11
|
* name with the current asynchronous invocation context.
|
|
11
12
|
*/
|
|
12
|
-
export function runAsync<T>(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
export function runAsync<T>(
|
|
14
|
+
context: Context,
|
|
15
|
+
taskName: string,
|
|
16
|
+
callback: () => Promise<T>,
|
|
17
|
+
): Promise<T> {
|
|
18
|
+
return storage.run(context, async () => {
|
|
19
|
+
try {
|
|
20
|
+
tasks.add(taskName)
|
|
21
|
+
return await callback()
|
|
22
|
+
} finally {
|
|
23
|
+
tasks.delete(taskName)
|
|
24
|
+
}
|
|
19
25
|
})
|
|
20
26
|
}
|
|
21
27
|
|
|
22
28
|
/**
|
|
23
|
-
* Returns the
|
|
24
|
-
* context or `undefined`.
|
|
29
|
+
* Returns the {@link Context} associated with the current asynchronous
|
|
30
|
+
* invocation context or `undefined`.
|
|
25
31
|
*/
|
|
26
|
-
export function
|
|
27
|
-
return storage.getStore()
|
|
32
|
+
export function currentContext(): Context | undefined {
|
|
33
|
+
return storage.getStore()
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
/**
|
|
31
|
-
* Returns the {@link
|
|
32
|
-
* context
|
|
37
|
+
* Returns the {@link Context} associated with the current asynchronous
|
|
38
|
+
* invocation context and fail if none was found.
|
|
33
39
|
*/
|
|
34
|
-
export function
|
|
35
|
-
|
|
40
|
+
export function requireContext(): Context {
|
|
41
|
+
const context = storage.getStore()
|
|
42
|
+
assert(context, 'Unable to retrieve current context')
|
|
43
|
+
return context
|
|
36
44
|
}
|
|
37
45
|
|
|
38
46
|
/**
|
|
@@ -46,5 +54,5 @@ export function runningTasks(): string[] {
|
|
|
46
54
|
* INTERNALS *
|
|
47
55
|
* ========================================================================== */
|
|
48
56
|
|
|
49
|
-
const storage = new AsyncLocalStorage<
|
|
50
|
-
const tasks
|
|
57
|
+
const storage = new AsyncLocalStorage<Context>()
|
|
58
|
+
const tasks = new Set<string>
|
package/src/files.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { mkdir, writeFile } from './utils/asyncfs.js'
|
|
1
|
+
import { AbsolutePath, assertRelativeChildPath, getAbsoluteParent, resolveAbsolutePath } from './paths'
|
|
2
|
+
import { mkdir, writeFile } from './utils/asyncfs'
|
|
4
3
|
|
|
5
4
|
/** The {@link FilesBuilder} interface defines a builder for {@link Files}. */
|
|
6
5
|
export interface FilesBuilder {
|
|
@@ -8,20 +7,12 @@ export interface FilesBuilder {
|
|
|
8
7
|
readonly directory: AbsolutePath
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
|
-
* Push files into the {@link Files} instance being built
|
|
12
|
-
* their existance on disk**.
|
|
10
|
+
* Push files into the {@link Files} instance being built.
|
|
13
11
|
*
|
|
14
|
-
* This
|
|
15
|
-
* sure the file already exist.
|
|
12
|
+
* This method will not check that files actually exist on disk.
|
|
16
13
|
*/
|
|
17
14
|
add(...files: string[]): this
|
|
18
15
|
|
|
19
|
-
/**
|
|
20
|
-
* Push files into the {@link Files} instance being built without checking
|
|
21
|
-
* they exist on disk _(use with care!)_.
|
|
22
|
-
*/
|
|
23
|
-
unchecked(...files: string[]): this
|
|
24
|
-
|
|
25
16
|
/** Merge orther {@link Files} instance to the {@link Files} being built */
|
|
26
17
|
merge(...files: Files[]): this
|
|
27
18
|
|
|
@@ -97,21 +88,6 @@ export class Files {
|
|
|
97
88
|
add(...files: string[]): FilesBuilder {
|
|
98
89
|
if (built) throw new Error('FileBuilder "build()" already called')
|
|
99
90
|
|
|
100
|
-
if (typeof files === 'string') files = [ files ]
|
|
101
|
-
for (const file of files) {
|
|
102
|
-
const relative = assertRelativeChildPath(instance.directory, file)
|
|
103
|
-
const resolved = resolveAbsolutePath(instance.directory, file)
|
|
104
|
-
|
|
105
|
-
assert(resolveFile(resolved), `File "${resolved}" does not exist`)
|
|
106
|
-
set.add(relative)
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return this
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
unchecked(...files: string[]): FilesBuilder {
|
|
113
|
-
if (built) throw new Error('FileBuilder "build()" already called')
|
|
114
|
-
|
|
115
91
|
if (typeof files === 'string') files = [ files ]
|
|
116
92
|
for (const file of files) {
|
|
117
93
|
const relative = assertRelativeChildPath(instance.directory, file)
|
|
@@ -126,7 +102,7 @@ export class Files {
|
|
|
126
102
|
|
|
127
103
|
for (const files of args) {
|
|
128
104
|
for (const file of files.absolutePaths()) {
|
|
129
|
-
this.
|
|
105
|
+
this.add(file)
|
|
130
106
|
}
|
|
131
107
|
}
|
|
132
108
|
|
|
@@ -140,7 +116,7 @@ export class Files {
|
|
|
140
116
|
|
|
141
117
|
await mkdir(directory, { recursive: true })
|
|
142
118
|
await writeFile(absolute, content)
|
|
143
|
-
this.
|
|
119
|
+
this.add(absolute)
|
|
144
120
|
|
|
145
121
|
return absolute
|
|
146
122
|
},
|
package/src/fork.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { fork } from 'node:child_process'
|
|
2
|
-
import { assert, failure } from './assert
|
|
3
|
-
import { runAsync } from './async
|
|
4
|
-
import { Files } from './files
|
|
5
|
-
import { $gry, $p, LogOptions, logOptions } from './log
|
|
6
|
-
import { AbsolutePath,
|
|
7
|
-
import {
|
|
8
|
-
import { Run, RunImpl } from './run.js'
|
|
2
|
+
import { assert, failure } from './assert'
|
|
3
|
+
import { runAsync } from './async'
|
|
4
|
+
import { Files } from './files'
|
|
5
|
+
import { $gry, $p, LogOptions, logOptions } from './log'
|
|
6
|
+
import { AbsolutePath, requireFilename, resolveFile } from './paths'
|
|
7
|
+
import { Plug, PlugResult, Context } from './pipe'
|
|
9
8
|
|
|
10
9
|
/** Fork data, from parent to child process */
|
|
11
10
|
export interface ForkData {
|
|
@@ -17,8 +16,6 @@ export interface ForkData {
|
|
|
17
16
|
taskName: string,
|
|
18
17
|
/** Build file name */
|
|
19
18
|
buildFile: AbsolutePath,
|
|
20
|
-
/** Build directory */
|
|
21
|
-
buildDir: AbsolutePath,
|
|
22
19
|
/** Files directory */
|
|
23
20
|
filesDir: AbsolutePath,
|
|
24
21
|
/** All files to pipe */
|
|
@@ -37,67 +34,30 @@ export interface ForkResult {
|
|
|
37
34
|
filesList?: AbsolutePath[] | undefined,
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
/* ========================================================================== *
|
|
41
|
-
* PIPE INSTALLATION *
|
|
42
|
-
* ========================================================================== */
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Install a _forking_ {@link Plug} in the {@link Pipe}, in other words
|
|
46
|
-
* execute the plug in a separate process.
|
|
47
|
-
*
|
|
48
|
-
* As a contract, if the _last non-null_ parameter of the constructor is an
|
|
49
|
-
* object and contains the key `coverageDir`, the process will be forked with
|
|
50
|
-
* the approptiately resolved `NODE_V8_COVERAGE` environment variable.
|
|
51
|
-
*
|
|
52
|
-
* Also, forking plugs require some special attention:
|
|
53
|
-
*
|
|
54
|
-
* * plug functions are not supported, only classes implementing the
|
|
55
|
-
* {@link Plug} interface can be used with this.
|
|
56
|
-
*
|
|
57
|
-
* * the class itself _MUST_ be exported as the _default_ export for the
|
|
58
|
-
* `scriptFile` specified below. This is to simplify interoperability between
|
|
59
|
-
* CommonJS and ESM modules as we use dynamic `import(...)` statements.
|
|
60
|
-
*/
|
|
61
|
-
export function installForking(
|
|
62
|
-
plugName: PlugName,
|
|
63
|
-
scriptFile: AbsolutePath,
|
|
64
|
-
): void {
|
|
65
|
-
/** Extend out our ForkingPlug below */
|
|
66
|
-
const ctor = class extends ForkingPlug {
|
|
67
|
-
constructor(...args: any[]) {
|
|
68
|
-
super(scriptFile, args)
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** Install the plug in */
|
|
73
|
-
install(plugName, ctor)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
37
|
/* ========================================================================== *
|
|
77
38
|
* PARENT PROCESS SIDE OF THE FORKING PLUG IMPLEMENTATION *
|
|
78
39
|
* ========================================================================== */
|
|
79
40
|
|
|
80
|
-
export abstract class ForkingPlug implements Plug<
|
|
41
|
+
export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
81
42
|
constructor(
|
|
82
43
|
private readonly _scriptFile: AbsolutePath,
|
|
83
44
|
private readonly _arguments: any[],
|
|
84
45
|
) {}
|
|
85
46
|
|
|
86
|
-
pipe(files: Files,
|
|
47
|
+
pipe(files: Files, context: Context): Promise<PlugResult> {
|
|
87
48
|
const message: ForkData = {
|
|
88
49
|
scriptFile: this._scriptFile,
|
|
89
50
|
constructorArgs: this._arguments,
|
|
90
|
-
taskName:
|
|
91
|
-
buildFile:
|
|
92
|
-
buildDir: run.buildDir,
|
|
51
|
+
taskName: context.taskName,
|
|
52
|
+
buildFile: context.buildFile,
|
|
93
53
|
filesDir: files.directory,
|
|
94
54
|
filesList: [ ...files.absolutePaths() ],
|
|
95
|
-
logOpts: logOptions.fork(
|
|
55
|
+
logOpts: logOptions.fork(context.taskName),
|
|
96
56
|
}
|
|
97
57
|
|
|
98
58
|
/* Get _this_ filename to spawn */
|
|
99
59
|
const script = requireFilename(__fileurl)
|
|
100
|
-
|
|
60
|
+
context.log.debug('About to fork plug from', $p(script))
|
|
101
61
|
|
|
102
62
|
/* Environment variables */
|
|
103
63
|
const env = { ...process.env }
|
|
@@ -107,8 +67,8 @@ export abstract class ForkingPlug implements Plug<Files | undefined> {
|
|
|
107
67
|
if (this._arguments[i] == null) continue // null or undefined... optionals
|
|
108
68
|
if (typeof this._arguments[i] === 'object') {
|
|
109
69
|
if (typeof this._arguments[i].coverageDir === 'string') {
|
|
110
|
-
const dir = env.NODE_V8_COVERAGE =
|
|
111
|
-
|
|
70
|
+
const dir = env.NODE_V8_COVERAGE = context.resolve(this._arguments[i].coverageDir)
|
|
71
|
+
context.log.debug('Forked process will produce coverage in', $p(dir))
|
|
112
72
|
}
|
|
113
73
|
}
|
|
114
74
|
}
|
|
@@ -119,32 +79,32 @@ export abstract class ForkingPlug implements Plug<Files | undefined> {
|
|
|
119
79
|
env,
|
|
120
80
|
})
|
|
121
81
|
|
|
122
|
-
|
|
82
|
+
context.log.info('Running', $p(script), $gry(`(pid=${child.pid})`))
|
|
123
83
|
|
|
124
84
|
/* Return a promise from the child process events */
|
|
125
85
|
let done = false // this will be fixed up in "finally" below
|
|
126
|
-
return new Promise<
|
|
86
|
+
return new Promise<PlugResult>((resolve, reject) => {
|
|
127
87
|
let result: ForkResult | undefined = undefined
|
|
128
88
|
|
|
129
89
|
child.on('error', (error) => {
|
|
130
|
-
|
|
90
|
+
context.log.error('Child process error', error)
|
|
131
91
|
return done || reject(failure())
|
|
132
92
|
})
|
|
133
93
|
|
|
134
94
|
child.on('message', (message: ForkResult) => {
|
|
135
|
-
|
|
95
|
+
context.log.debug('Message from child process', message)
|
|
136
96
|
result = message
|
|
137
97
|
})
|
|
138
98
|
|
|
139
99
|
child.on('exit', (code, signal) => {
|
|
140
100
|
if (signal) {
|
|
141
|
-
|
|
101
|
+
context.log.error(`Child process exited with signal ${signal}`, $gry(`(pid=${child.pid})`))
|
|
142
102
|
return done || reject(failure())
|
|
143
103
|
} else if (code !== 0) {
|
|
144
|
-
|
|
104
|
+
context.log.error(`Child process exited with code ${code}`, $gry(`(pid=${child.pid})`))
|
|
145
105
|
return done || reject(failure())
|
|
146
106
|
} else if (! result) {
|
|
147
|
-
|
|
107
|
+
context.log.error('Child process exited with no result', $gry(`(pid=${child.pid})`))
|
|
148
108
|
return done || reject(failure())
|
|
149
109
|
} else if (result.failed) {
|
|
150
110
|
// definitely logged on the child side
|
|
@@ -153,7 +113,7 @@ export abstract class ForkingPlug implements Plug<Files | undefined> {
|
|
|
153
113
|
|
|
154
114
|
/* We definitely have a successful result! */
|
|
155
115
|
return done || resolve(message.filesDir && message.filesList ?
|
|
156
|
-
|
|
116
|
+
Files.builder(message.filesDir).add(...message.filesList).build() :
|
|
157
117
|
undefined)
|
|
158
118
|
})
|
|
159
119
|
|
|
@@ -161,16 +121,16 @@ export abstract class ForkingPlug implements Plug<Files | undefined> {
|
|
|
161
121
|
try {
|
|
162
122
|
const result = child.send(message, (error) => {
|
|
163
123
|
if (error) {
|
|
164
|
-
|
|
124
|
+
context.log.error('Error sending message to child process (callback failure)', error)
|
|
165
125
|
reject(failure())
|
|
166
126
|
}
|
|
167
127
|
})
|
|
168
128
|
if (! result) {
|
|
169
|
-
|
|
129
|
+
context.log.error('Error sending message to child process (send returned false)')
|
|
170
130
|
reject(failure())
|
|
171
131
|
}
|
|
172
132
|
} catch (error) {
|
|
173
|
-
|
|
133
|
+
context.log.error('Error sending message to child process (exception caught)', error)
|
|
174
134
|
reject(failure())
|
|
175
135
|
}
|
|
176
136
|
}).finally(() => done = true)
|
|
@@ -204,7 +164,6 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
204
164
|
constructorArgs,
|
|
205
165
|
taskName,
|
|
206
166
|
buildFile,
|
|
207
|
-
buildDir,
|
|
208
167
|
filesDir,
|
|
209
168
|
filesList,
|
|
210
169
|
logOpts,
|
|
@@ -213,12 +172,12 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
213
172
|
/* Restore logging options first */
|
|
214
173
|
Object.assign(logOptions, logOpts)
|
|
215
174
|
|
|
216
|
-
/* First of all, our
|
|
217
|
-
const
|
|
218
|
-
|
|
175
|
+
/* First of all, our plug context */
|
|
176
|
+
const context = new Context(buildFile, taskName)
|
|
177
|
+
context.log.debug('Message from parent process', message)
|
|
219
178
|
|
|
220
179
|
/* Contextualize this run, and go! */
|
|
221
|
-
const result = runAsync(
|
|
180
|
+
const result = runAsync(context, taskName, async () => {
|
|
222
181
|
/* Check that we have a proper script file name */
|
|
223
182
|
assert(resolveFile(scriptFile), `Script file ${$p(scriptFile)} not found`)
|
|
224
183
|
const script = await import(scriptFile)
|
|
@@ -232,11 +191,11 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
232
191
|
`Script ${$p(scriptFile)} does not export a default constructor`)
|
|
233
192
|
|
|
234
193
|
/* Create the Plug instance and our Files instance */
|
|
235
|
-
const plug = new Ctor(...constructorArgs) as Plug<
|
|
236
|
-
const files =
|
|
194
|
+
const plug = new Ctor(...constructorArgs) as Plug<PlugResult>
|
|
195
|
+
const files = Files.builder(filesDir).add(...filesList).build()
|
|
237
196
|
|
|
238
197
|
/* Run and return the result */
|
|
239
|
-
return plug.pipe(files,
|
|
198
|
+
return plug.pipe(files, context)
|
|
240
199
|
})
|
|
241
200
|
|
|
242
201
|
/* The result promise generates a message back to the parent process */
|
|
@@ -248,7 +207,7 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
248
207
|
process.send!(message, (err: Error) => err ? reject(err) : resolve())
|
|
249
208
|
})
|
|
250
209
|
}, (error) => {
|
|
251
|
-
|
|
210
|
+
context.log.error(error)
|
|
252
211
|
return new Promise<void>((resolve, reject) => {
|
|
253
212
|
process.send!({ failed: true }, (err: Error) => err ? reject(err) : resolve())
|
|
254
213
|
})
|
|
@@ -256,10 +215,10 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
256
215
|
|
|
257
216
|
/* The promise generated by `process.send()` simply triggers process exit */
|
|
258
217
|
promise.then(() => {
|
|
259
|
-
|
|
218
|
+
context.log.debug('Forked plug exiting')
|
|
260
219
|
process.exit(0)
|
|
261
220
|
}, (error) => {
|
|
262
|
-
|
|
221
|
+
context.log.error('Error sending message back to parent process', error)
|
|
263
222
|
process.exit(1)
|
|
264
223
|
})
|
|
265
224
|
})
|