@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.
Files changed (127) hide show
  1. package/dist/assert.cjs +18 -38
  2. package/dist/assert.cjs.map +1 -1
  3. package/dist/assert.d.ts +2 -16
  4. package/dist/assert.mjs +17 -32
  5. package/dist/assert.mjs.map +1 -1
  6. package/dist/async.cjs +2 -2
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/async.d.ts +1 -1
  9. package/dist/async.mjs +2 -2
  10. package/dist/async.mjs.map +1 -1
  11. package/dist/build.cjs +20 -72
  12. package/dist/build.cjs.map +2 -2
  13. package/dist/build.d.ts +5 -3
  14. package/dist/build.mjs +22 -74
  15. package/dist/build.mjs.map +2 -2
  16. package/dist/failure.cjs +48 -0
  17. package/dist/failure.cjs.map +6 -0
  18. package/dist/failure.d.ts +13 -0
  19. package/dist/failure.mjs +22 -0
  20. package/dist/failure.mjs.map +6 -0
  21. package/dist/fork.cjs +21 -10
  22. package/dist/fork.cjs.map +1 -1
  23. package/dist/fork.d.ts +19 -1
  24. package/dist/fork.mjs +21 -11
  25. package/dist/fork.mjs.map +1 -1
  26. package/dist/helpers.cjs +8 -40
  27. package/dist/helpers.cjs.map +1 -1
  28. package/dist/helpers.d.ts +23 -3
  29. package/dist/helpers.mjs +8 -40
  30. package/dist/helpers.mjs.map +1 -1
  31. package/dist/index.cjs +16 -0
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.mjs +7 -0
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/log/logger.cjs +15 -12
  37. package/dist/log/logger.cjs.map +1 -1
  38. package/dist/log/logger.d.ts +2 -0
  39. package/dist/log/logger.mjs +15 -12
  40. package/dist/log/logger.mjs.map +1 -1
  41. package/dist/log/report.cjs +7 -4
  42. package/dist/log/report.cjs.map +1 -1
  43. package/dist/log/report.mjs +7 -4
  44. package/dist/log/report.mjs.map +1 -1
  45. package/dist/log.cjs +3 -0
  46. package/dist/log.cjs.map +1 -1
  47. package/dist/log.mjs +3 -0
  48. package/dist/log.mjs.map +1 -1
  49. package/dist/pipe.cjs +56 -14
  50. package/dist/pipe.cjs.map +1 -1
  51. package/dist/pipe.d.ts +42 -28
  52. package/dist/pipe.mjs +60 -13
  53. package/dist/pipe.mjs.map +1 -1
  54. package/dist/plugs/copy.cjs +1 -1
  55. package/dist/plugs/copy.cjs.map +1 -1
  56. package/dist/plugs/copy.mjs +1 -1
  57. package/dist/plugs/copy.mjs.map +1 -1
  58. package/dist/plugs/coverage.cjs +1 -2
  59. package/dist/plugs/coverage.cjs.map +1 -1
  60. package/dist/plugs/coverage.mjs +1 -2
  61. package/dist/plugs/coverage.mjs.map +1 -1
  62. package/dist/plugs/debug.cjs +6 -1
  63. package/dist/plugs/debug.cjs.map +1 -1
  64. package/dist/plugs/debug.d.ts +1 -1
  65. package/dist/plugs/debug.mjs +7 -2
  66. package/dist/plugs/debug.mjs.map +1 -1
  67. package/dist/plugs/esbuild.mjs.map +1 -1
  68. package/dist/plugs/eslint/runner.cjs +2 -1
  69. package/dist/plugs/eslint/runner.cjs.map +1 -1
  70. package/dist/plugs/eslint/runner.d.ts +1 -1
  71. package/dist/plugs/eslint/runner.mjs +3 -2
  72. package/dist/plugs/eslint/runner.mjs.map +1 -1
  73. package/dist/plugs/eslint.cjs +2 -2
  74. package/dist/plugs/eslint.cjs.map +1 -1
  75. package/dist/plugs/eslint.mjs +1 -1
  76. package/dist/plugs/exec.cjs +1 -1
  77. package/dist/plugs/exec.cjs.map +1 -1
  78. package/dist/plugs/exec.mjs +1 -1
  79. package/dist/plugs/exec.mjs.map +1 -1
  80. package/dist/plugs/mocha/runner.cjs +2 -2
  81. package/dist/plugs/mocha/runner.cjs.map +1 -1
  82. package/dist/plugs/mocha/runner.d.ts +1 -1
  83. package/dist/plugs/mocha/runner.mjs +2 -2
  84. package/dist/plugs/mocha/runner.mjs.map +1 -1
  85. package/dist/plugs/mocha.cjs +2 -2
  86. package/dist/plugs/mocha.cjs.map +1 -1
  87. package/dist/plugs/mocha.mjs +1 -1
  88. package/dist/plugs/rmf.mjs.map +1 -1
  89. package/dist/plugs/tsc/report.cjs.map +1 -1
  90. package/dist/plugs/tsc/report.mjs.map +1 -1
  91. package/dist/plugs/tsc/runner.cjs +3 -6
  92. package/dist/plugs/tsc/runner.cjs.map +2 -2
  93. package/dist/plugs/tsc/runner.mjs +4 -7
  94. package/dist/plugs/tsc/runner.mjs.map +2 -2
  95. package/dist/plugs/tsc.cjs +2 -2
  96. package/dist/plugs/tsc.cjs.map +1 -1
  97. package/dist/plugs/tsc.mjs +1 -1
  98. package/dist/types.d.ts +7 -8
  99. package/dist/utils/asyncfs.cjs.map +1 -1
  100. package/dist/utils/asyncfs.mjs.map +1 -1
  101. package/extra/cli.mjs +1 -1
  102. package/package.json +14 -13
  103. package/src/assert.ts +20 -34
  104. package/src/async.ts +3 -3
  105. package/src/failure.ts +31 -0
  106. package/src/fork.ts +43 -10
  107. package/src/helpers.ts +35 -56
  108. package/src/index.ts +4 -3
  109. package/src/log/logger.ts +22 -16
  110. package/src/log/report.ts +7 -3
  111. package/src/log.ts +4 -0
  112. package/src/pipe.ts +147 -44
  113. package/src/plugs/copy.ts +2 -2
  114. package/src/plugs/coverage/report.ts +1 -1
  115. package/src/plugs/coverage.ts +2 -3
  116. package/src/plugs/debug.ts +11 -4
  117. package/src/plugs/esbuild.ts +1 -1
  118. package/src/plugs/eslint/runner.ts +4 -3
  119. package/src/plugs/eslint.ts +1 -1
  120. package/src/plugs/exec.ts +1 -1
  121. package/src/plugs/mocha/runner.ts +3 -3
  122. package/src/plugs/mocha.ts +1 -1
  123. package/src/plugs/rmf.ts +1 -1
  124. package/src/plugs/tsc/runner.ts +5 -8
  125. package/src/plugs/tsc.ts +1 -1
  126. package/src/types.ts +8 -15
  127. 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,WACZ,kBAAAA,QAAG,mBAAmB;AAAO,gBAAQ;AAAO;AAAA,WAC5C,kBAAAA,QAAG,mBAAmB;AAAS,gBAAQ;AAAM;AAAA;AACzC,gBAAQ;AAAA;AAInB,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;",
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,WACZ,GAAG,mBAAmB;AAAO,gBAAQ;AAAO;AAAA,WAC5C,GAAG,mBAAmB;AAAS,gBAAQ;AAAM;AAAA;AACzC,gBAAQ;AAAA;AAInB,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;",
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
- context.log.error("Error writing to", fileName, error);
99
- throw (0, import_assert.failure)();
99
+ throw new import_failure.BuildFailure(`Error writing to ${fileName}`, [error]);
100
100
  }));
101
101
  });
102
- const settlements = await Promise.allSettled(promises);
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": "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",
5
- "names": ["import_options", "ts", "failures"]
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 { failure } from "../../assert.mjs";
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
- context.log.error("Error writing to", fileName, error);
69
- throw failure();
69
+ throw new BuildFailure(`Error writing to ${fileName}`, [error]);
70
70
  }));
71
71
  });
72
- const settlements = await Promise.allSettled(promises);
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": "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",
5
- "names": ["failures"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }
@@ -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
- var import_pipe = require("../pipe.cjs");
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/tsc.ts"],
4
- "mappings": ";;;AAEA,mBAA+B;AAC/B,kBAA+B;AAAA,IAyC/B,4BAAe,WAAO,6BAAe,YAAW,cAAc,CAAC;",
4
+ "mappings": ";;;AAEA,kBAA+B;AAC/B,mBAA+B;AAAA,IAyC/B,4BAAe,WAAO,6BAAe,YAAW,cAAc,CAAC;",
5
5
  "names": []
6
6
  }
@@ -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
- call(state: State, taskName: string): Promise<T>;
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 | Promise<undefined> | Files | void | undefined;
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 Promise<undefined> ? Task<undefined> : R extends Pipe ? Task<Files> : R extends Files ? Task<Files> : never : D[k] extends Task ? D[k] : never;
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
- * {@link Context}, that is the object passed to {@link build} to produce
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 & Promise<Files> : never : D[k] extends Task<infer R> ? R extends undefined ? () => Promise<undefined> : R extends Files ? () => Pipe & Promise<Files> : never : D[k] extends string ? string : never : never;
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, T extends Tasks<D> = Tasks<D>, P extends Props<D> = Props<D>> = T & P;
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;AAC1B,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;",
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;AAC1B,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;",
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,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
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.15",
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.18.13",
32
- "@babel/types": "^7.18.13",
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.6",
37
- "eslint": "^8.23.0",
38
- "mocha": "^10.0.0",
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.2",
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.6",
49
- "@types/mocha": "^9.1.1",
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.36.1",
54
- "@typescript-eslint/parser": "^5.36.1",
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
- const buildError = Symbol.for('plugjs:buildError')
6
- const buildFailure = Symbol.for('plugjs:buildFailure')
5
+ import { BuildFailure } from './failure'
7
6
 
8
- /** Check if the specified argument is a {@link BuildError} */
9
- export function isBuildError(arg: any): arg is BuildError {
10
- return arg && arg[buildError] === buildError
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
- /** Check if the specified argument is a {@link BuildFailure} */
14
- export function isBuildFailure(arg: any): arg is BuildFailure {
15
- return arg && arg[buildFailure] === buildFailure
16
- }
12
+ // Separate the good from the bad...
13
+ const results: T[] = []
14
+ const failures = new Set<any>()
17
15
 
18
- /** An error produced in our build, with proper inspection for logging */
19
- export class BuildError extends Error {
20
- constructor(message: string) {
21
- super(message)
22
- Object.defineProperty(this, buildError, { value: buildError })
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
- /** A {@link BuildFailure} represents an error _already logged_ in our build. */
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 BuildError(message)
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
- assert(context, 'Unable to retrieve current context')
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, failure } from './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, PlugResult, Context } from './pipe'
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(failure())
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(failure())
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(failure())
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(failure())
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(failure())
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(failure())
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(failure())
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(failure())
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
+ }