@plugjs/plug 0.0.12 → 0.0.15

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 (238) hide show
  1. package/{types → dist}/assert.d.ts +0 -0
  2. package/dist/async.cjs +20 -19
  3. package/dist/async.cjs.map +1 -1
  4. package/dist/async.d.ts +20 -0
  5. package/dist/async.mjs +18 -17
  6. package/dist/async.mjs.map +1 -1
  7. package/dist/build.cjs +144 -110
  8. package/dist/build.cjs.map +2 -2
  9. package/dist/build.d.ts +12 -0
  10. package/dist/build.mjs +146 -112
  11. package/dist/build.mjs.map +2 -2
  12. package/dist/files.cjs +2 -16
  13. package/dist/files.cjs.map +1 -1
  14. package/{types → dist}/files.d.ts +3 -10
  15. package/dist/files.mjs +3 -17
  16. package/dist/files.mjs.map +1 -1
  17. package/dist/fork.cjs +28 -40
  18. package/dist/fork.cjs.map +1 -1
  19. package/dist/fork.d.ts +36 -0
  20. package/dist/fork.mjs +29 -40
  21. package/dist/fork.mjs.map +1 -1
  22. package/dist/helpers.cjs +61 -63
  23. package/dist/helpers.cjs.map +2 -2
  24. package/dist/helpers.d.ts +21 -0
  25. package/dist/helpers.mjs +61 -64
  26. package/dist/helpers.mjs.map +2 -2
  27. package/dist/index.cjs +3 -2
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +10 -0
  30. package/dist/index.mjs +3 -2
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/log/colors.cjs +3 -1
  33. package/dist/log/colors.cjs.map +1 -1
  34. package/{types → dist}/log/colors.d.ts +2 -2
  35. package/dist/log/colors.mjs +3 -1
  36. package/dist/log/colors.mjs.map +1 -1
  37. package/{types → dist}/log/emit.d.ts +1 -1
  38. package/{types → dist}/log/levels.d.ts +0 -0
  39. package/dist/log/logger.cjs +4 -0
  40. package/dist/log/logger.cjs.map +1 -1
  41. package/{types → dist}/log/logger.d.ts +4 -1
  42. package/dist/log/logger.mjs +4 -0
  43. package/dist/log/logger.mjs.map +1 -1
  44. package/{types → dist}/log/options.d.ts +1 -1
  45. package/dist/log/report.cjs +4 -13
  46. package/dist/log/report.cjs.map +1 -1
  47. package/{types → dist}/log/report.d.ts +36 -4
  48. package/dist/log/report.mjs +3 -12
  49. package/dist/log/report.mjs.map +1 -1
  50. package/{types → dist}/log/spinner.d.ts +0 -0
  51. package/dist/log.cjs +1 -1
  52. package/dist/log.cjs.map +1 -1
  53. package/{types → dist}/log.d.ts +6 -6
  54. package/dist/log.mjs +2 -2
  55. package/dist/log.mjs.map +1 -1
  56. package/{types → dist}/paths.d.ts +0 -0
  57. package/dist/pipe.cjs +41 -34
  58. package/dist/pipe.cjs.map +1 -1
  59. package/dist/pipe.d.ts +182 -0
  60. package/dist/pipe.mjs +38 -32
  61. package/dist/pipe.mjs.map +1 -1
  62. package/dist/plugs/copy.cjs +15 -25
  63. package/dist/plugs/copy.cjs.map +2 -2
  64. package/dist/plugs/copy.d.ts +28 -0
  65. package/dist/plugs/copy.mjs +15 -17
  66. package/dist/plugs/copy.mjs.map +2 -2
  67. package/{types → dist}/plugs/coverage/analysis.d.ts +2 -2
  68. package/dist/plugs/coverage/report.cjs +4 -2
  69. package/dist/plugs/coverage/report.cjs.map +1 -1
  70. package/{types → dist}/plugs/coverage/report.d.ts +3 -3
  71. package/dist/plugs/coverage/report.mjs +4 -2
  72. package/dist/plugs/coverage/report.mjs.map +1 -1
  73. package/dist/plugs/coverage.cjs +23 -27
  74. package/dist/plugs/coverage.cjs.map +1 -1
  75. package/dist/plugs/coverage.d.ts +49 -0
  76. package/dist/plugs/coverage.mjs +24 -20
  77. package/dist/plugs/coverage.mjs.map +1 -1
  78. package/dist/plugs/debug.cjs +8 -37
  79. package/dist/plugs/debug.cjs.map +1 -1
  80. package/dist/plugs/debug.d.ts +7 -0
  81. package/dist/plugs/debug.mjs +24 -20
  82. package/dist/plugs/debug.mjs.map +1 -1
  83. package/{types → dist}/plugs/esbuild/bundle-locals.d.ts +0 -0
  84. package/{types → dist}/plugs/esbuild/fix-extensions.d.ts +0 -0
  85. package/dist/plugs/esbuild/fix-extensions.mjs +1 -1
  86. package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
  87. package/dist/plugs/esbuild.cjs +14 -25
  88. package/dist/plugs/esbuild.cjs.map +1 -1
  89. package/dist/plugs/esbuild.d.ts +18 -0
  90. package/dist/plugs/esbuild.mjs +14 -17
  91. package/dist/plugs/esbuild.mjs.map +1 -1
  92. package/dist/plugs/eslint/runner.cjs +5 -6
  93. package/dist/plugs/eslint/runner.cjs.map +1 -1
  94. package/dist/plugs/eslint/runner.d.ts +8 -0
  95. package/dist/plugs/eslint/runner.mjs +6 -7
  96. package/dist/plugs/eslint/runner.mjs.map +1 -1
  97. package/dist/{task.cjs → plugs/eslint.cjs} +7 -24
  98. package/dist/plugs/eslint.cjs.map +6 -0
  99. package/dist/plugs/eslint.d.ts +34 -0
  100. package/dist/plugs/eslint.mjs +5 -0
  101. package/dist/plugs/eslint.mjs.map +6 -0
  102. package/dist/plugs/exec.cjs +20 -24
  103. package/dist/plugs/exec.cjs.map +1 -1
  104. package/dist/plugs/exec.d.ts +90 -0
  105. package/dist/plugs/exec.mjs +20 -23
  106. package/dist/plugs/exec.mjs.map +1 -1
  107. package/dist/plugs/filter.cjs +9 -19
  108. package/dist/plugs/filter.cjs.map +1 -1
  109. package/dist/plugs/filter.d.ts +29 -0
  110. package/dist/plugs/filter.mjs +10 -12
  111. package/dist/plugs/filter.mjs.map +1 -1
  112. package/dist/plugs/mocha/reporter.cjs +19 -6
  113. package/dist/plugs/mocha/reporter.cjs.map +1 -1
  114. package/{types → dist}/plugs/mocha/reporter.d.ts +0 -2
  115. package/dist/plugs/mocha/reporter.mjs +18 -4
  116. package/dist/plugs/mocha/reporter.mjs.map +1 -1
  117. package/dist/plugs/mocha/runner.cjs +4 -5
  118. package/dist/plugs/mocha/runner.cjs.map +1 -1
  119. package/dist/plugs/mocha/runner.d.ts +8 -0
  120. package/dist/plugs/mocha/runner.mjs +5 -6
  121. package/dist/plugs/mocha/runner.mjs.map +1 -1
  122. package/dist/plugs/mocha.cjs +22 -0
  123. package/dist/plugs/mocha.cjs.map +6 -0
  124. package/{types/plugs/mocha/runner.d.ts → dist/plugs/mocha.d.ts} +9 -8
  125. package/dist/plugs/mocha.mjs +5 -0
  126. package/dist/plugs/mocha.mjs.map +6 -0
  127. package/dist/plugs/rmf.cjs +4 -32
  128. package/dist/plugs/rmf.cjs.map +1 -1
  129. package/dist/plugs/rmf.d.ts +11 -0
  130. package/dist/plugs/rmf.mjs +25 -20
  131. package/dist/plugs/rmf.mjs.map +1 -1
  132. package/{types → dist}/plugs/tsc/compiler.d.ts +1 -1
  133. package/{types → dist}/plugs/tsc/options.d.ts +1 -1
  134. package/{types → dist}/plugs/tsc/report.d.ts +2 -2
  135. package/dist/plugs/tsc/runner.cjs +12 -11
  136. package/dist/plugs/tsc/runner.cjs.map +1 -1
  137. package/dist/plugs/tsc/runner.d.ts +8 -0
  138. package/dist/plugs/tsc/runner.mjs +12 -11
  139. package/dist/plugs/tsc/runner.mjs.map +1 -1
  140. package/dist/plugs/tsc.cjs +7 -0
  141. package/dist/plugs/tsc.cjs.map +6 -0
  142. package/dist/plugs/tsc.d.ts +36 -0
  143. package/dist/plugs/tsc.mjs +15 -0
  144. package/dist/plugs/tsc.mjs.map +6 -0
  145. package/dist/plugs.cjs +3 -5
  146. package/dist/plugs.cjs.map +1 -1
  147. package/dist/plugs.d.ts +10 -0
  148. package/dist/plugs.mjs +3 -5
  149. package/dist/plugs.mjs.map +1 -1
  150. package/dist/types.cjs +19 -0
  151. package/dist/types.cjs.map +6 -0
  152. package/dist/types.d.ts +72 -0
  153. package/dist/types.mjs +1 -0
  154. package/dist/types.mjs.map +6 -0
  155. package/{types → dist}/utils/asyncfs.d.ts +0 -0
  156. package/dist/utils/caller.cjs +8 -11
  157. package/dist/utils/caller.cjs.map +2 -2
  158. package/dist/utils/caller.d.ts +2 -0
  159. package/dist/utils/caller.mjs +8 -11
  160. package/dist/utils/caller.mjs.map +2 -2
  161. package/{types → dist}/utils/match.d.ts +0 -0
  162. package/dist/utils/options.cjs +4 -6
  163. package/dist/utils/options.cjs.map +1 -1
  164. package/dist/utils/options.d.ts +16 -0
  165. package/dist/utils/options.mjs +4 -6
  166. package/dist/utils/options.mjs.map +1 -1
  167. package/{types → dist}/utils/walk.d.ts +2 -2
  168. package/extra/cli.mjs +31 -20
  169. package/extra/ts-loader.mjs +6 -5
  170. package/package.json +10 -10
  171. package/src/async.ts +27 -19
  172. package/src/files.ts +6 -30
  173. package/src/fork.ts +35 -76
  174. package/src/helpers.ts +89 -101
  175. package/src/index.ts +10 -15
  176. package/src/log/colors.ts +4 -3
  177. package/src/log/emit.ts +4 -4
  178. package/src/log/logger.ts +12 -4
  179. package/src/log/options.ts +1 -1
  180. package/src/log/report.ts +10 -24
  181. package/src/log/spinner.ts +3 -3
  182. package/src/log.ts +9 -9
  183. package/src/paths.ts +1 -1
  184. package/src/pipe.ts +191 -178
  185. package/src/plugs/copy.ts +40 -31
  186. package/src/plugs/coverage/analysis.ts +4 -4
  187. package/src/plugs/coverage/report.ts +9 -6
  188. package/src/plugs/coverage.ts +68 -55
  189. package/src/plugs/debug.ts +22 -27
  190. package/src/plugs/esbuild/fix-extensions.ts +2 -2
  191. package/src/plugs/esbuild.ts +42 -46
  192. package/src/plugs/eslint/runner.ts +16 -31
  193. package/src/plugs/eslint.ts +42 -0
  194. package/src/plugs/exec.ts +93 -82
  195. package/src/plugs/filter.ts +42 -27
  196. package/src/plugs/mocha/reporter.ts +19 -5
  197. package/src/plugs/mocha/runner.ts +12 -38
  198. package/src/plugs/mocha.ts +41 -0
  199. package/src/plugs/rmf.ts +21 -25
  200. package/src/plugs/tsc/compiler.ts +1 -1
  201. package/src/plugs/tsc/options.ts +2 -2
  202. package/src/plugs/tsc/report.ts +2 -2
  203. package/src/plugs/tsc/runner.ts +24 -30
  204. package/src/plugs/tsc.ts +45 -0
  205. package/src/plugs.ts +10 -25
  206. package/src/types.ts +123 -0
  207. package/src/utils/caller.ts +11 -22
  208. package/src/utils/options.ts +49 -17
  209. package/src/utils/walk.ts +4 -4
  210. package/dist/run.cjs +0 -90
  211. package/dist/run.cjs.map +0 -6
  212. package/dist/run.mjs +0 -65
  213. package/dist/run.mjs.map +0 -6
  214. package/dist/task.cjs.map +0 -6
  215. package/dist/task.mjs +0 -14
  216. package/dist/task.mjs.map +0 -6
  217. package/src/run.ts +0 -159
  218. package/src/task.ts +0 -26
  219. package/types/async.d.ts +0 -20
  220. package/types/build.d.ts +0 -56
  221. package/types/fork.d.ts +0 -57
  222. package/types/helpers.d.ts +0 -43
  223. package/types/index.d.ts +0 -14
  224. package/types/pipe.d.ts +0 -152
  225. package/types/plugs/copy.d.ts +0 -27
  226. package/types/plugs/coverage.d.ts +0 -46
  227. package/types/plugs/debug.d.ts +0 -14
  228. package/types/plugs/esbuild.d.ts +0 -23
  229. package/types/plugs/eslint/runner.d.ts +0 -22
  230. package/types/plugs/exec.d.ts +0 -90
  231. package/types/plugs/filter.d.ts +0 -23
  232. package/types/plugs/rmf.d.ts +0 -15
  233. package/types/plugs/tsc/runner.d.ts +0 -13
  234. package/types/plugs.d.ts +0 -17
  235. package/types/run.d.ts +0 -89
  236. package/types/task.d.ts +0 -15
  237. package/types/utils/caller.d.ts +0 -7
  238. package/types/utils/options.d.ts +0 -15
File without changes
package/dist/async.cjs CHANGED
@@ -20,40 +20,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // async.ts
21
21
  var async_exports = {};
22
22
  __export(async_exports, {
23
- currentRun: () => currentRun,
24
- currentTask: () => currentTask,
23
+ currentContext: () => currentContext,
24
+ requireContext: () => requireContext,
25
25
  runAsync: () => runAsync,
26
26
  runningTasks: () => runningTasks
27
27
  });
28
28
  module.exports = __toCommonJS(async_exports);
29
29
  var import_node_async_hooks = require("node:async_hooks");
30
- function runAsync(run, task, callback) {
31
- return storage.run({ run, task }, () => {
32
- tasks.push(task);
33
- return callback().finally(() => {
34
- const index = tasks.lastIndexOf(task);
35
- if (index >= 0)
36
- tasks.splice(index, 1);
37
- });
30
+ var import_assert = require("./assert.cjs");
31
+ function runAsync(context, taskName, callback) {
32
+ return storage.run(context, async () => {
33
+ try {
34
+ tasks.add(taskName);
35
+ return await callback();
36
+ } finally {
37
+ tasks.delete(taskName);
38
+ }
38
39
  });
39
40
  }
40
- function currentTask() {
41
- var _a;
42
- return (_a = storage.getStore()) == null ? void 0 : _a.task;
41
+ function currentContext() {
42
+ return storage.getStore();
43
43
  }
44
- function currentRun() {
45
- var _a;
46
- return (_a = storage.getStore()) == null ? void 0 : _a.run;
44
+ function requireContext() {
45
+ const context = storage.getStore();
46
+ (0, import_assert.assert)(context, "Unable to retrieve current context");
47
+ return context;
47
48
  }
48
49
  function runningTasks() {
49
50
  return [...tasks].sort();
50
51
  }
51
52
  var storage = new import_node_async_hooks.AsyncLocalStorage();
52
- var tasks = [];
53
+ var tasks = /* @__PURE__ */ new Set();
53
54
  // Annotate the CommonJS export names for ESM import in node:
54
55
  0 && (module.exports = {
55
- currentRun,
56
- currentTask,
56
+ currentContext,
57
+ requireContext,
57
58
  runAsync,
58
59
  runningTasks
59
60
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/async.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAkC;AAW3B,SAAS,SAAY,KAAU,MAAc,UAAwC;AAC1F,SAAO,QAAQ,IAAI,EAAE,KAAK,KAAK,GAAG,MAAM;AACtC,UAAM,KAAK,IAAI;AACf,WAAO,SAAS,EAAE,QAAQ,MAAM;AAC9B,YAAM,QAAQ,MAAM,YAAY,IAAI;AACpC,UAAI,SAAS;AAAG,cAAM,OAAO,OAAO,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AACH;AAMO,SAAS,cAAkC;AAzBlD;AA0BE,UAAO,aAAQ,SAAS,MAAjB,mBAAoB;AAC7B;AAMO,SAAS,aAA8B;AAjC9C;AAkCE,UAAO,aAAQ,SAAS,MAAjB,mBAAoB;AAC7B;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,0CAA8C;AAClE,IAAM,QAAkB,CAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAkC;AAClC,oBAAuB;AAWhB,SAAS,SACZ,SACA,UACA,UACU;AACZ,SAAO,QAAQ,IAAI,SAAS,YAAY;AACtC,QAAI;AACF,YAAM,IAAI,QAAQ;AAClB,aAAO,MAAM,SAAS;AAAA,IACxB,UAAE;AACA,YAAM,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,iBAAsC;AACpD,SAAO,QAAQ,SAAS;AAC1B;AAMO,SAAS,iBAA0B;AACxC,QAAM,UAAU,QAAQ,SAAS;AACjC,4BAAO,SAAS,oCAAoC;AACpD,SAAO;AACT;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,0CAA2B;AAC/C,IAAM,QAAQ,oBAAI;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,20 @@
1
+ import { Context } from './pipe';
2
+ /**
3
+ * Run the specified `callback` associating the specified {@link Context} and task
4
+ * name with the current asynchronous invocation context.
5
+ */
6
+ export declare function runAsync<T>(context: Context, taskName: string, callback: () => Promise<T>): Promise<T>;
7
+ /**
8
+ * Returns the {@link Context} associated with the current asynchronous
9
+ * invocation context or `undefined`.
10
+ */
11
+ export declare function currentContext(): Context | undefined;
12
+ /**
13
+ * Returns the {@link Context} associated with the current asynchronous
14
+ * invocation context and fail if none was found.
15
+ */
16
+ export declare function requireContext(): Context;
17
+ /**
18
+ * Return an array of all _task names_ currently running
19
+ */
20
+ export declare function runningTasks(): string[];
package/dist/async.mjs CHANGED
@@ -1,31 +1,32 @@
1
1
  // async.ts
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
- function runAsync(run, task, callback) {
4
- return storage.run({ run, task }, () => {
5
- tasks.push(task);
6
- return callback().finally(() => {
7
- const index = tasks.lastIndexOf(task);
8
- if (index >= 0)
9
- tasks.splice(index, 1);
10
- });
3
+ import { assert } from "./assert.mjs";
4
+ function runAsync(context, taskName, callback) {
5
+ return storage.run(context, async () => {
6
+ try {
7
+ tasks.add(taskName);
8
+ return await callback();
9
+ } finally {
10
+ tasks.delete(taskName);
11
+ }
11
12
  });
12
13
  }
13
- function currentTask() {
14
- var _a;
15
- return (_a = storage.getStore()) == null ? void 0 : _a.task;
14
+ function currentContext() {
15
+ return storage.getStore();
16
16
  }
17
- function currentRun() {
18
- var _a;
19
- return (_a = storage.getStore()) == null ? void 0 : _a.run;
17
+ function requireContext() {
18
+ const context = storage.getStore();
19
+ assert(context, "Unable to retrieve current context");
20
+ return context;
20
21
  }
21
22
  function runningTasks() {
22
23
  return [...tasks].sort();
23
24
  }
24
25
  var storage = new AsyncLocalStorage();
25
- var tasks = [];
26
+ var tasks = /* @__PURE__ */ new Set();
26
27
  export {
27
- currentRun,
28
- currentTask,
28
+ currentContext,
29
+ requireContext,
29
30
  runAsync,
30
31
  runningTasks
31
32
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/async.ts"],
4
- "mappings": ";AAAA,SAAS,yBAAyB;AAW3B,SAAS,SAAY,KAAU,MAAc,UAAwC;AAC1F,SAAO,QAAQ,IAAI,EAAE,KAAK,KAAK,GAAG,MAAM;AACtC,UAAM,KAAK,IAAI;AACf,WAAO,SAAS,EAAE,QAAQ,MAAM;AAC9B,YAAM,QAAQ,MAAM,YAAY,IAAI;AACpC,UAAI,SAAS;AAAG,cAAM,OAAO,OAAO,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AACH;AAMO,SAAS,cAAkC;AAzBlD;AA0BE,UAAO,aAAQ,SAAS,MAAjB,mBAAoB;AAC7B;AAMO,SAAS,aAA8B;AAjC9C;AAkCE,UAAO,aAAQ,SAAS,MAAjB,mBAAoB;AAC7B;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,kBAA8C;AAClE,IAAM,QAAkB,CAAC;",
4
+ "mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAWhB,SAAS,SACZ,SACA,UACA,UACU;AACZ,SAAO,QAAQ,IAAI,SAAS,YAAY;AACtC,QAAI;AACF,YAAM,IAAI,QAAQ;AAClB,aAAO,MAAM,SAAS;AAAA,IACxB,UAAE;AACA,YAAM,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,iBAAsC;AACpD,SAAO,QAAQ,SAAS;AAC1B;AAMO,SAAS,iBAA0B;AACxC,QAAM,UAAU,QAAQ,SAAS;AACjC,SAAO,SAAS,oCAAoC;AACpD,SAAO;AACT;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,kBAA2B;AAC/C,IAAM,QAAQ,oBAAI;",
5
5
  "names": []
6
6
  }
package/dist/build.cjs CHANGED
@@ -21,136 +21,170 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var build_exports = {};
22
22
  __export(build_exports, {
23
23
  build: () => build,
24
- isBuild: () => isBuild
24
+ call: () => call
25
25
  });
26
26
  module.exports = __toCommonJS(build_exports);
27
27
  var import_assert = require("./assert.cjs");
28
28
  var import_async = require("./async.cjs");
29
29
  var import_log = require("./log.cjs");
30
- var import_paths = require("./paths.cjs");
31
30
  var import_pipe = require("./pipe.cjs");
32
- var import_run = require("./run.cjs");
33
- var import_task = require("./task.cjs");
34
31
  var import_caller = require("./utils/caller.cjs");
35
- var buildMarker = Symbol.for("plugjs:isBuild");
36
- function isBuild(build2) {
37
- return build2 && build2[buildMarker] === buildMarker;
38
- }
39
- function build(definition) {
40
- const buildFile = (0, import_caller.findCaller)(build).file;
41
- const buildDir = (0, import_paths.getAbsoluteParent)(buildFile);
42
- const tasks = {};
43
- const context = { buildFile, buildDir, tasks };
44
- const result = {};
45
- for (const name in definition) {
46
- const def = definition[name];
47
- const task = "task" in def ? def.task : new import_task.TaskImpl(context, def);
48
- const call = async (run) => {
49
- if (!run)
50
- run = run = new BuildRun(buildDir, buildFile, tasks);
51
- (0, import_assert.assert)(run instanceof BuildRun, "Incompatible Run specified");
52
- run.log.notice("Starting build...");
53
- const now = Date.now();
54
- let error = void 0;
55
- try {
56
- await run.call(name);
57
- } catch (err) {
58
- run.log.error(err);
59
- error = err;
60
- }
61
- try {
62
- await run.finish();
63
- if (error !== void 0)
64
- throw error;
65
- run.log.notice("Build completed", (0, import_log.$ms)(Date.now() - now));
66
- return run;
67
- } catch (error2) {
68
- run.log.error(`Build failed ${(0, import_log.$ms)(Date.now() - now)}`, error2);
69
- throw (0, import_assert.failure)();
70
- }
71
- };
72
- Object.defineProperty(call, "name", { enumerable: true, value: name });
73
- if (name.length > import_log.logOptions.taskLength) {
74
- import_log.logOptions.taskLength = name.length;
75
- }
76
- result[name] = Object.assign(call, { task });
77
- tasks[name] = task;
32
+ var import_options = require("./utils/options.cjs");
33
+ var PipeImpl = class extends import_pipe.Pipe {
34
+ constructor(_promise, _promises, _context) {
35
+ super();
36
+ this._promise = _promise;
37
+ this._promises = _promises;
38
+ this._context = _context;
39
+ _promises.add(_promise);
78
40
  }
79
- Object.defineProperty(result, buildMarker, { value: buildMarker });
80
- return result;
81
- }
82
- var BuildRun = class extends import_run.RunImpl {
83
- constructor(buildDir, buildFile, _tasks, _stack = [], _cache = /* @__PURE__ */ new Map(), taskName = "") {
84
- super({ taskName, buildDir, buildFile });
85
- this._tasks = _tasks;
86
- this._stack = _stack;
87
- this._cache = _cache;
41
+ [Symbol.toStringTag] = "PipeImpl";
42
+ then(onfulfilled, onrejected) {
43
+ return this._promise.then(onfulfilled, onrejected);
88
44
  }
89
- async finish() {
90
- const names = [];
91
- const promises = [];
92
- for (const { name, promise } of this._cache.values()) {
93
- names.push(name);
94
- promises.push(promise);
95
- }
96
- const settlements = await Promise.allSettled(promises);
97
- const failures = settlements.reduce((failures2, settlement, i) => {
98
- if (settlement.status === "rejected") {
99
- const name = names[i];
100
- (0, import_log.getLogger)(name).error(settlement.reason);
101
- failures2.push(name);
102
- }
103
- return failures2;
104
- }, []);
105
- if (failures.length) {
106
- const message = `${failures.length === 1 ? "task has" : "tasks have"}`;
107
- const names2 = failures.map((task) => (0, import_log.$t)(task)).join((0, import_log.$gry)(", "));
108
- this.log.error(failures.length, message, "failed:", names2);
109
- throw (0, import_assert.failure)();
110
- }
45
+ catch(onrejected) {
46
+ return this._promise.catch(onrejected);
47
+ }
48
+ finally(onfinally) {
49
+ return this._promise.finally(onfinally);
50
+ }
51
+ plug(arg) {
52
+ const plug = typeof arg === "function" ? { pipe: arg } : arg;
53
+ const promise = this._promise.then(async (files) => {
54
+ (0, import_assert.assert)(files, "Unable to extend Pipe");
55
+ const result = await plug.pipe(files, this._context);
56
+ (0, import_assert.assert)(result, "Plug did not return a Files instance");
57
+ return result;
58
+ });
59
+ return new PipeImpl(promise, this._promises, this._context);
60
+ }
61
+ async run() {
62
+ return this._promise.then((whaps) => {
63
+ (0, import_assert.assert)(whaps, "Unable to run Pipe");
64
+ return whaps;
65
+ });
66
+ }
67
+ };
68
+ var TaskImpl = class {
69
+ constructor(buildFile, tasks, props, _def) {
70
+ this.buildFile = buildFile;
71
+ this.tasks = tasks;
72
+ this.props = props;
73
+ this._def = _def;
111
74
  }
112
- call(name) {
113
- const task = this._tasks[name];
114
- if (!task)
115
- (0, import_assert.fail)(`Task "${(0, import_log.$t)(name)}" does not exist`);
116
- (0, import_assert.assert)(!this._stack.includes(task), `Circular dependency running task "${(0, import_log.$t)(name)}"`);
117
- const cached = this._cache.get(task);
75
+ call(state, taskName) {
76
+ (0, import_assert.assert)(!state.stack.includes(this), `Recursion detected calling ${(0, import_log.$t)(taskName)}`);
77
+ const cached = state.cache.get(this);
118
78
  if (cached)
119
- return cached.promise;
120
- const childRun = new BuildRun(
121
- task.context.buildDir,
122
- task.context.buildFile,
123
- { ...task.context.tasks, ...this._tasks },
124
- [...this._stack, task],
125
- this._cache,
126
- name
127
- );
128
- const promise = (0, import_async.runAsync)(childRun, name, () => childRun._run(name, task));
129
- this._cache.set(task, { name, promise });
79
+ return cached;
80
+ const props = Object.assign({}, this.props, state.props);
81
+ const tasks = Object.assign({}, this.tasks, state.tasks);
82
+ const stack = [...state.stack, this];
83
+ const cache = state.cache;
84
+ const promises = /* @__PURE__ */ new Set();
85
+ const context = new import_pipe.Context(this.buildFile, taskName);
86
+ const build2 = new Proxy({}, {
87
+ get(_, name) {
88
+ if (name in tasks) {
89
+ return () => {
90
+ const state2 = { stack, cache, tasks, props };
91
+ const promise2 = tasks[name].call(state2, name);
92
+ return new PipeImpl(promise2, promises, context);
93
+ };
94
+ } else if (name in props) {
95
+ return props[name];
96
+ }
97
+ }
98
+ });
99
+ context.log.info("Running...");
100
+ const now = Date.now();
101
+ const promise = (0, import_async.runAsync)(context, taskName, async () => {
102
+ try {
103
+ let result = await this._def.call(build2);
104
+ if (result && "run" in result)
105
+ result = await result.run();
106
+ return result || void 0;
107
+ } finally {
108
+ const settlements = await Promise.allSettled([...promises]);
109
+ const errors = /* @__PURE__ */ new Set();
110
+ for (const settlement of settlements) {
111
+ if (settlement.status === "fulfilled")
112
+ continue;
113
+ if (!(0, import_assert.isBuildFailure)(settlement.reason)) {
114
+ errors.add(settlement.reason);
115
+ }
116
+ }
117
+ for (const error of errors)
118
+ context.log.error(error);
119
+ }
120
+ }).then((result) => {
121
+ context.log.notice(`Success ${(0, import_log.$ms)(Date.now() - now)}`);
122
+ return result;
123
+ }).catch((error) => {
124
+ context.log.error(`Failure ${(0, import_log.$ms)(Date.now() - now)}`, error);
125
+ throw (0, import_assert.failure)();
126
+ });
127
+ cache.set(this, promise);
130
128
  return promise;
131
129
  }
132
- async _run(name, task) {
133
- const now = Date.now();
134
- this.log.notice(`Starting task ${(0, import_log.$t)(name)}...`);
135
- const thisBuild = {};
136
- for (const name2 in this._tasks) {
137
- thisBuild[name2] = () => {
138
- return new import_pipe.PipeImpl(this.call(name2), this);
139
- };
130
+ };
131
+ var buildMarker = Symbol.for("plugjs:isBuild");
132
+ function build(def) {
133
+ const buildFile = (0, import_caller.findCaller)(build);
134
+ const tasks = {};
135
+ const props = {};
136
+ for (const [key, val] of Object.entries(def)) {
137
+ let len = 0;
138
+ if (typeof val === "string") {
139
+ props[key] = val;
140
+ } else if (typeof val === "function") {
141
+ tasks[key] = new TaskImpl(buildFile, tasks, props, val);
142
+ len = key.length;
143
+ } else if (val instanceof TaskImpl) {
144
+ tasks[key] = val;
145
+ len = key.length;
140
146
  }
147
+ if (len > import_log.logOptions.taskLength)
148
+ import_log.logOptions.taskLength = len;
149
+ }
150
+ const call2 = async function call3(taskNames, overrideProps = {}) {
151
+ const logger = (0, import_log.getLogger)("");
152
+ const state = {
153
+ cache: /* @__PURE__ */ new Map(),
154
+ stack: [],
155
+ props: Object.assign({}, props, overrideProps),
156
+ tasks
157
+ };
158
+ logger.notice("Starting...");
159
+ const now = Date.now();
141
160
  try {
142
- const result = await task.call(thisBuild, this);
143
- this.log.notice(`Task ${(0, import_log.$t)(name)} completed`, (0, import_log.$ms)(Date.now() - now));
144
- return result;
161
+ for (const taskName of taskNames) {
162
+ if (taskName in tasks) {
163
+ await tasks[taskName].call(state, taskName);
164
+ } else {
165
+ (0, import_assert.fail)(`Task ${(0, import_log.$t)(taskName)} not found in build`);
166
+ }
167
+ }
168
+ logger.notice(`Build successful ${(0, import_log.$ms)(Date.now() - now)}`);
145
169
  } catch (error) {
146
- this.log.error(`Task ${(0, import_log.$t)(name)} failed ${(0, import_log.$ms)(Date.now() - now)}`, error);
170
+ logger.error(`Build failed ${(0, import_log.$ms)(Date.now() - now)}`, error);
147
171
  throw (0, import_assert.failure)();
148
172
  }
149
- }
150
- };
173
+ };
174
+ const compiled = Object.assign({}, props, tasks);
175
+ Object.defineProperty(compiled, buildMarker, { value: call2 });
176
+ return compiled;
177
+ }
178
+ function call(build2, ...args) {
179
+ const { params: tasks, options: props } = (0, import_options.parseOptions)(args, {});
180
+ const call2 = build2[buildMarker];
181
+ if (typeof call2 !== "function")
182
+ (0, import_assert.fail)("Unknown build type");
183
+ return call2(tasks, props);
184
+ }
151
185
  // Annotate the CommonJS export names for ESM import in node:
152
186
  0 && (module.exports = {
153
187
  build,
154
- isBuild
188
+ call
155
189
  });
156
190
  //# sourceMappingURL=build.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/build.ts"],
4
- "mappings": "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",
5
- "names": ["build", "error", "failures", "names", "name"]
4
+ "mappings": "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",
5
+ "names": ["build", "state", "promise", "call"]
6
6
  }
@@ -0,0 +1,12 @@
1
+ import type { Build, BuildDef, Props, ThisBuild } from './types';
2
+ /** Compile a {@link BuildDef | build definition} into a {@link Build} */
3
+ export declare function build<D extends BuildDef, B extends ThisBuild<D>>(def: D & ThisType<B>): Build<D>;
4
+ /** Internal type identifying all _task names_ in a {@link Build} */
5
+ declare type TaskNames<B extends Build> = string & keyof B & (B extends Build<BuildDef, infer Tasks, Props> ? keyof Tasks : never);
6
+ /** Internal type identifying all _property names_ in a {@link Build} */
7
+ declare type OverrideProps<B extends Build> = {
8
+ [k in keyof B as B[k] extends string ? k : never]?: string;
9
+ };
10
+ /** Serially invoke tasks in a {@link Build} optionally overriding properties */
11
+ export declare function call<B extends Build>(build: B, ...args: [...taskNames: [TaskNames<B>, ...TaskNames<B>[]]] | [...taskNames: [TaskNames<B>, ...TaskNames<B>[]], options: OverrideProps<B>]): Promise<void>;
12
+ export {};