@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
@@ -3,60 +3,58 @@ import path from "node:path";
3
3
  import reaadline from "node:readline";
4
4
  import { spawn } from "node:child_process";
5
5
  import { assert } from "../assert.mjs";
6
- import { currentRun } from "../async.mjs";
7
6
  import { $p, logOptions } from "../log.mjs";
8
7
  import { getCurrentWorkingDirectory, resolveDirectory } from "../paths.mjs";
9
8
  import { install } from "../pipe.mjs";
10
9
  import { parseOptions } from "../utils/options.mjs";
11
- var Exec = class {
10
+ import { requireContext } from "../async.mjs";
11
+ install("exec", class Exec {
12
12
  _cmd;
13
13
  _args;
14
14
  _options;
15
- constructor(cmd, ...args) {
15
+ constructor(...args) {
16
16
  const { params, options } = parseOptions(args, {});
17
- this._cmd = cmd;
18
- this._args = params;
17
+ const [_cmd, ..._args] = params;
18
+ this._cmd = _cmd;
19
+ this._args = _args;
19
20
  this._options = options;
20
21
  }
21
- async pipe(files, run) {
22
+ async pipe(files, context) {
22
23
  const { relativePaths = true, ...options } = this._options;
23
24
  if (!options.cwd)
24
25
  options.cwd = files.directory;
25
26
  const params = [...relativePaths ? files : files.absolutePaths()];
26
27
  if (options.shell)
27
28
  params.forEach((s, i, a) => a[i] = JSON.stringify(s));
28
- await spawnChild(this._cmd, [...this._args, ...params], options, run);
29
+ await spawnChild(this._cmd, [...this._args, ...params], options, context);
29
30
  return files;
30
31
  }
31
- };
32
+ });
32
33
  function exec(cmd, ...args) {
33
- const run = currentRun();
34
- assert(run, "Unable to execute commands outside a running task");
35
- const { params, options } = parseOptions(args, {});
36
- return spawnChild(cmd, params, options, run);
34
+ const { params, options } = parseOptions(args);
35
+ return spawnChild(cmd, params, options, requireContext());
37
36
  }
38
- install("exec", Exec);
39
- async function spawnChild(cmd, args, options = {}, run) {
37
+ async function spawnChild(cmd, args, options = {}, context) {
40
38
  const {
41
39
  env = {},
42
40
  shell = false,
43
41
  cwd = void 0,
44
42
  ...extraOptions
45
43
  } = options;
46
- const childCwd = cwd ? run.resolve(cwd) : getCurrentWorkingDirectory();
44
+ const childCwd = cwd ? context.resolve(cwd) : getCurrentWorkingDirectory();
47
45
  assert(resolveDirectory(childCwd), `Current working directory ${$p(childCwd)} does not exist`);
48
46
  const childPaths = [];
49
- const baseNodePath = run.resolve("@node_modules", ".bin");
47
+ const baseNodePath = context.resolve("@node_modules", ".bin");
50
48
  if (resolveDirectory(baseNodePath))
51
49
  childPaths.push(baseNodePath);
52
- const buildNodePath = run.resolve("./node_modules", ".bin");
50
+ const buildNodePath = context.resolve("./node_modules", ".bin");
53
51
  if (resolveDirectory(buildNodePath))
54
52
  childPaths.push(buildNodePath);
55
53
  const extraPath = env.PATH || process.env.PATH;
56
54
  if (extraPath)
57
55
  childPaths.push(extraPath);
58
56
  const PATH = childPaths.join(path.delimiter);
59
- const __LOG_OPTIONS = JSON.stringify(logOptions.fork(run.taskName));
57
+ const __LOG_OPTIONS = JSON.stringify(logOptions.fork(context.taskName));
60
58
  const childEnv = { ...process.env, ...env, PATH, __LOG_OPTIONS };
61
59
  const childOptions = {
62
60
  ...extraOptions,
@@ -65,16 +63,16 @@ async function spawnChild(cmd, args, options = {}, run) {
65
63
  env: childEnv,
66
64
  shell
67
65
  };
68
- run.log.info("Executing", [cmd, ...args]);
69
- run.log.info("Execution options", childOptions);
66
+ context.log.info("Executing", [cmd, ...args]);
67
+ context.log.info("Execution options", childOptions);
70
68
  const child = spawn(cmd, args, childOptions);
71
69
  if (child.stdout) {
72
70
  const out = reaadline.createInterface(child.stdout);
73
- out.on("line", (line) => line ? run.log.notice(line) : run.log.notice("\xA0"));
71
+ out.on("line", (line) => line ? context.log.notice(line) : context.log.notice("\xA0"));
74
72
  }
75
73
  if (child.stderr) {
76
74
  const err = reaadline.createInterface(child.stderr);
77
- err.on("line", (line) => line ? run.log.warn(line) : run.log.warn("\xA0"));
75
+ err.on("line", (line) => line ? context.log.warn(line) : context.log.warn("\xA0"));
78
76
  }
79
77
  return new Promise((resolve, reject) => {
80
78
  child.on("error", (error) => reject(error));
@@ -90,7 +88,6 @@ async function spawnChild(cmd, args, options = {}, run) {
90
88
  });
91
89
  }
92
90
  export {
93
- Exec,
94
91
  exec
95
92
  };
96
93
  //# sourceMappingURL=exec.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/exec.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,10 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
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
6
  var __copyProps = (to, from, except, desc) => {
11
7
  if (from && typeof from === "object" || typeof from === "function") {
12
8
  for (let key of __getOwnPropNames(from))
@@ -19,40 +15,34 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
15
 
20
16
  // plugs/filter.ts
21
17
  var filter_exports = {};
22
- __export(filter_exports, {
23
- Filter: () => Filter
24
- });
25
18
  module.exports = __toCommonJS(filter_exports);
19
+ var import_files = require("../files.cjs");
26
20
  var import_paths = require("../paths.cjs");
27
21
  var import_pipe = require("../pipe.cjs");
28
22
  var import_match = require("../utils/match.cjs");
29
23
  var import_options = require("../utils/options.cjs");
30
- var Filter = class {
24
+ (0, import_pipe.install)("filter", class Filter {
31
25
  _globs;
32
26
  _options;
33
- constructor(glob, ...args) {
27
+ constructor(...args) {
34
28
  const { params, options } = (0, import_options.parseOptions)(args, {});
35
- this._globs = [glob, ...params];
36
29
  this._options = options;
30
+ this._globs = params;
37
31
  }
38
- pipe(files, run) {
32
+ pipe(files, context) {
39
33
  const { directory, ...options } = this._options;
40
- const builder = run.files(directory || files.directory);
34
+ const dir = directory ? context.resolve(directory) : files.directory;
35
+ const builder = import_files.Files.builder(dir);
41
36
  const matcher = (0, import_match.match)(this._globs, options);
42
37
  for (const file of files.absolutePaths()) {
43
38
  const relative = (0, import_paths.resolveRelativeChildPath)(builder.directory, file);
44
39
  if (relative && matcher(relative))
45
- builder.unchecked(relative);
40
+ builder.add(relative);
46
41
  }
47
42
  const result = builder.build();
48
43
  const discarded = files.length - result.length;
49
- run.log.debug("Filtered", result.length, "files (discarded", discarded, "files)");
44
+ context.log.debug("Filtered", result.length, "files (discarded", discarded, "files)");
50
45
  return result;
51
46
  }
52
- };
53
- (0, import_pipe.install)("filter", Filter);
54
- // Annotate the CommonJS export names for ESM import in node:
55
- 0 && (module.exports = {
56
- Filter
57
47
  });
58
48
  //# sourceMappingURL=filter.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/filter.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAyC;AACzC,kBAA8B;AAE9B,mBAAoC;AACpC,qBAA2C;AASpC,IAAM,SAAN,MAAoC;AAAA,EACxB;AAAA,EACA;AAAA,EAEjB,YAAY,SAAiB,MAAmC;AAC9D,UAAM,EAAE,QAAQ,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AACjD,SAAK,SAAS,CAAE,MAAM,GAAG,MAAO;AAChC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,KAAK,OAAc,KAAiB;AAClC,UAAM,EAAE,cAAc,QAAQ,IAAI,KAAK;AAEvC,UAAM,UAAU,IAAI,MAAM,aAAa,MAAM,SAAS;AACtD,UAAM,cAAU,oBAAM,KAAK,QAAQ,OAAO;AAE1C,eAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,YAAM,eAAW,uCAAyB,QAAQ,WAAW,IAAI;AACjE,UAAI,YAAY,QAAQ,QAAQ;AAAG,gBAAQ,UAAU,QAAQ;AAAA,IAC/D;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,UAAM,YAAY,MAAM,SAAS,OAAO;AACxC,QAAI,IAAI,MAAM,YAAY,OAAO,QAAQ,oBAAoB,WAAW,QAAQ;AAEhF,WAAO;AAAA,EACT;AACF;AAAA,IAMA,qBAAQ,UAAU,MAAM;",
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mBAAsB;AACtB,mBAAyC;AACzC,kBAAuD;AACvD,mBAAoC;AACpC,qBAA6B;AAAA,IAqC7B,qBAAQ,UAAU,MAAM,OAA8B;AAAA,EACnC;AAAA,EACA;AAAA,EAEjB,eAAe,MAAgC;AAC7C,UAAM,EAAE,QAAQ,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AACjD,SAAK,WAAW;AAChB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,KAAK,OAAc,SAAyB;AAC1C,UAAM,EAAE,cAAc,QAAQ,IAAI,KAAK;AAEvC,UAAM,MAAM,YAAY,QAAQ,QAAQ,SAAS,IAAI,MAAM;AAC3D,UAAM,UAAU,mBAAM,QAAQ,GAAG;AACjC,UAAM,cAAU,oBAAM,KAAK,QAAQ,OAAO;AAE1C,eAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,YAAM,eAAW,uCAAyB,QAAQ,WAAW,IAAI;AACjE,UAAI,YAAY,QAAQ,QAAQ;AAAG,gBAAQ,IAAI,QAAQ;AAAA,IACzD;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,UAAM,YAAY,MAAM,SAAS,OAAO;AACxC,YAAQ,IAAI,MAAM,YAAY,OAAO,QAAQ,oBAAoB,WAAW,QAAQ;AAEpF,WAAO;AAAA,EACT;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,29 @@
1
+ import { MatchOptions } from '../utils/match';
2
+ /** Options for filtering {@link Files}. */
3
+ export interface FilterOptions extends MatchOptions {
4
+ /** The base directory for filtering, and relativising the resulting files. */
5
+ directory?: string;
6
+ }
7
+ declare module '../pipe' {
8
+ interface Pipe {
9
+ /**
10
+ * Filter the current {@link Files} using globs.
11
+ *
12
+ * @param glob The glob to use for filtering files
13
+ */
14
+ filter(glob: string): Pipe;
15
+ /**
16
+ * Filter the current {@link Files} using globs.
17
+ *
18
+ * @param globs The globs to use for filtering files (at least one)
19
+ */
20
+ filter(...globs: [string, ...string[]]): Pipe;
21
+ /**
22
+ * Filter the current {@link Files} using globs.
23
+ *
24
+ * @param globs The globs to use for filtering files (at least one)
25
+ * @param options Additional {@link FilterOptions | options} for filtering
26
+ */
27
+ filter(...args: [...globs: [string, ...string[]], options: FilterOptions]): Pipe;
28
+ }
29
+ }
@@ -1,33 +1,31 @@
1
1
  // plugs/filter.ts
2
+ import { Files } from "../files.mjs";
2
3
  import { resolveRelativeChildPath } from "../paths.mjs";
3
4
  import { install } from "../pipe.mjs";
4
5
  import { match } from "../utils/match.mjs";
5
6
  import { parseOptions } from "../utils/options.mjs";
6
- var Filter = class {
7
+ install("filter", class Filter {
7
8
  _globs;
8
9
  _options;
9
- constructor(glob, ...args) {
10
+ constructor(...args) {
10
11
  const { params, options } = parseOptions(args, {});
11
- this._globs = [glob, ...params];
12
12
  this._options = options;
13
+ this._globs = params;
13
14
  }
14
- pipe(files, run) {
15
+ pipe(files, context) {
15
16
  const { directory, ...options } = this._options;
16
- const builder = run.files(directory || files.directory);
17
+ const dir = directory ? context.resolve(directory) : files.directory;
18
+ const builder = Files.builder(dir);
17
19
  const matcher = match(this._globs, options);
18
20
  for (const file of files.absolutePaths()) {
19
21
  const relative = resolveRelativeChildPath(builder.directory, file);
20
22
  if (relative && matcher(relative))
21
- builder.unchecked(relative);
23
+ builder.add(relative);
22
24
  }
23
25
  const result = builder.build();
24
26
  const discarded = files.length - result.length;
25
- run.log.debug("Filtered", result.length, "files (discarded", discarded, "files)");
27
+ context.log.debug("Filtered", result.length, "files (discarded", discarded, "files)");
26
28
  return result;
27
29
  }
28
- };
29
- install("filter", Filter);
30
- export {
31
- Filter
32
- };
30
+ });
33
31
  //# sourceMappingURL=filter.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/filter.ts"],
4
- "mappings": ";AACA,SAAS,gCAAgC;AACzC,SAAS,eAAqB;AAE9B,SAAS,aAA2B;AACpC,SAAuB,oBAAoB;AASpC,IAAM,SAAN,MAAoC;AAAA,EACxB;AAAA,EACA;AAAA,EAEjB,YAAY,SAAiB,MAAmC;AAC9D,UAAM,EAAE,QAAQ,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AACjD,SAAK,SAAS,CAAE,MAAM,GAAG,MAAO;AAChC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,KAAK,OAAc,KAAiB;AAClC,UAAM,EAAE,cAAc,QAAQ,IAAI,KAAK;AAEvC,UAAM,UAAU,IAAI,MAAM,aAAa,MAAM,SAAS;AACtD,UAAM,UAAU,MAAM,KAAK,QAAQ,OAAO;AAE1C,eAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,YAAM,WAAW,yBAAyB,QAAQ,WAAW,IAAI;AACjE,UAAI,YAAY,QAAQ,QAAQ;AAAG,gBAAQ,UAAU,QAAQ;AAAA,IAC/D;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,UAAM,YAAY,MAAM,SAAS,OAAO;AACxC,QAAI,IAAI,MAAM,YAAY,OAAO,QAAQ,oBAAoB,WAAW,QAAQ;AAEhF,WAAO;AAAA,EACT;AACF;AAMA,QAAQ,UAAU,MAAM;",
4
+ "mappings": ";AAAA,SAAS,aAAa;AACtB,SAAS,gCAAgC;AACzC,SAAkB,eAAqC;AACvD,SAAS,aAA2B;AACpC,SAAS,oBAAoB;AAqC7B,QAAQ,UAAU,MAAM,OAA8B;AAAA,EACnC;AAAA,EACA;AAAA,EAEjB,eAAe,MAAgC;AAC7C,UAAM,EAAE,QAAQ,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AACjD,SAAK,WAAW;AAChB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,KAAK,OAAc,SAAyB;AAC1C,UAAM,EAAE,cAAc,QAAQ,IAAI,KAAK;AAEvC,UAAM,MAAM,YAAY,QAAQ,QAAQ,SAAS,IAAI,MAAM;AAC3D,UAAM,UAAU,MAAM,QAAQ,GAAG;AACjC,UAAM,UAAU,MAAM,KAAK,QAAQ,OAAO;AAE1C,eAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,YAAM,WAAW,yBAAyB,QAAQ,WAAW,IAAI;AACjE,UAAI,YAAY,QAAQ,QAAQ;AAAG,gBAAQ,IAAI,QAAQ;AAAA,IACzD;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,UAAM,YAAY,MAAM,SAAS,OAAO;AACxC,YAAQ,IAAI,MAAM,YAAY,OAAO,QAAQ,oBAAoB,WAAW,QAAQ;AAEpF,WAAO;AAAA,EACT;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -27,8 +27,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
27
27
  var reporter_exports = {};
28
28
  __export(reporter_exports, {
29
29
  PlugReporter: () => PlugReporter,
30
- logSymbol: () => logSymbol,
31
- runSymbol: () => runSymbol
30
+ logSymbol: () => logSymbol
32
31
  });
33
32
  module.exports = __toCommonJS(reporter_exports);
34
33
  var import_mocha = __toESM(require("mocha"));
@@ -39,7 +38,6 @@ var _success = "\u2714";
39
38
  var _failure = "\u2718";
40
39
  var _details = "\u21B3";
41
40
  var logSymbol = Symbol();
42
- var runSymbol = Symbol();
43
41
  var PlugReporter = class extends import_mocha.default.reporters.Base {
44
42
  constructor(runner, options) {
45
43
  super(runner, options);
@@ -47,6 +45,7 @@ var PlugReporter = class extends import_mocha.default.reporters.Base {
47
45
  const log = options.reporterOptions[logSymbol];
48
46
  const failures = [];
49
47
  const rootSuite = runner.suite;
48
+ let slow = 0;
50
49
  runner.on("suite", (suite) => {
51
50
  if (suite === rootSuite)
52
51
  return;
@@ -56,12 +55,25 @@ var PlugReporter = class extends import_mocha.default.reporters.Base {
56
55
  runner.on("suite end", () => {
57
56
  log.leave();
58
57
  });
58
+ runner.on("fail", (test) => {
59
+ if (test.type === "hook") {
60
+ const number = failures.push(test);
61
+ const tag = (0, import_log.$gry)("[") + (0, import_log.$red)("failed") + (0, import_log.$gry)("] [") + (0, import_log.$red)(number) + (0, import_log.$gry)("]");
62
+ log.error(`${(0, import_log.$red)(_failure)} ${test.title} ${tag}`);
63
+ }
64
+ });
59
65
  runner.on("test", (test) => {
60
66
  log.enter(import_log.NOTICE, `${(0, import_log.$blu)(_pending)} ${test.title}`);
61
67
  });
62
68
  runner.on("test end", (test) => {
63
69
  if (test.isPassed()) {
64
- log.leave(import_log.NOTICE, `${(0, import_log.$grn)(_success)} ${test.title}`);
70
+ const duration = test.duration || 0;
71
+ if (duration < test.slow()) {
72
+ log.leave(import_log.NOTICE, `${(0, import_log.$grn)(_success)} ${test.title}`);
73
+ } else {
74
+ log.leave(import_log.WARN, `${(0, import_log.$ylw)(_success)} ${test.title} ${(0, import_log.$ms)(duration, "slow")}`);
75
+ slow++;
76
+ }
65
77
  } else if (test.isPending()) {
66
78
  const tag = (0, import_log.$gry)("[") + (0, import_log.$ylw)("skipped") + (0, import_log.$gry)("]");
67
79
  log.leave(import_log.WARN, `${(0, import_log.$ylw)(_pending)} ${test.title} ${tag}`);
@@ -119,6 +131,8 @@ var PlugReporter = class extends import_mocha.default.reporters.Base {
119
131
  const fmt = (n) => n === 1 ? `${n} test` : `${n} tests`;
120
132
  if (passes)
121
133
  log.notice((0, import_log.$grn)(fmt(passes)), "passing", (0, import_log.$ms)(duration));
134
+ if (slow)
135
+ log.warn((0, import_log.$ylw)(fmt(slow)), "slow");
122
136
  if (pending)
123
137
  log.warn((0, import_log.$ylw)(fmt(pending)), "pending");
124
138
  if (failures2)
@@ -134,7 +148,6 @@ var PlugReporter = class extends import_mocha.default.reporters.Base {
134
148
  // Annotate the CommonJS export names for ESM import in node:
135
149
  0 && (module.exports = {
136
150
  PlugReporter,
137
- logSymbol,
138
- runSymbol
151
+ logSymbol
139
152
  });
140
153
  //# sourceMappingURL=reporter.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/reporter.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["RealMocha", "failures"]
6
6
  }
@@ -1,8 +1,6 @@
1
1
  import RealMocha from 'mocha';
2
2
  /** Symbol to inject `Logger` in reporter options */
3
3
  export declare const logSymbol: unique symbol;
4
- /** Symbol to inject `Run` in reporter options */
5
- export declare const runSymbol: unique symbol;
6
4
  export declare class PlugReporter extends RealMocha.reporters.Base {
7
5
  constructor(runner: RealMocha.Runner, options: RealMocha.MochaOptions);
8
6
  }
@@ -7,7 +7,6 @@ var _success = "\u2714";
7
7
  var _failure = "\u2718";
8
8
  var _details = "\u21B3";
9
9
  var logSymbol = Symbol();
10
- var runSymbol = Symbol();
11
10
  var PlugReporter = class extends RealMocha.reporters.Base {
12
11
  constructor(runner, options) {
13
12
  super(runner, options);
@@ -15,6 +14,7 @@ var PlugReporter = class extends RealMocha.reporters.Base {
15
14
  const log = options.reporterOptions[logSymbol];
16
15
  const failures = [];
17
16
  const rootSuite = runner.suite;
17
+ let slow = 0;
18
18
  runner.on("suite", (suite) => {
19
19
  if (suite === rootSuite)
20
20
  return;
@@ -24,12 +24,25 @@ var PlugReporter = class extends RealMocha.reporters.Base {
24
24
  runner.on("suite end", () => {
25
25
  log.leave();
26
26
  });
27
+ runner.on("fail", (test) => {
28
+ if (test.type === "hook") {
29
+ const number = failures.push(test);
30
+ const tag = $gry("[") + $red("failed") + $gry("] [") + $red(number) + $gry("]");
31
+ log.error(`${$red(_failure)} ${test.title} ${tag}`);
32
+ }
33
+ });
27
34
  runner.on("test", (test) => {
28
35
  log.enter(NOTICE, `${$blu(_pending)} ${test.title}`);
29
36
  });
30
37
  runner.on("test end", (test) => {
31
38
  if (test.isPassed()) {
32
- log.leave(NOTICE, `${$grn(_success)} ${test.title}`);
39
+ const duration = test.duration || 0;
40
+ if (duration < test.slow()) {
41
+ log.leave(NOTICE, `${$grn(_success)} ${test.title}`);
42
+ } else {
43
+ log.leave(WARN, `${$ylw(_success)} ${test.title} ${$ms(duration, "slow")}`);
44
+ slow++;
45
+ }
33
46
  } else if (test.isPending()) {
34
47
  const tag = $gry("[") + $ylw("skipped") + $gry("]");
35
48
  log.leave(WARN, `${$ylw(_pending)} ${test.title} ${tag}`);
@@ -87,6 +100,8 @@ var PlugReporter = class extends RealMocha.reporters.Base {
87
100
  const fmt = (n) => n === 1 ? `${n} test` : `${n} tests`;
88
101
  if (passes)
89
102
  log.notice($grn(fmt(passes)), "passing", $ms(duration));
103
+ if (slow)
104
+ log.warn($ylw(fmt(slow)), "slow");
90
105
  if (pending)
91
106
  log.warn($ylw(fmt(pending)), "pending");
92
107
  if (failures2)
@@ -101,7 +116,6 @@ var PlugReporter = class extends RealMocha.reporters.Base {
101
116
  };
102
117
  export {
103
118
  PlugReporter,
104
- logSymbol,
105
- runSymbol
119
+ logSymbol
106
120
  };
107
121
  //# sourceMappingURL=reporter.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/reporter.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["failures"]
6
6
  }
@@ -37,17 +37,16 @@ var Mocha = class {
37
37
  constructor(_options = {}) {
38
38
  this._options = _options;
39
39
  }
40
- async pipe(files, run) {
41
- run.log.notice("");
42
- run.log.enter(import_log.NOTICE, (0, import_log.$wht)("Starting Mocha"));
40
+ async pipe(files, context) {
41
+ context.log.notice("");
42
+ context.log.enter(import_log.NOTICE, (0, import_log.$wht)("Starting Mocha"));
43
43
  const mocha = new import_mocha.default({
44
44
  diff: true,
45
45
  reporter: import_reporter.PlugReporter,
46
46
  ...this._options,
47
47
  reporterOptions: {
48
48
  ...this._options.reporterOptions,
49
- [import_reporter.logSymbol]: run.log,
50
- [import_reporter.runSymbol]: run
49
+ [import_reporter.logSymbol]: context.log
51
50
  },
52
51
  allowUncaught: false,
53
52
  delay: false
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/runner.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEtB,oBAAwB;AAExB,iBAA6B;AAG7B,sBAAmD;AA6BnD,IAAqB,QAArB,MAAsD;AAAA,EACpD,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,KAA8B;AAGrD,QAAI,IAAI,OAAO,EAAE;AACjB,QAAI,IAAI,MAAM,uBAAQ,iBAAK,gBAAgB,CAAC;AAG5C,UAAM,QAAQ,IAAI,aAAAA,QAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,4BAAY,IAAI;AAAA,QACjB,CAAC,4BAAY;AAAA,MACf;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,uBAAO,uBAAQ,CAAC;AAC9B,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEtB,oBAAwB;AAExB,iBAA6B;AAG7B,sBAAwC;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,uBAAQ,iBAAK,gBAAgB,CAAC;AAGhD,UAAM,QAAQ,IAAI,aAAAA,QAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,4BAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,uBAAO,uBAAQ,CAAC;AAC9B,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
5
  "names": ["RealMocha"]
6
6
  }
@@ -0,0 +1,8 @@
1
+ import { Files } from '../../files';
2
+ import { PipeParameters, Plug, Context } from '../../pipe';
3
+ /** Writes some info about the current {@link Files} being passed around. */
4
+ export default class Mocha implements Plug<void> {
5
+ private readonly _options;
6
+ constructor(...args: PipeParameters<'mocha'>);
7
+ pipe(files: Files, context: Context): Promise<void>;
8
+ }
@@ -2,22 +2,21 @@
2
2
  import RealMocha from "mocha";
3
3
  import { failure } from "../../assert.mjs";
4
4
  import { $wht, NOTICE } from "../../log.mjs";
5
- import { logSymbol, PlugReporter, runSymbol } from "./reporter.mjs";
5
+ import { logSymbol, PlugReporter } from "./reporter.mjs";
6
6
  var Mocha = class {
7
7
  constructor(_options = {}) {
8
8
  this._options = _options;
9
9
  }
10
- async pipe(files, run) {
11
- run.log.notice("");
12
- run.log.enter(NOTICE, $wht("Starting Mocha"));
10
+ async pipe(files, context) {
11
+ context.log.notice("");
12
+ context.log.enter(NOTICE, $wht("Starting Mocha"));
13
13
  const mocha = new RealMocha({
14
14
  diff: true,
15
15
  reporter: PlugReporter,
16
16
  ...this._options,
17
17
  reporterOptions: {
18
18
  ...this._options.reporterOptions,
19
- [logSymbol]: run.log,
20
- [runSymbol]: run
19
+ [logSymbol]: context.log
21
20
  },
22
21
  allowUncaught: false,
23
22
  delay: false
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/runner.ts"],
4
- "mappings": ";AAAA,OAAO,eAAe;AAEtB,SAAS,eAAe;AAExB,SAAS,MAAM,cAAc;AAG7B,SAAS,WAAW,cAAc,iBAAiB;AA6BnD,IAAqB,QAArB,MAAsD;AAAA,EACpD,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,KAA8B;AAGrD,QAAI,IAAI,OAAO,EAAE;AACjB,QAAI,IAAI,MAAM,QAAQ,KAAK,gBAAgB,CAAC;AAG5C,UAAM,QAAQ,IAAI,UAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,YAAY,IAAI;AAAA,QACjB,CAAC,YAAY;AAAA,MACf;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,QAAQ,CAAC;AAC9B,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
4
+ "mappings": ";AAAA,OAAO,eAAe;AAEtB,SAAS,eAAe;AAExB,SAAS,MAAM,cAAc;AAG7B,SAAS,WAAW,oBAAoB;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,QAAQ,KAAK,gBAAgB,CAAC;AAGhD,UAAM,QAAQ,IAAI,UAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,YAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,QAAQ,CAAC;AAC9B,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,22 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // plugs/mocha.ts
17
+ var mocha_exports = {};
18
+ module.exports = __toCommonJS(mocha_exports);
19
+ var import_paths = require("../paths.cjs");
20
+ var import_pipe = require("../pipe.cjs");
21
+ (0, import_pipe.installForking)("mocha", (0, import_paths.requireResolve)(__filename, "./mocha/runner"));
22
+ //# sourceMappingURL=mocha.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugs/mocha.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mBAA+B;AAC/B,kBAA+B;AAAA,IAuC/B,4BAAe,aAAS,6BAAe,YAAW,gBAAgB,CAAC;",
5
+ "names": []
6
+ }
@@ -1,6 +1,3 @@
1
- import { Files } from '../../files.js';
2
- import { Plug } from '../../pipe.js';
3
- import { Run } from '../../run.js';
4
1
  /** Options to construct our {@link Mocha} plug. */
5
2
  export interface MochaOptions {
6
3
  /** Specify the directory where coverage data will be saved */
@@ -26,9 +23,13 @@ export interface MochaOptions {
26
23
  /** Timeout threshold value. */
27
24
  timeout?: number;
28
25
  }
29
- /** Writes some info about the current {@link Files} being passed around. */
30
- export default class Mocha implements Plug<undefined> {
31
- private readonly _options;
32
- constructor(_options?: MochaOptions);
33
- pipe(files: Files, run: Run): Promise<undefined>;
26
+ declare module '../pipe' {
27
+ interface Pipe {
28
+ /**
29
+ * Run tests using {@link https://mochajs.org/ _Mocha_}.
30
+ *
31
+ * @param options Optional {@link MochaOptions | options} for _Mocha_.
32
+ */
33
+ mocha(options?: MochaOptions): Promise<undefined>;
34
+ }
34
35
  }
@@ -0,0 +1,5 @@
1
+ // plugs/mocha.ts
2
+ import { requireResolve } from "../paths.mjs";
3
+ import { installForking } from "../pipe.mjs";
4
+ installForking("mocha", requireResolve(import.meta.url, "./mocha/runner"));
5
+ //# sourceMappingURL=mocha.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugs/mocha.ts"],
4
+ "mappings": ";AAAA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAuC/B,eAAe,SAAS,eAAe,iBAAW,gBAAgB,CAAC;",
5
+ "names": []
6
+ }