@plugjs/plug 0.4.34 → 0.5.0
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/build.cjs +14 -5
- package/dist/build.cjs.map +1 -1
- package/dist/build.d.ts +3 -1
- package/dist/build.mjs +14 -6
- package/dist/build.mjs.map +1 -1
- package/dist/cli.mjs +14 -11
- package/dist/cli.mjs.map +2 -2
- package/dist/fork.cjs +23 -18
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +1 -0
- package/dist/fork.mjs +23 -18
- package/dist/fork.mjs.map +1 -1
- package/dist/fs.cjs +1 -1
- package/dist/fs.cjs.map +1 -1
- package/dist/fs.d.ts +1 -1
- package/dist/fs.mjs +1 -1
- package/dist/fs.mjs.map +1 -1
- package/dist/helpers.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/logging/emit.cjs +31 -2
- package/dist/logging/emit.cjs.map +2 -2
- package/dist/logging/emit.d.ts +14 -0
- package/dist/logging/emit.mjs +29 -2
- package/dist/logging/emit.mjs.map +2 -2
- package/dist/logging/github.cjs +4 -7
- package/dist/logging/github.cjs.map +1 -1
- package/dist/logging/github.mjs +4 -7
- package/dist/logging/github.mjs.map +1 -1
- package/dist/logging/logger.cjs +24 -38
- package/dist/logging/logger.cjs.map +1 -1
- package/dist/logging/logger.d.ts +7 -7
- package/dist/logging/logger.mjs +25 -39
- package/dist/logging/logger.mjs.map +1 -1
- package/dist/logging/options.cjs +31 -30
- package/dist/logging/options.cjs.map +1 -1
- package/dist/logging/options.d.ts +2 -11
- package/dist/logging/options.mjs +31 -30
- package/dist/logging/options.mjs.map +1 -1
- package/dist/logging.cjs +5 -3
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.mjs +5 -3
- package/dist/logging.mjs.map +1 -1
- package/dist/pipe.d.ts +1 -1
- package/dist/plugs/build.cjs +12 -4
- package/dist/plugs/build.cjs.map +1 -1
- package/dist/plugs/build.d.ts +8 -3
- package/dist/plugs/build.mjs +12 -4
- package/dist/plugs/build.mjs.map +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/exports.cjs +3 -5
- package/dist/plugs/exports.cjs.map +1 -1
- package/dist/plugs/exports.mjs +3 -5
- package/dist/plugs/exports.mjs.map +1 -1
- package/dist/utils/ansi.cjs +39 -0
- package/dist/utils/ansi.cjs.map +6 -0
- package/dist/utils/ansi.d.ts +4 -0
- package/dist/utils/ansi.mjs +13 -0
- package/dist/utils/ansi.mjs.map +6 -0
- package/dist/utils/exec.cjs +10 -1
- package/dist/utils/exec.cjs.map +1 -1
- package/dist/utils/exec.mjs +11 -2
- package/dist/utils/exec.mjs.map +1 -1
- package/dist/utils.cjs +2 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.mjs +1 -0
- package/dist/utils.mjs.map +1 -1
- package/package.json +1 -1
- package/src/build.ts +15 -6
- package/src/cli.mts +14 -9
- package/src/fork.ts +29 -23
- package/src/fs.ts +1 -1
- package/src/helpers.ts +2 -2
- package/src/index.ts +2 -2
- package/src/logging/emit.ts +65 -2
- package/src/logging/github.ts +4 -11
- package/src/logging/logger.ts +26 -44
- package/src/logging/options.ts +30 -38
- package/src/logging.ts +5 -3
- package/src/pipe.ts +1 -1
- package/src/plugs/build.ts +19 -5
- package/src/plugs/exec.ts +2 -2
- package/src/plugs/exports.ts +3 -4
- package/src/utils/ansi.ts +10 -0
- package/src/utils/exec.ts +7 -2
- package/src/utils.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugs/exports.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,qBAAoB;AACpB,uBAAoB;AAEpB,mBAAsB;AACtB,gBAAoC;AACpC,qBAAmB;AACnB,mBAA2D;AAC3D,kBAAwB;AAAA,IAmCxB,qBAAQ,WAAW,MAAM,QAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,eAAe,MAAiC;AAC9C,UAAM,UAAU,KAAK,CAAC,KAAK,CAAC;AAC5B,UAAM;AAAA,MACJ,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,IACF,IAAI;AACJ,SAAK,eAAe,aACpB,KAAK,qBAAqB;AAC1B,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,eAAe,QAAQ,QAAQ,KAAK,YAAY;AACtD,UAAM,eAAe,UAAM,oBAAS,cAAc,MAAM;AACxD,UAAM,cAAc,KAAK,MAAM,YAAY;AAG3C,UAAM,eAAe,QAAQ,QAAQ,KAAK,kBAAkB;AAC5D,UAAM,wBAAoB,gCAAkB,YAAY;AAGxD,UAAM,OACJ,YAAY,SAAS,WAAW,WAChC,YAAY,SAAS,aAAa,aAClC,YAAY,QAAQ,OAAO,aAC3B;AACF,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,qBAAoB;AACpB,uBAAoB;AAEpB,qBAAuB;AACvB,mBAAsB;AACtB,gBAAoC;AACpC,qBAAmB;AACnB,mBAA2D;AAC3D,kBAAwB;AAAA,IAmCxB,qBAAQ,WAAW,MAAM,QAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,eAAe,MAAiC;AAC9C,UAAM,UAAU,KAAK,CAAC,KAAK,CAAC;AAC5B,UAAM;AAAA,MACJ,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,IACF,IAAI;AACJ,SAAK,eAAe,aACpB,KAAK,qBAAqB;AAC1B,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,eAAe,QAAQ,QAAQ,KAAK,YAAY;AACtD,UAAM,eAAe,UAAM,oBAAS,cAAc,MAAM;AACxD,UAAM,cAAc,KAAK,MAAM,YAAY;AAG3C,UAAM,eAAe,QAAQ,QAAQ,KAAK,kBAAkB;AAC5D,UAAM,wBAAoB,gCAAkB,YAAY;AAGxD,UAAM,OACJ,YAAY,SAAS,WAAW,WAChC,YAAY,SAAS,aAAa,aAClC,YAAY,QAAQ,OAAO,aAC3B;AACF,+BAAO,MAAM,wBAAwB,YAAY,IAAI,YAAQ,mBAAG,YAAY,CAAC,EAAE;AAE/E,YAAQ,IAAI,MAAM,oBAAgB,mBAAG,YAAY,CAAC,0BAA0B,IAAI,GAAG;AAEnF,UAAM,eAAe,KAAK,kBAAkB,SAAS,aAAa,QAAQ;AAC1E,UAAM,eAAe,KAAK,kBAAkB,SAAS,WAAW,QAAQ;AAGxE,+BAAO,iBAAiB,cAAc,mEAAmE,YAAY,GAAG;AAExH,UAAM,UAA8B,CAAC;AACrC,aAAS,UACL,MACAA,OACA,MACA,MACI;AACN,UAAI,CAAE,QAAQ,IAAI;AAAG,gBAAQ,IAAI,IAAI,CAAC;AACtC,UAAI,CAAE,QAAQ,IAAI,EAAGA,KAAI;AAAG,gBAAQ,IAAI,EAAGA,KAAI,IAAI,CAAC;AACpD,cAAQ,IAAI,EAAGA,KAAI,EAAG,IAAI,IAAI;AAAA,IAChC;AAGA,UAAM,OAAO,CAAE,UAAU,UAAU,SAAS,cAAc,YAAa;AAGvE,eAAW,CAAE,MAAM,QAAS,KAAK,MAAM,aAAa,GAAG;AACrD,YAAM,eAAW,sCAAwB,mBAAmB,QAAQ;AAEpE,iBAAW,OAAO,MAAM;AACtB,YAAI,CAAE,SAAS,SAAS,GAAG;AAAG;AAE9B,cAAM,OAAO,IAAI,oBAAG,GAAG,KAAK,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC;AACjD,cAAM,MAAM,KAAK,SAAS,GAAG,oBAAG,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAE/D,gBAAQ,KAAK;AAAA,UACX,KAAK;AACH,sBAAU,KAAK,WAAW,WAAW,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACzD;AAAA,UACF,KAAK;AACH,sBAAU,KAAK,UAAU,WAAW,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACxD;AAAA,UACF,KAAK;AACH,sBAAU,KAAK,WAAW,SAAS,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACvD;AAAA,UACF,KAAK;AACH,sBAAU,KAAK,UAAU,SAAS,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACtD;AAAA,UACF,KAAK;AACH,sBAAU,KAAK,WAAW,SAAS,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACvD,sBAAU,KAAK,UAAU,SAAS,IAAI,oBAAG,GAAG,QAAQ,EAAE;AACtD;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,SAAS;AAClB,YAAM,aAAa,QAAQ,GAAG;AAC9B,kBAAY,MAAM,IAAI,YAAY,SAAS;AAC3C,kBAAY,QAAQ,IAAI,YAAY,QAAQ;AAC5C,kBAAY,OAAO,IAAI,YAAY,MAAM,MAAM,WAC7C,YAAY,QAAQ,QAAQ,YAAY,SAAS;AAAA,IACrD;AAGA,gBAAY,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS;AACzE,YAAM,UAAU,QAAQ,IAAI;AAC5B,UAAI,CAAE;AAAS,eAAO;AAItB,UAAI,IAAI,IAAI,QAAQ,SAAS,WAAW,QAAQ,QAAQ,UAAU;AAAA,QAChE,SAAS,QAAQ,SAAS,UAAU;AAAA,UAClC,OAAO,QAAQ,QAAQ,SAAS;AAAA,UAChC,SAAS,QAAQ,QAAQ,WAAW;AAAA,QACtC,IAAI;AAAA,QACJ,QAAQ,QAAQ,QAAQ,UAAU;AAAA,UAChC,OAAO,QAAQ,OAAO,SAAS;AAAA,UAC/B,SAAS,QAAQ,OAAO,WAAW;AAAA,QACrC,IAAI;AAAA,MACN,IAAI;AAEJ,aAAO;AAAA,IACT,GAAG,CAAC,CAAuB;AAG3B,UAAM,eAAe,KAAK,UAAU,aAAa,MAAM,CAAC;AACxD,YAAQ,IAAI,KAAK,mBAAe,mBAAG,YAAY,CAAC,IAAI,YAAY;AAChE,cAAM,qBAAU,cAAc,eAAe,oBAAK,MAAM;AAGxD,WAAO,mBAAM,YAAQ,gCAAkB,YAAY,CAAC,EAAE,IAAI,YAAY,EAAE,MAAM;AAAA,EAChF;AACF,CAAC;",
|
|
5
5
|
"names": ["type"]
|
|
6
6
|
}
|
package/dist/plugs/exports.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// plugs/exports.ts
|
|
2
2
|
import { EOL } from "node:os";
|
|
3
3
|
import { sep } from "node:path";
|
|
4
|
+
import { assert } from "../asserts.mjs";
|
|
4
5
|
import { Files } from "../files.mjs";
|
|
5
6
|
import { readFile, writeFile } from "../fs.mjs";
|
|
6
7
|
import { $p } from "../logging.mjs";
|
|
@@ -30,14 +31,11 @@ install("exports", class Exports {
|
|
|
30
31
|
const outgoingFile = context.resolve(this._outputPackageJson);
|
|
31
32
|
const outgoingDirectory = getAbsoluteParent(outgoingFile);
|
|
32
33
|
const type = packageData.type === "module" ? "module" : packageData.type === "commonjs" ? "commonjs" : packageData.type == null ? "commonjs" : void 0;
|
|
33
|
-
|
|
34
|
-
context.log.fail(`Unknown module type "${packageData.type}" in ${$p(incomingFile)}`);
|
|
34
|
+
assert(type, `Unknown module type "${packageData.type}" in ${$p(incomingFile)}`);
|
|
35
35
|
context.log.debug(`Package file ${$p(incomingFile)} declares module type "${type}"`);
|
|
36
36
|
const cjsExtension = this._cjsExtension || (type === "commonjs" ? ".js" : ".cjs");
|
|
37
37
|
const esmExtension = this._esmExtension || (type === "module" ? ".js" : ".mjs");
|
|
38
|
-
|
|
39
|
-
context.log.fail(`CommonJS and EcmaScript modules both resolve to same extension "${cjsExtension}"`);
|
|
40
|
-
}
|
|
38
|
+
assert(cjsExtension !== esmExtension, `CommonJS and EcmaScript modules both resolve to same extension "${cjsExtension}"`);
|
|
41
39
|
const exports = {};
|
|
42
40
|
function addExport(name, type2, kind, file) {
|
|
43
41
|
if (!exports[name])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugs/exports.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,WAAW;AACpB,SAAS,WAAW;AAEpB,SAAS,aAAa;AACtB,SAAS,UAAU,iBAAiB;AACpC,SAAS,UAAU;AACnB,SAAS,yBAAyB,yBAAyB;AAC3D,SAAS,eAAe;AAmCxB,QAAQ,WAAW,MAAM,QAA+B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,eAAe,MAAiC;AAC9C,UAAM,UAAU,KAAK,CAAC,KAAK,CAAC;AAC5B,UAAM;AAAA,MACJ,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,IACF,IAAI;AACJ,SAAK,eAAe,aACpB,KAAK,qBAAqB;AAC1B,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,eAAe,QAAQ,QAAQ,KAAK,YAAY;AACtD,UAAM,eAAe,MAAM,SAAS,cAAc,MAAM;AACxD,UAAM,cAAc,KAAK,MAAM,YAAY;AAG3C,UAAM,eAAe,QAAQ,QAAQ,KAAK,kBAAkB;AAC5D,UAAM,oBAAoB,kBAAkB,YAAY;AAGxD,UAAM,OACJ,YAAY,SAAS,WAAW,WAChC,YAAY,SAAS,aAAa,aAClC,YAAY,QAAQ,OAAO,aAC3B;AACF,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["type"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
|
|
20
|
+
// utils/ansi.ts
|
|
21
|
+
var ansi_exports = {};
|
|
22
|
+
__export(ansi_exports, {
|
|
23
|
+
ansiRegExp: () => ansiRegExp,
|
|
24
|
+
stripAnsi: () => stripAnsi
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(ansi_exports);
|
|
27
|
+
var ansiRegExp = new RegExp([
|
|
28
|
+
"[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
|
|
29
|
+
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
|
|
30
|
+
].join("|"), "g");
|
|
31
|
+
function stripAnsi(string) {
|
|
32
|
+
return string && string.replace(ansiRegExp, "");
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
ansiRegExp,
|
|
37
|
+
stripAnsi
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=ansi.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/ansi.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,IAAM,aAAa,IAAI,OAAO;AAAA,EACnC;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAAG,GAAG;AAGT,SAAS,UAAU,QAAwB;AAChD,SAAO,UAAU,OAAO,QAAQ,YAAY,EAAE;AAChD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// utils/ansi.ts
|
|
2
|
+
var ansiRegExp = new RegExp([
|
|
3
|
+
"[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
|
|
4
|
+
"(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
|
|
5
|
+
].join("|"), "g");
|
|
6
|
+
function stripAnsi(string) {
|
|
7
|
+
return string && string.replace(ansiRegExp, "");
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
ansiRegExp,
|
|
11
|
+
stripAnsi
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ansi.mjs.map
|
package/dist/utils/exec.cjs
CHANGED
|
@@ -64,7 +64,16 @@ async function execChild(cmd, args, options = {}, context) {
|
|
|
64
64
|
if (extraPath)
|
|
65
65
|
childPaths.push(extraPath);
|
|
66
66
|
const PATH = childPaths.join(import_node_path.default.delimiter);
|
|
67
|
-
const childEnv = {
|
|
67
|
+
const childEnv = {
|
|
68
|
+
...process.env,
|
|
69
|
+
// environment from current running process
|
|
70
|
+
...env,
|
|
71
|
+
// environment configured from "execChild" arguments
|
|
72
|
+
...import_logging.logOptions.forkEnv(),
|
|
73
|
+
// forked log options for child plugjs
|
|
74
|
+
PATH
|
|
75
|
+
// path with all ".../node_modules/.bin" directories
|
|
76
|
+
};
|
|
68
77
|
if (coverageDir)
|
|
69
78
|
childEnv.NODE_V8_COVERAGE = context.resolve(coverageDir);
|
|
70
79
|
const childOptions = {
|
package/dist/utils/exec.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/exec.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAsB;AACtB,uBAAiB;AACjB,2BAAqB;AAErB,qBAAqC;AACrC,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAsB;AACtB,uBAAiB;AACjB,2BAAqB;AAErB,qBAAqC;AACrC,qBAA+B;AAC/B,mBAA6D;AAkB7D,eAAsB,UAClB,KACA,MACA,UAA4B,CAAC,GAC7B,SACa;AACf,QAAM;AAAA,IACJ,MAAM,CAAC;AAAA;AAAA,IACP,QAAQ;AAAA;AAAA,IACR,MAAM;AAAA;AAAA,IACN;AAAA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,WAAW,MAAM,QAAQ,QAAQ,GAAG,QAAI,yCAA2B;AACzE,iCAAO,+BAAiB,QAAQ,GAAG,iCAA6B,mBAAG,QAAQ,CAAC,iBAAiB;AAG7F,QAAM,aAA6B,CAAC;AAGpC,QAAM,eAAe,QAAQ,QAAQ,iBAAiB,MAAM;AAC5D,UAAI,+BAAiB,YAAY;AAAG,eAAW,KAAK,YAAY;AAGhE,QAAM,gBAAgB,QAAQ,QAAQ,kBAAkB,MAAM;AAC9D,UAAI,+BAAiB,aAAa;AAAG,eAAW,KAAK,aAAa;AAGlE,QAAM,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAC1C,MAAI;AAAW,eAAW,KAAK,SAAS;AAGxC,QAAM,OAAO,WAAW,KAAK,iBAAAA,QAAK,SAAS;AAC3C,QAAM,WAAmC;AAAA,IACvC,GAAG,QAAQ;AAAA;AAAA,IACX,GAAG;AAAA;AAAA,IACH,GAAG,0BAAW,QAAQ;AAAA;AAAA,IACtB;AAAA;AAAA,EACF;AAGA,MAAI;AAAa,aAAS,mBAAmB,QAAQ,QAAQ,WAAW;AAGxE,QAAM,eAA6B;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,CAAE,UAAU,QAAQ,MAAO;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AAAA,EACF;AAGA,UAAQ,IAAI,KAAK,aAAa,CAAE,KAAK,GAAG,IAAK,CAAC;AAC9C,UAAQ,IAAI,MAAM,yBAAyB,YAAY;AAEvD,QAAM,YAAQ,iCAAM,KAAK,MAAM,YAAY;AAE3C,MAAI;AACF,YAAQ,IAAI,KAAK,qBAAqB,MAAM,GAAG;AAG/C,QAAI,MAAM,QAAQ;AAChB,YAAM,MAAM,qBAAAC,QAAS,gBAAgB,MAAM,MAAM;AACjD,UAAI,GAAG,QAAQ,CAAC,SAAS,QAAQ,IAAI,OAAO,QAAQ,MAAQ,CAAC;AAAA,IAC/D;AAGA,QAAI,MAAM,QAAQ;AAChB,YAAM,MAAM,qBAAAA,QAAS,gBAAgB,MAAM,MAAM;AACjD,UAAI,GAAG,QAAQ,CAAC,SAAS,QAAQ,IAAI,KAAK,QAAO,MAAQ,CAAC;AAAA,IAC5D;AAAA,EACF,SAAS,OAAO;AAEd,UAAM,KAAK;AACX,UAAM;AAAA,EACR;AAGA,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,UAAM,GAAG,SAAS,CAAC,UAAU,OAAO,KAAK,CAAC;AAC1C,UAAM,GAAG,QAAQ,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS;AAAG,eAAO,QAAQ;AAC/B,UAAI;AAAQ,eAAO,OAAO,4BAAa,YAAY,oCAAoC,MAAM,EAAE,CAAC;AAChG,UAAI;AAAM,eAAO,OAAO,4BAAa,YAAY,kCAAkC,IAAI,EAAE,CAAC;AAC1F,aAAO,4BAAa,YAAY,4CAA4C,CAAC;AAAA,IAC/E,CAAC;AAAA,EACH,CAAC;AACH;",
|
|
5
5
|
"names": ["path", "readline"]
|
|
6
6
|
}
|
package/dist/utils/exec.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { spawn } from "node:child_process";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import readline from "node:readline";
|
|
5
5
|
import { assert, BuildFailure } from "../asserts.mjs";
|
|
6
|
-
import { $p } from "../logging.mjs";
|
|
6
|
+
import { $p, logOptions } from "../logging.mjs";
|
|
7
7
|
import { getCurrentWorkingDirectory, resolveDirectory } from "../paths.mjs";
|
|
8
8
|
async function execChild(cmd, args, options = {}, context) {
|
|
9
9
|
const {
|
|
@@ -30,7 +30,16 @@ async function execChild(cmd, args, options = {}, context) {
|
|
|
30
30
|
if (extraPath)
|
|
31
31
|
childPaths.push(extraPath);
|
|
32
32
|
const PATH = childPaths.join(path.delimiter);
|
|
33
|
-
const childEnv = {
|
|
33
|
+
const childEnv = {
|
|
34
|
+
...process.env,
|
|
35
|
+
// environment from current running process
|
|
36
|
+
...env,
|
|
37
|
+
// environment configured from "execChild" arguments
|
|
38
|
+
...logOptions.forkEnv(),
|
|
39
|
+
// forked log options for child plugjs
|
|
40
|
+
PATH
|
|
41
|
+
// path with all ".../node_modules/.bin" directories
|
|
42
|
+
};
|
|
34
43
|
if (coverageDir)
|
|
35
44
|
childEnv.NODE_V8_COVERAGE = context.resolve(coverageDir);
|
|
36
45
|
const childOptions = {
|
package/dist/utils/exec.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/exec.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,aAAa;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AAErB,SAAS,QAAQ,oBAAoB;AACrC,SAAS,
|
|
4
|
+
"mappings": ";AAAA,SAAS,aAAa;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AAErB,SAAS,QAAQ,oBAAoB;AACrC,SAAS,IAAI,kBAAkB;AAC/B,SAAS,4BAA4B,wBAAwB;AAkB7D,eAAsB,UAClB,KACA,MACA,UAA4B,CAAC,GAC7B,SACa;AACf,QAAM;AAAA,IACJ,MAAM,CAAC;AAAA;AAAA,IACP,QAAQ;AAAA;AAAA,IACR,MAAM;AAAA;AAAA,IACN;AAAA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,WAAW,MAAM,QAAQ,QAAQ,GAAG,IAAI,2BAA2B;AACzE,SAAO,iBAAiB,QAAQ,GAAG,6BAA6B,GAAG,QAAQ,CAAC,iBAAiB;AAG7F,QAAM,aAA6B,CAAC;AAGpC,QAAM,eAAe,QAAQ,QAAQ,iBAAiB,MAAM;AAC5D,MAAI,iBAAiB,YAAY;AAAG,eAAW,KAAK,YAAY;AAGhE,QAAM,gBAAgB,QAAQ,QAAQ,kBAAkB,MAAM;AAC9D,MAAI,iBAAiB,aAAa;AAAG,eAAW,KAAK,aAAa;AAGlE,QAAM,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAC1C,MAAI;AAAW,eAAW,KAAK,SAAS;AAGxC,QAAM,OAAO,WAAW,KAAK,KAAK,SAAS;AAC3C,QAAM,WAAmC;AAAA,IACvC,GAAG,QAAQ;AAAA;AAAA,IACX,GAAG;AAAA;AAAA,IACH,GAAG,WAAW,QAAQ;AAAA;AAAA,IACtB;AAAA;AAAA,EACF;AAGA,MAAI;AAAa,aAAS,mBAAmB,QAAQ,QAAQ,WAAW;AAGxE,QAAM,eAA6B;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,CAAE,UAAU,QAAQ,MAAO;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AAAA,EACF;AAGA,UAAQ,IAAI,KAAK,aAAa,CAAE,KAAK,GAAG,IAAK,CAAC;AAC9C,UAAQ,IAAI,MAAM,yBAAyB,YAAY;AAEvD,QAAM,QAAQ,MAAM,KAAK,MAAM,YAAY;AAE3C,MAAI;AACF,YAAQ,IAAI,KAAK,qBAAqB,MAAM,GAAG;AAG/C,QAAI,MAAM,QAAQ;AAChB,YAAM,MAAM,SAAS,gBAAgB,MAAM,MAAM;AACjD,UAAI,GAAG,QAAQ,CAAC,SAAS,QAAQ,IAAI,OAAO,QAAQ,MAAQ,CAAC;AAAA,IAC/D;AAGA,QAAI,MAAM,QAAQ;AAChB,YAAM,MAAM,SAAS,gBAAgB,MAAM,MAAM;AACjD,UAAI,GAAG,QAAQ,CAAC,SAAS,QAAQ,IAAI,KAAK,QAAO,MAAQ,CAAC;AAAA,IAC5D;AAAA,EACF,SAAS,OAAO;AAEd,UAAM,KAAK;AACX,UAAM;AAAA,EACR;AAGA,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,UAAM,GAAG,SAAS,CAAC,UAAU,OAAO,KAAK,CAAC;AAC1C,UAAM,GAAG,QAAQ,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS;AAAG,eAAO,QAAQ;AAC/B,UAAI;AAAQ,eAAO,OAAO,aAAa,YAAY,oCAAoC,MAAM,EAAE,CAAC;AAChG,UAAI;AAAM,eAAO,OAAO,aAAa,YAAY,kCAAkC,IAAI,EAAE,CAAC;AAC1F,aAAO,aAAa,YAAY,4CAA4C,CAAC;AAAA,IAC/E,CAAC;AAAA,EACH,CAAC;AACH;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utils.cjs
CHANGED
|
@@ -17,6 +17,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
17
17
|
// utils.ts
|
|
18
18
|
var utils_exports = {};
|
|
19
19
|
module.exports = __toCommonJS(utils_exports);
|
|
20
|
+
__reExport(utils_exports, require("./utils/ansi.cjs"), module.exports);
|
|
20
21
|
__reExport(utils_exports, require("./utils/diff.cjs"), module.exports);
|
|
21
22
|
__reExport(utils_exports, require("./utils/exec.cjs"), module.exports);
|
|
22
23
|
__reExport(utils_exports, require("./utils/jsonc.cjs"), module.exports);
|
|
@@ -26,6 +27,7 @@ __reExport(utils_exports, require("./utils/singleton.cjs"), module.exports);
|
|
|
26
27
|
__reExport(utils_exports, require("./utils/walk.cjs"), module.exports);
|
|
27
28
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
29
|
0 && (module.exports = {
|
|
30
|
+
...require("./utils/ansi.cjs"),
|
|
29
31
|
...require("./utils/diff.cjs"),
|
|
30
32
|
...require("./utils/exec.cjs"),
|
|
31
33
|
...require("./utils/jsonc.cjs"),
|
package/dist/utils.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utils.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,6BAAd;AACA,0BAAc,6BADd;AAEA,0BAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,6BAAd;AACA,0BAAc,6BADd;AAEA,0BAAc,6BAFd;AAGA,0BAAc,8BAHd;AAIA,0BAAc,8BAJd;AAKA,0BAAc,gCALd;AAMA,0BAAc,kCANd;AAOA,0BAAc,6BAPd;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.mjs
CHANGED
package/dist/utils.mjs.map
CHANGED
package/package.json
CHANGED
package/src/build.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { assert } from './asserts'
|
|
1
|
+
import { BuildFailure, assert } from './asserts'
|
|
2
2
|
import { runAsync } from './async'
|
|
3
|
-
import { $gry, $ms, $p, $plur, $t, getLogger, logOptions } from './logging'
|
|
3
|
+
import { $grn, $gry, $ms, $p, $plur, $t, $ylw, NOTICE, getLogger, log, logOptions } from './logging'
|
|
4
4
|
import { Context, ContextPromises, PipeImpl } from './pipe'
|
|
5
5
|
import { findCaller } from './utils/caller'
|
|
6
6
|
import { getSingleton } from './utils/singleton'
|
|
@@ -142,7 +142,8 @@ class TaskImpl<R extends Result> implements Task<R> {
|
|
|
142
142
|
return result
|
|
143
143
|
}).catch((error) => {
|
|
144
144
|
state.fails.add(this)
|
|
145
|
-
|
|
145
|
+
context.log.error(`Failure ${$ms(Date.now() - now)}`, error)
|
|
146
|
+
throw BuildFailure.fail()
|
|
146
147
|
}).finally(async () => {
|
|
147
148
|
await ContextPromises.wait(context)
|
|
148
149
|
}).then(async (result) => {
|
|
@@ -161,10 +162,10 @@ class TaskImpl<R extends Result> implements Task<R> {
|
|
|
161
162
|
* ========================================================================== */
|
|
162
163
|
|
|
163
164
|
/** Compile a {@link BuildDef | build definition} into a {@link Build} */
|
|
164
|
-
export function
|
|
165
|
+
export function plugjs<
|
|
165
166
|
D extends BuildDef, B extends ThisBuild<D>
|
|
166
167
|
>(def: D & ThisType<B>): Build<D> {
|
|
167
|
-
const buildFile = findCaller(
|
|
168
|
+
const buildFile = findCaller(plugjs)
|
|
168
169
|
const tasks: Record<string, Task> = {}
|
|
169
170
|
const props: Record<string, string> = {}
|
|
170
171
|
|
|
@@ -178,11 +179,11 @@ export function build<
|
|
|
178
179
|
props[key] = val
|
|
179
180
|
} else if (typeof val === 'function') {
|
|
180
181
|
tasks[key] = new TaskImpl(key, buildFile, val, tasks, props)
|
|
181
|
-
// tasks[key] = makeTask(buildFile, tasks, props, val, key)
|
|
182
182
|
len = key.length
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
/* Update the logger's own "taskLength" for nice printing */
|
|
186
|
+
if ((logOptions.level >= NOTICE) && (key.startsWith('_'))) continue
|
|
186
187
|
/* coverage ignore if */
|
|
187
188
|
if (len > logOptions.taskLength) logOptions.taskLength = len
|
|
188
189
|
}
|
|
@@ -249,6 +250,14 @@ export function build<
|
|
|
249
250
|
return compiled as Build<D>
|
|
250
251
|
}
|
|
251
252
|
|
|
253
|
+
/** @deprecated Please use the new {@link plugjs} export */
|
|
254
|
+
export const build: typeof plugjs = function<
|
|
255
|
+
D extends BuildDef, B extends ThisBuild<D>
|
|
256
|
+
>(def: D & ThisType<B>): Build<D> {
|
|
257
|
+
log.warn(`Use of deprecated ${$ylw('build')} entry point, please use ${$grn('plugjs')}`)
|
|
258
|
+
return plugjs(def)
|
|
259
|
+
}
|
|
260
|
+
|
|
252
261
|
/** Check if the specified build is actually a {@link Build} */
|
|
253
262
|
export function isBuild(build: any): build is Build<Record<string, any>> {
|
|
254
263
|
return build && typeof build[buildMarker] === 'function'
|
package/src/cli.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable no-fallthrough */
|
|
2
3
|
/* eslint-disable no-console */
|
|
3
4
|
|
|
4
5
|
import _fs from 'node:fs'
|
|
@@ -6,13 +7,16 @@ import _fs from 'node:fs'
|
|
|
6
7
|
import { main, yargsParser } from '@plugjs/tsrun'
|
|
7
8
|
|
|
8
9
|
import { BuildFailure } from './asserts'
|
|
10
|
+
import { runAsync } from './async'
|
|
9
11
|
import { invokeTasks, isBuild } from './build'
|
|
10
12
|
import { $blu, $gry, $p, $red, $t, $und, $wht } from './logging/colors'
|
|
11
|
-
import { logOptions } from './logging/options'
|
|
12
|
-
import { getCurrentWorkingDirectory, resolveDirectory, resolveFile, resolveAbsolutePath } from './paths'
|
|
13
13
|
import { logLevels } from './logging/levels'
|
|
14
|
+
import { logOptions } from './logging/options'
|
|
15
|
+
import { getCurrentWorkingDirectory, resolveAbsolutePath, resolveDirectory, resolveFile } from './paths'
|
|
16
|
+
import { Context } from './pipe'
|
|
14
17
|
|
|
15
18
|
import type { AbsolutePath } from './paths'
|
|
19
|
+
import type { Build } from './types'
|
|
16
20
|
|
|
17
21
|
/* Log levels */
|
|
18
22
|
const { TRACE, DEBUG, INFO, NOTICE, WARN, ERROR, OFF } = logLevels
|
|
@@ -158,11 +162,9 @@ export function parseCommandLine(args: string[]): CommandLineOptions {
|
|
|
158
162
|
case 'help':
|
|
159
163
|
help()
|
|
160
164
|
process.exit(0)
|
|
161
|
-
break
|
|
162
165
|
case 'version':
|
|
163
166
|
console.log(`PlugJS ${$gry('ver.')} ${$wnd(version)}`)
|
|
164
167
|
process.exit(0)
|
|
165
|
-
break
|
|
166
168
|
default:
|
|
167
169
|
console.log(`Unsupported option ${$wnd(key)} (try ${$wnd('--help')})`)
|
|
168
170
|
process.exit(1)
|
|
@@ -259,11 +261,14 @@ main(import.meta.url, async (args: string[]): Promise<void> => {
|
|
|
259
261
|
if (tasks.length === 0) tasks.push('default')
|
|
260
262
|
|
|
261
263
|
// Import and check build file
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
maybeBuild
|
|
266
|
-
|
|
264
|
+
const initialContext = new Context(buildFile, '')
|
|
265
|
+
const maybeBuild = await runAsync(initialContext, async (): Promise<Build | void> => {
|
|
266
|
+
let maybeBuild = await import(buildFile)
|
|
267
|
+
while (maybeBuild) {
|
|
268
|
+
if (isBuild(maybeBuild)) return maybeBuild
|
|
269
|
+
maybeBuild = maybeBuild.default
|
|
270
|
+
}
|
|
271
|
+
})
|
|
267
272
|
|
|
268
273
|
// We _need_ a build
|
|
269
274
|
if (! isBuild(maybeBuild)) {
|
package/src/fork.ts
CHANGED
|
@@ -4,9 +4,11 @@ import { assert, BuildFailure } from './asserts'
|
|
|
4
4
|
import { runAsync } from './async'
|
|
5
5
|
import { Files } from './files'
|
|
6
6
|
import { $gry, $p, $red, logOptions } from './logging'
|
|
7
|
+
import { emit, emitForked } from './logging/emit'
|
|
7
8
|
import { requireFilename, resolveFile } from './paths'
|
|
8
9
|
import { Context, install } from './pipe'
|
|
9
10
|
|
|
11
|
+
import type { ForkedLogMessage } from './logging/emit'
|
|
10
12
|
import type { AbsolutePath } from './paths'
|
|
11
13
|
import type { Plug, PlugName, PlugResult } from './pipe'
|
|
12
14
|
|
|
@@ -37,6 +39,7 @@ export interface ForkData {
|
|
|
37
39
|
filesDir: AbsolutePath,
|
|
38
40
|
/** All files to pipe */
|
|
39
41
|
filesList: AbsolutePath[],
|
|
42
|
+
logIndent: number,
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
/** Fork result, from child to parent process */
|
|
@@ -69,6 +72,7 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
69
72
|
buildFile: context.buildFile,
|
|
70
73
|
filesDir: files.directory,
|
|
71
74
|
filesList: [ ...files.absolutePaths() ],
|
|
75
|
+
logIndent: context.log.indent,
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
/* Get _this_ filename to spawn */
|
|
@@ -76,7 +80,7 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
76
80
|
context.log.debug('About to fork plug from', $p(this._scriptFile))
|
|
77
81
|
|
|
78
82
|
/* Environment variables */
|
|
79
|
-
const env = { ...process.env, ...logOptions.forkEnv(context.taskName
|
|
83
|
+
const env = { ...process.env, ...logOptions.forkEnv(context.taskName) }
|
|
80
84
|
|
|
81
85
|
/* Check our args (reversed) to see if the last specifies `coverageDir` */
|
|
82
86
|
for (let i = this._arguments.length - 1; i >= 0; i --) {
|
|
@@ -95,15 +99,11 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
95
99
|
|
|
96
100
|
/* Run our script in a _separate_ process */
|
|
97
101
|
const child = fork(script, {
|
|
98
|
-
stdio: [ 'ignore', 'inherit', 'inherit', 'ipc'
|
|
102
|
+
stdio: [ 'ignore', 'inherit', 'inherit', 'ipc' ],
|
|
99
103
|
env,
|
|
100
104
|
})
|
|
101
105
|
|
|
102
|
-
/*
|
|
103
|
-
if (child.stdio[4]) {
|
|
104
|
-
child.stdio[4].on('data', (data) => logOptions.output.write(data))
|
|
105
|
-
}
|
|
106
|
-
|
|
106
|
+
/* Do some logging... */
|
|
107
107
|
context.log.info('Running', $p(script), $gry(`(pid=${child.pid})`))
|
|
108
108
|
|
|
109
109
|
/* Return a promise from the child process events */
|
|
@@ -116,9 +116,18 @@ export abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
116
116
|
return done || reject(BuildFailure.fail())
|
|
117
117
|
})
|
|
118
118
|
|
|
119
|
-
child.on('message', (message: ForkResult) => {
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
child.on('message', (message: ForkResult | ForkedLogMessage) => {
|
|
120
|
+
if ('logLevel' in message) {
|
|
121
|
+
const { logLevel, taskName, lines } = message
|
|
122
|
+
lines.forEach((line) => {
|
|
123
|
+
// this is _a hack_, as we want to reuse the indent and prefix of
|
|
124
|
+
// the current log, but the task name from the forked plug!!!
|
|
125
|
+
(context.log as any)._emit(logLevel, [ line ], taskName)
|
|
126
|
+
})
|
|
127
|
+
} else {
|
|
128
|
+
context.log.debug('Message from forked plug process with PID', child.pid, message)
|
|
129
|
+
response = message
|
|
130
|
+
}
|
|
122
131
|
})
|
|
123
132
|
|
|
124
133
|
child.on('exit', (code, signal) => {
|
|
@@ -204,13 +213,19 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
204
213
|
buildFile,
|
|
205
214
|
filesDir,
|
|
206
215
|
filesList,
|
|
216
|
+
logIndent,
|
|
207
217
|
} = message
|
|
208
218
|
|
|
219
|
+
/* Before anything else, capture logs! */
|
|
220
|
+
emit.emitter = emitForked // replace the log emitter...
|
|
221
|
+
|
|
209
222
|
/* First of all, our plug context */
|
|
210
223
|
const context = new Context(buildFile, taskName)
|
|
224
|
+
context.log.indent = logIndent
|
|
211
225
|
context.log.debug('Message from parent process for PID', process.pid, message)
|
|
212
226
|
|
|
213
227
|
/* Contextualize this run, and go! */
|
|
228
|
+
process.exitCode = 0
|
|
214
229
|
const result = runAsync(context, async () => {
|
|
215
230
|
/* Check that we have a proper script file name */
|
|
216
231
|
assert(resolveFile(scriptFile), `Script file ${$p(scriptFile)} not found`)
|
|
@@ -253,23 +268,14 @@ if ((process.argv[1] === requireFilename(__fileurl)) && (process.send)) {
|
|
|
253
268
|
|
|
254
269
|
/* The promise generated by `process.send()` simply triggers process exit */
|
|
255
270
|
promise.then(() => {
|
|
256
|
-
context.log.debug('Forked plug exiting')
|
|
257
|
-
process.disconnect()
|
|
258
|
-
process.exitCode = 0
|
|
271
|
+
context.log.debug('Forked plug with pid', process.pid, 'exiting')
|
|
259
272
|
}, (error) => {
|
|
260
273
|
// eslint-disable-next-line no-console
|
|
261
|
-
console.
|
|
274
|
+
console.error('\n\nError sending message back to parent process', error)
|
|
262
275
|
process.exitCode = 1
|
|
263
276
|
}).finally(() => {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
/* Set a timeout _forcefully_ killing the process in 5 seconds */
|
|
268
|
-
setTimeout(() => {
|
|
269
|
-
// eslint-disable-next-line no-console
|
|
270
|
-
console.log('\n\nProcess %d for %s did not exit in 5 seconds', process.pid, exportName)
|
|
271
|
-
process.exit(2)
|
|
272
|
-
}, 5000).unref()
|
|
277
|
+
process.disconnect()
|
|
278
|
+
process.exit(process.exitCode)
|
|
273
279
|
})
|
|
274
280
|
})
|
|
275
281
|
}
|
package/src/fs.ts
CHANGED
package/src/helpers.ts
CHANGED
|
@@ -21,10 +21,10 @@ import { execChild } from './utils/exec'
|
|
|
21
21
|
import { parseOptions } from './utils/options'
|
|
22
22
|
import { walk } from './utils/walk'
|
|
23
23
|
|
|
24
|
-
import type { ForkOptions } from './fork'
|
|
25
24
|
import type { Pipe } from './index'
|
|
26
25
|
import type { AbsolutePath } from './paths'
|
|
27
26
|
import type { Context } from './pipe'
|
|
27
|
+
import type { RunBuildOptions } from './plugs/build'
|
|
28
28
|
import type { ExecChildOptions } from './utils/exec'
|
|
29
29
|
import type { ParseOptions } from './utils/options'
|
|
30
30
|
import type { WalkOptions } from './utils/walk'
|
|
@@ -71,7 +71,7 @@ export function find(...args: ParseOptions<FindOptions>): Pipe {
|
|
|
71
71
|
}))
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export type InvokeBuildOptions =
|
|
74
|
+
export type InvokeBuildOptions = RunBuildOptions & Record<string, string>
|
|
75
75
|
export type InvokeBuildTasks = string | [ string, ...string[] ]
|
|
76
76
|
|
|
77
77
|
export function invokeBuild(buildFile: string): Promise<void>
|
package/src/index.ts
CHANGED
|
@@ -41,8 +41,8 @@ export * as pipe from './pipe'
|
|
|
41
41
|
export * as utils from './utils'
|
|
42
42
|
|
|
43
43
|
// Individual utilities
|
|
44
|
-
export {
|
|
45
|
-
export {
|
|
44
|
+
export { BuildFailure, assert, fail } from './asserts'
|
|
45
|
+
export { $blu, $cyn, $grn, $gry, $mgt, $ms, $p, $red, $t, $und, $wht, $ylw, banner, log } from './logging'
|
|
46
46
|
|
|
47
47
|
// Our minimal exports
|
|
48
48
|
export * from './build'
|