@plugjs/plug 0.0.15 → 0.0.17
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/assert.cjs +18 -38
- package/dist/assert.cjs.map +1 -1
- package/dist/assert.d.ts +2 -16
- package/dist/assert.mjs +17 -32
- package/dist/assert.mjs.map +1 -1
- package/dist/async.cjs +2 -2
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +1 -1
- package/dist/async.mjs +2 -2
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +20 -72
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +5 -3
- package/dist/build.mjs +22 -74
- package/dist/build.mjs.map +2 -2
- package/dist/failure.cjs +48 -0
- package/dist/failure.cjs.map +6 -0
- package/dist/failure.d.ts +13 -0
- package/dist/failure.mjs +22 -0
- package/dist/failure.mjs.map +6 -0
- package/dist/fork.cjs +21 -10
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +19 -1
- package/dist/fork.mjs +21 -11
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +8 -40
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.ts +23 -3
- package/dist/helpers.mjs +8 -40
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.cjs +16 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -1
- package/dist/log/logger.cjs +15 -12
- package/dist/log/logger.cjs.map +1 -1
- package/dist/log/logger.d.ts +2 -0
- package/dist/log/logger.mjs +15 -12
- package/dist/log/logger.mjs.map +1 -1
- package/dist/log/report.cjs +7 -4
- package/dist/log/report.cjs.map +1 -1
- package/dist/log/report.mjs +7 -4
- package/dist/log/report.mjs.map +1 -1
- package/dist/log.cjs +3 -0
- package/dist/log.cjs.map +1 -1
- package/dist/log.mjs +3 -0
- package/dist/log.mjs.map +1 -1
- package/dist/pipe.cjs +56 -14
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +42 -28
- package/dist/pipe.mjs +60 -13
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs +1 -1
- package/dist/plugs/copy.cjs.map +1 -1
- package/dist/plugs/copy.mjs +1 -1
- package/dist/plugs/copy.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +1 -2
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.mjs +1 -2
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +6 -1
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +1 -1
- package/dist/plugs/debug.mjs +7 -2
- package/dist/plugs/debug.mjs.map +1 -1
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs +2 -1
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +1 -1
- package/dist/plugs/eslint/runner.mjs +3 -2
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/plugs/eslint.cjs +2 -2
- package/dist/plugs/eslint.cjs.map +1 -1
- package/dist/plugs/eslint.mjs +1 -1
- package/dist/plugs/exec.cjs +1 -1
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.mjs +1 -1
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +2 -2
- package/dist/plugs/mocha/runner.cjs.map +1 -1
- package/dist/plugs/mocha/runner.d.ts +1 -1
- package/dist/plugs/mocha/runner.mjs +2 -2
- package/dist/plugs/mocha/runner.mjs.map +1 -1
- package/dist/plugs/mocha.cjs +2 -2
- package/dist/plugs/mocha.cjs.map +1 -1
- package/dist/plugs/mocha.mjs +1 -1
- package/dist/plugs/rmf.mjs.map +1 -1
- package/dist/plugs/tsc/report.cjs.map +1 -1
- package/dist/plugs/tsc/report.mjs.map +1 -1
- package/dist/plugs/tsc/runner.cjs +3 -6
- package/dist/plugs/tsc/runner.cjs.map +2 -2
- package/dist/plugs/tsc/runner.mjs +4 -7
- package/dist/plugs/tsc/runner.mjs.map +2 -2
- package/dist/plugs/tsc.cjs +2 -2
- package/dist/plugs/tsc.cjs.map +1 -1
- package/dist/plugs/tsc.mjs +1 -1
- package/dist/types.d.ts +7 -8
- package/dist/utils/asyncfs.cjs.map +1 -1
- package/dist/utils/asyncfs.mjs.map +1 -1
- package/extra/cli.mjs +1 -1
- package/package.json +14 -13
- package/src/assert.ts +20 -34
- package/src/async.ts +3 -3
- package/src/failure.ts +31 -0
- package/src/fork.ts +43 -10
- package/src/helpers.ts +35 -56
- package/src/index.ts +4 -3
- package/src/log/logger.ts +22 -16
- package/src/log/report.ts +7 -3
- package/src/log.ts +4 -0
- package/src/pipe.ts +147 -44
- package/src/plugs/copy.ts +2 -2
- package/src/plugs/coverage/report.ts +1 -1
- package/src/plugs/coverage.ts +2 -3
- package/src/plugs/debug.ts +11 -4
- package/src/plugs/esbuild.ts +1 -1
- package/src/plugs/eslint/runner.ts +4 -3
- package/src/plugs/eslint.ts +1 -1
- package/src/plugs/exec.ts +1 -1
- package/src/plugs/mocha/runner.ts +3 -3
- package/src/plugs/mocha.ts +1 -1
- package/src/plugs/rmf.ts +1 -1
- package/src/plugs/tsc/runner.ts +5 -8
- package/src/plugs/tsc.ts +1 -1
- package/src/types.ts +8 -15
- package/src/utils/asyncfs.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/tsc/report.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,iBAAuE;AACvE,mBAAkD;AAElD,SAAS,oBAAoB,OAAkC,SAAS,GAAa;AACnF,QAAM,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC,IAAI,MAAM;AAEnD,MAAI,MAAM,MAAM;AACd,UAAM,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC;AACrE,WAAO,CAAE,SAAS,GAAG,KAAK,KAAK,CAAC,CAAE;AAAA,EACpC,OAAO;AACL,WAAO,CAAE,OAAQ;AAAA,EACnB;AACF;AAEA,SAAS,mBACL,aACA,WACc;AAChB,SAAO,YAAY,IAAI,CAAC,eAA6B;AAKnD,QAAI;AACJ,YAAQ,WAAW;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,iBAAuE;AACvE,mBAAkD;AAElD,SAAS,oBAAoB,OAAkC,SAAS,GAAa;AACnF,QAAM,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC,IAAI,MAAM;AAEnD,MAAI,MAAM,MAAM;AACd,UAAM,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC;AACrE,WAAO,CAAE,SAAS,GAAG,KAAK,KAAK,CAAC,CAAE;AAAA,EACpC,OAAO;AACL,WAAO,CAAE,OAAQ;AAAA,EACnB;AACF;AAEA,SAAS,mBACL,aACA,WACc;AAChB,SAAO,YAAY,IAAI,CAAC,eAA6B;AAKnD,QAAI;AACJ,YAAQ,WAAW,UAAU;AAAA,MAC3B,KAAK,kBAAAA,QAAG,mBAAmB;AAAO,gBAAQ;AAAO;AAAA,MACjD,KAAK,kBAAAA,QAAG,mBAAmB;AAAS,gBAAQ;AAAM;AAAA,MAClD;AAAS,gBAAQ;AAAA,IACnB;AAGA,QAAI;AACJ,QAAI,OAAO,WAAW,gBAAgB,UAAU;AAC9C,gBAAU,WAAW;AAAA,IACvB,OAAO;AACL,gBAAU,oBAAoB,WAAW,WAAW;AAAA,IACtD;AAGA,UAAM,OAAO,KAAK,WAAW;AAG7B,QAAI,WAAW,MAAM;AACnB,YAAM,EAAE,MAAM,YAAY,OAAO,OAAO,IAAI;AAC5C,YAAM,WAAO,kCAAoB,WAAW,WAAW,QAAQ;AAC/D,YAAM,SAAS,WAAW,YAAY;AAEtC,UAAI,UAAU,QAAW;AACvB,cAAM,WAAW,WAAW,8BAA8B,KAAK;AAC/D,YAAI,EAAE,MAAM,WAAW,OAAO,IAAI;AAClC,kBAAU;AACV,gBAAQ;AAER,eAAO,EAAE,OAAO,SAAS,MAAM,MAAM,QAAQ,MAAM,QAAQ,OAAO;AAAA,MACpE,OAAO;AACL,eAAO,EAAE,OAAO,SAAS,MAAM,MAAM,OAAO;AAAA,MAC9C;AAAA,IACF,OAAO;AACL,aAAO,EAAE,OAAO,SAAS,KAAK;AAAA,IAChC;AAAA,EACF,CAAC;AACH;AAGO,SAAS,aACZ,QACA,aACA,WACI;AACN,QAAM,UAAU,mBAAmB,aAAa,SAAS;AACzD,SAAO,IAAI,GAAG,OAAO;AACvB;",
|
|
5
5
|
"names": ["ts"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/tsc/report.ts"],
|
|
4
|
-
"mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,OAAO,QAA2C,YAAY;AACvE,SAAuB,2BAA2B;AAElD,SAAS,oBAAoB,OAAkC,SAAS,GAAa;AACnF,QAAM,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC,IAAI,MAAM;AAEnD,MAAI,MAAM,MAAM;AACd,UAAM,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC;AACrE,WAAO,CAAE,SAAS,GAAG,KAAK,KAAK,CAAC,CAAE;AAAA,EACpC,OAAO;AACL,WAAO,CAAE,OAAQ;AAAA,EACnB;AACF;AAEA,SAAS,mBACL,aACA,WACc;AAChB,SAAO,YAAY,IAAI,CAAC,eAA6B;AAKnD,QAAI;AACJ,YAAQ,WAAW;AAAA,
|
|
4
|
+
"mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,OAAO,QAA2C,YAAY;AACvE,SAAuB,2BAA2B;AAElD,SAAS,oBAAoB,OAAkC,SAAS,GAAa;AACnF,QAAM,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC,IAAI,MAAM;AAEnD,MAAI,MAAM,MAAM;AACd,UAAM,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC;AACrE,WAAO,CAAE,SAAS,GAAG,KAAK,KAAK,CAAC,CAAE;AAAA,EACpC,OAAO;AACL,WAAO,CAAE,OAAQ;AAAA,EACnB;AACF;AAEA,SAAS,mBACL,aACA,WACc;AAChB,SAAO,YAAY,IAAI,CAAC,eAA6B;AAKnD,QAAI;AACJ,YAAQ,WAAW,UAAU;AAAA,MAC3B,KAAK,GAAG,mBAAmB;AAAO,gBAAQ;AAAO;AAAA,MACjD,KAAK,GAAG,mBAAmB;AAAS,gBAAQ;AAAM;AAAA,MAClD;AAAS,gBAAQ;AAAA,IACnB;AAGA,QAAI;AACJ,QAAI,OAAO,WAAW,gBAAgB,UAAU;AAC9C,gBAAU,WAAW;AAAA,IACvB,OAAO;AACL,gBAAU,oBAAoB,WAAW,WAAW;AAAA,IACtD;AAGA,UAAM,OAAO,KAAK,WAAW;AAG7B,QAAI,WAAW,MAAM;AACnB,YAAM,EAAE,MAAM,YAAY,OAAO,OAAO,IAAI;AAC5C,YAAM,OAAO,oBAAoB,WAAW,WAAW,QAAQ;AAC/D,YAAM,SAAS,WAAW,YAAY;AAEtC,UAAI,UAAU,QAAW;AACvB,cAAM,WAAW,WAAW,8BAA8B,KAAK;AAC/D,YAAI,EAAE,MAAM,WAAW,OAAO,IAAI;AAClC,kBAAU;AACV,gBAAQ;AAER,eAAO,EAAE,OAAO,SAAS,MAAM,MAAM,QAAQ,MAAM,QAAQ,OAAO;AAAA,MACpE,OAAO;AACL,eAAO,EAAE,OAAO,SAAS,MAAM,MAAM,OAAO;AAAA,MAC9C;AAAA,IACF,OAAO;AACL,aAAO,EAAE,OAAO,SAAS,KAAK;AAAA,IAChC;AAAA,EACF,CAAC;AACH;AAGO,SAAS,aACZ,QACA,aACA,WACI;AACN,QAAM,UAAU,mBAAmB,aAAa,SAAS;AACzD,SAAO,IAAI,GAAG,OAAO;AACvB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -31,6 +31,7 @@ __export(runner_exports, {
|
|
|
31
31
|
module.exports = __toCommonJS(runner_exports);
|
|
32
32
|
var import_typescript = __toESM(require("typescript"));
|
|
33
33
|
var import_assert = require("../../assert.cjs");
|
|
34
|
+
var import_failure = require("../../failure.cjs");
|
|
34
35
|
var import_files = require("../../files.cjs");
|
|
35
36
|
var import_log = require("../../log.cjs");
|
|
36
37
|
var import_paths = require("../../paths.cjs");
|
|
@@ -95,14 +96,10 @@ var Tsc = class {
|
|
|
95
96
|
promises.push(builder.write(fileName, code).then((file) => {
|
|
96
97
|
import_log.log.trace("Written", (0, import_log.$p)(file));
|
|
97
98
|
}).catch((error) => {
|
|
98
|
-
|
|
99
|
-
throw (0, import_assert.failure)();
|
|
99
|
+
throw new import_failure.BuildFailure(`Error writing to ${fileName}`, [error]);
|
|
100
100
|
}));
|
|
101
101
|
});
|
|
102
|
-
|
|
103
|
-
const failures = settlements.reduce((failures2, s) => failures2 + s.status === "rejected" ? 1 : 0, 0);
|
|
104
|
-
if (failures)
|
|
105
|
-
throw (0, import_assert.failure)();
|
|
102
|
+
await (0, import_assert.assertPromises)(promises, "Error writing files");
|
|
106
103
|
(0, import_report.updateReport)(report, result.diagnostics, rootDir);
|
|
107
104
|
if (report.errors)
|
|
108
105
|
report.done(true);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/tsc/runner.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,
|
|
5
|
-
"names": ["import_options", "ts"
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_options", "ts"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// plugs/tsc/runner.ts
|
|
2
2
|
import ts from "typescript";
|
|
3
|
-
import {
|
|
3
|
+
import { assertPromises } from "../../assert.mjs";
|
|
4
|
+
import { BuildFailure } from "../../failure.mjs";
|
|
4
5
|
import { Files } from "../../files.mjs";
|
|
5
6
|
import { $p, log } from "../../log.mjs";
|
|
6
7
|
import { resolveFile } from "../../paths.mjs";
|
|
@@ -65,14 +66,10 @@ var Tsc = class {
|
|
|
65
66
|
promises.push(builder.write(fileName, code).then((file) => {
|
|
66
67
|
log.trace("Written", $p(file));
|
|
67
68
|
}).catch((error) => {
|
|
68
|
-
|
|
69
|
-
throw failure();
|
|
69
|
+
throw new BuildFailure(`Error writing to ${fileName}`, [error]);
|
|
70
70
|
}));
|
|
71
71
|
});
|
|
72
|
-
|
|
73
|
-
const failures = settlements.reduce((failures2, s) => failures2 + s.status === "rejected" ? 1 : 0, 0);
|
|
74
|
-
if (failures)
|
|
75
|
-
throw failure();
|
|
72
|
+
await assertPromises(promises, "Error writing files");
|
|
76
73
|
updateReport(report, result.diagnostics, rootDir);
|
|
77
74
|
if (report.errors)
|
|
78
75
|
report.done(true);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/tsc/runner.ts"],
|
|
4
|
-
"mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
package/dist/plugs/tsc.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
// plugs/tsc.ts
|
|
4
|
+
var import_fork = require("../fork.cjs");
|
|
4
5
|
var import_paths = require("../paths.cjs");
|
|
5
|
-
|
|
6
|
-
(0, import_pipe.installForking)("tsc", (0, import_paths.requireResolve)(__filename, "./tsc/runner"));
|
|
6
|
+
(0, import_fork.installForking)("tsc", (0, import_paths.requireResolve)(__filename, "./tsc/runner"));
|
|
7
7
|
//# sourceMappingURL=tsc.cjs.map
|
package/dist/plugs/tsc.cjs.map
CHANGED
package/dist/plugs/tsc.mjs
CHANGED
|
@@ -4,8 +4,8 @@ var __commonJS = (cb, mod) => function __require() {
|
|
|
4
4
|
};
|
|
5
5
|
|
|
6
6
|
// plugs/tsc.ts
|
|
7
|
+
import { installForking } from "../fork.mjs";
|
|
7
8
|
import { requireResolve } from "../paths.mjs";
|
|
8
|
-
import { installForking } from "../pipe.mjs";
|
|
9
9
|
var require_tsc = __commonJS({
|
|
10
10
|
"plugs/tsc.ts"() {
|
|
11
11
|
installForking("tsc", requireResolve(import.meta.url, "./tsc/runner"));
|
package/dist/types.d.ts
CHANGED
|
@@ -33,13 +33,13 @@ export interface Task<T extends Result = Result> {
|
|
|
33
33
|
/** The absolute file name where this {@link Task} was defined */
|
|
34
34
|
readonly buildFile: AbsolutePath;
|
|
35
35
|
/** Invoke a task from (possibly) a different {@link Context} */
|
|
36
|
-
|
|
36
|
+
invoke(state: State, taskName: string): Promise<T>;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* The {@link TaskResult} type identifies _what_ can be returned by a
|
|
40
40
|
* {@link TaskDef | _task definition_}.
|
|
41
41
|
*/
|
|
42
|
-
export declare type TaskResult = Pipe |
|
|
42
|
+
export declare type TaskResult = Pipe | Files | void | undefined;
|
|
43
43
|
/** The {@link TaskDef} type identifies the _definition_ of a task. */
|
|
44
44
|
export declare type TaskDef<R extends TaskResult = TaskResult> = () => R | Promise<R>;
|
|
45
45
|
/** A type identifying all _properties_ of a {@link Context}. */
|
|
@@ -48,12 +48,11 @@ export declare type Props<D extends BuildDef = BuildDef> = {
|
|
|
48
48
|
};
|
|
49
49
|
/** A type identifying all _tasks_ in a {@link Context} */
|
|
50
50
|
export declare type Tasks<D extends BuildDef = BuildDef> = {
|
|
51
|
-
readonly [k in string & keyof D as D[k] extends TaskDef | Task ? k : never]: D[k] extends TaskDef<infer R> ? R extends void | undefined ? Task<undefined> : R extends
|
|
51
|
+
readonly [k in string & keyof D as D[k] extends TaskDef | Task ? k : never]: D[k] extends TaskDef<infer R> ? R extends void | undefined ? Task<undefined> : R extends Pipe | Files ? Task<Files> : never : D[k] extends Task ? D[k] : never;
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
|
-
* The {@link BuildDef} interface describes the _definition_ of a
|
|
55
|
-
*
|
|
56
|
-
* a {@link Build}.
|
|
54
|
+
* The {@link BuildDef} interface describes the _definition_ of a {@link Build},
|
|
55
|
+
* all its properties and tasks.
|
|
57
56
|
*/
|
|
58
57
|
export interface BuildDef {
|
|
59
58
|
[k: string]: string | TaskDef | Task;
|
|
@@ -63,10 +62,10 @@ export interface BuildDef {
|
|
|
63
62
|
* {@link TaskDef | task definitions }.
|
|
64
63
|
*/
|
|
65
64
|
export declare type ThisBuild<D extends BuildDef> = {
|
|
66
|
-
readonly [k in keyof D]: k extends string ? D[k] extends TaskDef<infer R> ? R extends Promise<undefined> | void | undefined ? () => Promise<undefined> : R extends Pipe | Files ? () => Pipe
|
|
65
|
+
readonly [k in keyof D]: k extends string ? D[k] extends TaskDef<infer R> ? R extends Promise<undefined> | void | undefined ? () => Promise<undefined> : R extends Pipe | Files ? () => Pipe : never : D[k] extends Task<infer R> ? R extends undefined ? () => Promise<undefined> : R extends Files ? () => Pipe : never : D[k] extends string ? string : never : never;
|
|
67
66
|
};
|
|
68
67
|
/**
|
|
69
68
|
* The {@link Build} type represents the collection of {@link Task}s
|
|
70
69
|
* and _properties_ compiled from a {@link BuildDef | build definition}.
|
|
71
70
|
*/
|
|
72
|
-
export declare type Build<D extends BuildDef = BuildDef
|
|
71
|
+
export declare type Build<D extends BuildDef = BuildDef> = Tasks<D> & Props<D>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/asyncfs.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA0B;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA0B;AAE1B,sBAAgB;AA0BhB,IAAM,KAAK,OAAO,QAAQ,gBAAAA,OAAU,EAAE,OAAO,CAACC,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,gBAAAD,SAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAC,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,CAAC,CAAQ;AAIL,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;AAGjB,IAAM,cAAc;",
|
|
5
5
|
"names": ["fsp", "fs"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/asyncfs.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,iBAAiB;
|
|
4
|
+
"mappings": ";AAAA,SAAS,iBAAiB;AAE1B,OAAO,SAAS;AA0BhB,IAAM,KAAK,OAAO,QAAQ,GAAU,EAAE,OAAO,CAACA,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAA,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,CAAC,CAAQ;AAIL,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;AAGjB,IAAM,cAAc;",
|
|
5
5
|
"names": ["fs"]
|
|
6
6
|
}
|
package/extra/cli.mjs
CHANGED
|
@@ -231,4 +231,4 @@ function isFile(path) {
|
|
|
231
231
|
export {
|
|
232
232
|
parseCommandLine
|
|
233
233
|
};
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
234
|
+
//# 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.17",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -28,31 +28,32 @@
|
|
|
28
28
|
"author": "",
|
|
29
29
|
"license": "ISC",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@babel/parser": "^7.
|
|
32
|
-
"@babel/types": "^7.
|
|
31
|
+
"@babel/parser": "^7.19.6",
|
|
32
|
+
"@babel/types": "^7.19.4",
|
|
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.
|
|
38
|
-
"mocha": "^10.
|
|
36
|
+
"esbuild": "^0.15.12",
|
|
37
|
+
"eslint": "^8.26.0",
|
|
38
|
+
"mocha": "^10.1.0",
|
|
39
39
|
"picomatch": "^2.3.1",
|
|
40
40
|
"source-map": "^0.7.4",
|
|
41
|
-
"typescript": "^4.8.
|
|
41
|
+
"typescript": "^4.8.4",
|
|
42
42
|
"yargs-parser": "^21.1.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@plugjs/eslint-plugin": "^0.0.2",
|
|
46
46
|
"@types/chai": "^4.3.3",
|
|
47
47
|
"@types/diff": "^5.0.2",
|
|
48
|
-
"@types/eslint": "^8.4.
|
|
49
|
-
"@types/mocha": "^
|
|
50
|
-
"@types/ms": "^0.7.31",
|
|
48
|
+
"@types/eslint": "^8.4.8",
|
|
49
|
+
"@types/mocha": "^10.0.0",
|
|
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.41.0",
|
|
53
|
+
"@typescript-eslint/parser": "^5.41.0",
|
|
55
54
|
"chai": "^4.3.6",
|
|
56
|
-
"eslint-config-google": "^0.14.0"
|
|
55
|
+
"eslint-config-google": "^0.14.0",
|
|
56
|
+
"eslint-import-resolver-typescript": "^3.5.2",
|
|
57
|
+
"eslint-plugin-import": "^2.26.0"
|
|
57
58
|
}
|
|
58
59
|
}
|
package/src/assert.ts
CHANGED
|
@@ -2,46 +2,32 @@
|
|
|
2
2
|
* BUILD FAILURES *
|
|
3
3
|
* ========================================================================== */
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
const buildFailure = Symbol.for('plugjs:buildFailure')
|
|
5
|
+
import { BuildFailure } from './failure'
|
|
7
6
|
|
|
8
|
-
/**
|
|
9
|
-
export function
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
/** Await and assert that all specified promises were fulfilled */
|
|
8
|
+
export async function assertPromises<T>(promises: (T | Promise<T>)[], message: string): Promise<T[]> {
|
|
9
|
+
// Await for the settlement of all the promises
|
|
10
|
+
const settlements = await Promise.allSettled(promises)
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
12
|
+
// Separate the good from the bad...
|
|
13
|
+
const results: T[] = []
|
|
14
|
+
const failures = new Set<any>()
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
16
|
+
settlements.forEach((settlement) => {
|
|
17
|
+
if (settlement.status === 'fulfilled') {
|
|
18
|
+
results.push(settlement.value)
|
|
19
|
+
} else {
|
|
20
|
+
failures.add(settlement.reason)
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
// Check for errors and report/fail if anything happened
|
|
25
|
+
if (failures.size) throw new BuildFailure(message, [ ...failures ])
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
export class BuildFailure extends Error {
|
|
28
|
-
constructor() {
|
|
29
|
-
super('Build Failure')
|
|
30
|
-
Object.defineProperty(this, buildFailure, { value: buildFailure })
|
|
31
|
-
}
|
|
27
|
+
return results
|
|
32
28
|
}
|
|
33
29
|
|
|
34
30
|
/** Asserts something as _truthy_ and fail the build if not */
|
|
35
31
|
export function assert(assertion: any, message: string): asserts assertion {
|
|
36
|
-
if (! assertion) throw new
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Throw a {@link BuildError} (an {@link Error} printed nicely) */
|
|
40
|
-
export function fail(message: string): never {
|
|
41
|
-
throw new BuildError(message)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Return a non-logged {@link BuildFailure} */
|
|
45
|
-
export function failure(): BuildFailure {
|
|
46
|
-
return new BuildFailure()
|
|
32
|
+
if (! assertion) throw new BuildFailure(message)
|
|
47
33
|
}
|
package/src/async.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { Context } from './pipe'
|
|
2
|
+
|
|
1
3
|
import { AsyncLocalStorage } from 'node:async_hooks'
|
|
2
|
-
import { assert } from './assert'
|
|
3
|
-
import { Context } from './pipe'
|
|
4
4
|
|
|
5
5
|
/* ========================================================================== *
|
|
6
6
|
* EXPORTED *
|
|
@@ -39,7 +39,7 @@ export function currentContext(): Context | undefined {
|
|
|
39
39
|
*/
|
|
40
40
|
export function requireContext(): Context {
|
|
41
41
|
const context = storage.getStore()
|
|
42
|
-
|
|
42
|
+
if (! context) throw new Error('Unable to retrieve current context')
|
|
43
43
|
return context
|
|
44
44
|
}
|
|
45
45
|
|
package/src/failure.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** A symbol marking {@link BuildFailure} instances */
|
|
2
|
+
const buildFailure = Symbol.for('plugjs:buildFailure')
|
|
3
|
+
|
|
4
|
+
/** Check if the specified argument is a {@link BuildFailure} */
|
|
5
|
+
export function isBuildFailure(arg: any): arg is BuildFailure {
|
|
6
|
+
return arg && arg[buildFailure] === buildFailure
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** A {@link BuildFailure} represents an error _already logged_ in our build. */
|
|
10
|
+
export class BuildFailure extends Error {
|
|
11
|
+
readonly errors: readonly any[]
|
|
12
|
+
logged: boolean
|
|
13
|
+
|
|
14
|
+
/** Construct a {@link BuildFailure} that was already _logged_ (internal) */
|
|
15
|
+
constructor(options: { logged: true })
|
|
16
|
+
/** Construct a {@link BuildFailure} with a detail message */
|
|
17
|
+
constructor(message: string, errors?: any[])
|
|
18
|
+
// Constructor overload implementation
|
|
19
|
+
constructor(options: string | { logged: boolean } = 'Build Failure', errors: any[] = []) {
|
|
20
|
+
const { logged, message } =
|
|
21
|
+
typeof options === 'string' ?
|
|
22
|
+
{ message: options, logged: false } :
|
|
23
|
+
{ message: 'Build Failure', ...options }
|
|
24
|
+
|
|
25
|
+
super(message)
|
|
26
|
+
Error.captureStackTrace(this, BuildFailure)
|
|
27
|
+
Object.defineProperty(this, 'buildFailure', { value: buildFailure })
|
|
28
|
+
this.errors = errors.filter((e) => ! (isBuildFailure(e) && e.logged))
|
|
29
|
+
this.logged = logged
|
|
30
|
+
}
|
|
31
|
+
}
|
package/src/fork.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { fork } from 'node:child_process'
|
|
2
|
-
import { assert
|
|
2
|
+
import { assert } from './assert'
|
|
3
3
|
import { runAsync } from './async'
|
|
4
|
+
import { BuildFailure } from './failure'
|
|
4
5
|
import { Files } from './files'
|
|
5
6
|
import { $gry, $p, LogOptions, logOptions } from './log'
|
|
6
7
|
import { AbsolutePath, requireFilename, resolveFile } from './paths'
|
|
7
|
-
import { Plug,
|
|
8
|
+
import { Context, install, Plug, PlugName, PlugResult } from './pipe'
|
|
8
9
|
|
|
9
10
|
/** Fork data, from parent to child process */
|
|
10
11
|
export interface ForkData {
|
|
@@ -88,7 +89,7 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
88
89
|
|
|
89
90
|
child.on('error', (error) => {
|
|
90
91
|
context.log.error('Child process error', error)
|
|
91
|
-
return done || reject(
|
|
92
|
+
return done || reject(new BuildFailure({ logged: true }))
|
|
92
93
|
})
|
|
93
94
|
|
|
94
95
|
child.on('message', (message: ForkResult) => {
|
|
@@ -99,16 +100,16 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
99
100
|
child.on('exit', (code, signal) => {
|
|
100
101
|
if (signal) {
|
|
101
102
|
context.log.error(`Child process exited with signal ${signal}`, $gry(`(pid=${child.pid})`))
|
|
102
|
-
return done || reject(
|
|
103
|
+
return done || reject(new BuildFailure({ logged: true }))
|
|
103
104
|
} else if (code !== 0) {
|
|
104
105
|
context.log.error(`Child process exited with code ${code}`, $gry(`(pid=${child.pid})`))
|
|
105
|
-
return done || reject(
|
|
106
|
+
return done || reject(new BuildFailure({ logged: true }))
|
|
106
107
|
} else if (! result) {
|
|
107
108
|
context.log.error('Child process exited with no result', $gry(`(pid=${child.pid})`))
|
|
108
|
-
return done || reject(
|
|
109
|
+
return done || reject(new BuildFailure({ logged: true }))
|
|
109
110
|
} else if (result.failed) {
|
|
110
111
|
// definitely logged on the child side
|
|
111
|
-
return done || reject(
|
|
112
|
+
return done || reject(new BuildFailure({ logged: true }))
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
/* We definitely have a successful result! */
|
|
@@ -122,16 +123,16 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
122
123
|
const result = child.send(message, (error) => {
|
|
123
124
|
if (error) {
|
|
124
125
|
context.log.error('Error sending message to child process (callback failure)', error)
|
|
125
|
-
reject(
|
|
126
|
+
reject(new BuildFailure({ logged: true }))
|
|
126
127
|
}
|
|
127
128
|
})
|
|
128
129
|
if (! result) {
|
|
129
130
|
context.log.error('Error sending message to child process (send returned false)')
|
|
130
|
-
reject(
|
|
131
|
+
reject(new BuildFailure({ logged: true }))
|
|
131
132
|
}
|
|
132
133
|
} catch (error) {
|
|
133
134
|
context.log.error('Error sending message to child process (exception caught)', error)
|
|
134
|
-
reject(
|
|
135
|
+
reject(new BuildFailure({ logged: true }))
|
|
135
136
|
}
|
|
136
137
|
}).finally(() => done = true)
|
|
137
138
|
}
|
|
@@ -223,3 +224,35 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
223
224
|
})
|
|
224
225
|
})
|
|
225
226
|
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Install a _forking_ {@link Plug} in the {@link Pipe}, in other words
|
|
230
|
+
* execute the plug in a separate process.
|
|
231
|
+
*
|
|
232
|
+
* As a contract, if the _last non-null_ parameter of the constructor is an
|
|
233
|
+
* object and contains the key `coverageDir`, the process will be forked with
|
|
234
|
+
* the approptiately resolved `NODE_V8_COVERAGE` environment variable.
|
|
235
|
+
*
|
|
236
|
+
* Also, forking plugs require some special attention:
|
|
237
|
+
*
|
|
238
|
+
* * plug functions are not supported, only classes implementing the
|
|
239
|
+
* {@link Plug} interface can be used with this.
|
|
240
|
+
*
|
|
241
|
+
* * the class itself _MUST_ be exported as the _default_ export for the
|
|
242
|
+
* `scriptFile` specified below. This is to simplify interoperability between
|
|
243
|
+
* CommonJS and ESM modules as we use dynamic `import(...)` statements.
|
|
244
|
+
*/
|
|
245
|
+
export function installForking<Name extends PlugName>(
|
|
246
|
+
plugName: Name,
|
|
247
|
+
scriptFile: AbsolutePath,
|
|
248
|
+
): void {
|
|
249
|
+
/** Extend out our ForkingPlug below */
|
|
250
|
+
const ctor = class extends ForkingPlug {
|
|
251
|
+
constructor(...args: any[]) {
|
|
252
|
+
super(scriptFile, args)
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/** Install the plug in */
|
|
257
|
+
install(plugName, ctor as any)
|
|
258
|
+
}
|