@plugjs/plug 0.0.26 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/{failure.cjs → asserts.cjs} +29 -9
  2. package/dist/asserts.cjs.map +6 -0
  3. package/dist/{failure.d.ts → asserts.d.ts} +4 -1
  4. package/dist/asserts.mjs +51 -0
  5. package/dist/asserts.mjs.map +6 -0
  6. package/dist/async.cjs +2 -2
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/async.mjs +2 -2
  9. package/dist/async.mjs.map +1 -1
  10. package/dist/build.cjs +21 -30
  11. package/dist/build.cjs.map +1 -1
  12. package/dist/build.d.ts +2 -13
  13. package/dist/build.mjs +16 -24
  14. package/dist/build.mjs.map +1 -1
  15. package/dist/files.cjs +3 -3
  16. package/dist/files.cjs.map +1 -1
  17. package/dist/files.mjs +1 -1
  18. package/dist/files.mjs.map +1 -1
  19. package/dist/fork.cjs +35 -30
  20. package/dist/fork.cjs.map +1 -1
  21. package/dist/fork.d.ts +6 -3
  22. package/dist/fork.mjs +18 -13
  23. package/dist/fork.mjs.map +1 -1
  24. package/dist/{utils/asyncfs.cjs → fs.cjs} +6 -6
  25. package/dist/{utils/asyncfs.cjs.map → fs.cjs.map} +2 -2
  26. package/dist/{utils/asyncfs.d.ts → fs.d.ts} +1 -1
  27. package/dist/{utils/asyncfs.mjs → fs.mjs} +3 -3
  28. package/dist/{utils/asyncfs.mjs.map → fs.mjs.map} +2 -2
  29. package/dist/helpers.cjs +21 -14
  30. package/dist/helpers.cjs.map +1 -1
  31. package/dist/helpers.d.ts +24 -1
  32. package/dist/helpers.mjs +13 -7
  33. package/dist/helpers.mjs.map +1 -1
  34. package/dist/index.cjs +36 -6
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.ts +25 -8
  37. package/dist/index.mjs +20 -5
  38. package/dist/index.mjs.map +1 -1
  39. package/dist/{log → logging}/colors.cjs +1 -1
  40. package/dist/{log → logging}/colors.cjs.map +1 -1
  41. package/dist/{log → logging}/colors.d.ts +0 -0
  42. package/dist/{log → logging}/colors.mjs +1 -1
  43. package/dist/{log → logging}/colors.mjs.map +1 -1
  44. package/dist/{log → logging}/emit.cjs +1 -2
  45. package/dist/{log → logging}/emit.cjs.map +2 -2
  46. package/dist/{log → logging}/emit.d.ts +0 -0
  47. package/dist/{log → logging}/emit.mjs +1 -2
  48. package/dist/{log → logging}/emit.mjs.map +2 -2
  49. package/dist/{log → logging}/levels.cjs +1 -1
  50. package/dist/{log → logging}/levels.cjs.map +1 -1
  51. package/dist/{log → logging}/levels.d.ts +0 -0
  52. package/dist/{log → logging}/levels.mjs +1 -1
  53. package/dist/{log → logging}/levels.mjs.map +1 -1
  54. package/dist/{log → logging}/logger.cjs +13 -7
  55. package/dist/logging/logger.cjs.map +6 -0
  56. package/dist/{log → logging}/logger.d.ts +0 -0
  57. package/dist/{log → logging}/logger.mjs +11 -5
  58. package/dist/logging/logger.mjs.map +6 -0
  59. package/dist/{log → logging}/options.cjs +12 -6
  60. package/dist/logging/options.cjs.map +6 -0
  61. package/dist/{log → logging}/options.d.ts +1 -1
  62. package/dist/{log → logging}/options.mjs +12 -6
  63. package/dist/logging/options.mjs.map +6 -0
  64. package/dist/{log → logging}/report.cjs +10 -9
  65. package/dist/{log → logging}/report.cjs.map +2 -2
  66. package/dist/{log → logging}/report.d.ts +0 -0
  67. package/dist/{log → logging}/report.mjs +7 -6
  68. package/dist/{log → logging}/report.mjs.map +2 -2
  69. package/dist/{log → logging}/spinner.cjs +1 -1
  70. package/dist/{log → logging}/spinner.cjs.map +1 -1
  71. package/dist/{log → logging}/spinner.d.ts +0 -0
  72. package/dist/{log → logging}/spinner.mjs +1 -1
  73. package/dist/{log → logging}/spinner.mjs.map +1 -1
  74. package/dist/{log.cjs → logging.cjs} +12 -12
  75. package/dist/{log.cjs.map → logging.cjs.map} +2 -2
  76. package/dist/{log.d.ts → logging.d.ts} +6 -6
  77. package/dist/{log.mjs → logging.mjs} +9 -9
  78. package/dist/{log.mjs.map → logging.mjs.map} +1 -1
  79. package/dist/paths.cjs +5 -5
  80. package/dist/paths.cjs.map +1 -1
  81. package/dist/paths.mjs +1 -1
  82. package/dist/pipe.cjs +10 -13
  83. package/dist/pipe.cjs.map +1 -1
  84. package/dist/pipe.d.ts +6 -12
  85. package/dist/pipe.mjs +6 -9
  86. package/dist/pipe.mjs.map +1 -1
  87. package/dist/plugs/copy.cjs +14 -14
  88. package/dist/plugs/copy.cjs.map +1 -1
  89. package/dist/plugs/copy.d.ts +1 -1
  90. package/dist/plugs/copy.mjs +3 -3
  91. package/dist/plugs/copy.mjs.map +1 -1
  92. package/dist/plugs/debug.cjs +7 -7
  93. package/dist/plugs/debug.cjs.map +1 -1
  94. package/dist/plugs/debug.d.ts +1 -1
  95. package/dist/plugs/debug.mjs +1 -1
  96. package/dist/plugs/edit.cjs +21 -0
  97. package/dist/plugs/edit.cjs.map +6 -0
  98. package/dist/plugs/edit.d.ts +7 -0
  99. package/dist/plugs/edit.mjs +29 -0
  100. package/dist/plugs/edit.mjs.map +6 -0
  101. package/dist/plugs/esbuild/fix-extensions.cjs +4 -4
  102. package/dist/plugs/esbuild/fix-extensions.cjs.map +1 -1
  103. package/dist/plugs/esbuild/fix-extensions.mjs +1 -1
  104. package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
  105. package/dist/plugs/esbuild.cjs +19 -14
  106. package/dist/plugs/esbuild.cjs.map +1 -1
  107. package/dist/plugs/esbuild.d.ts +1 -1
  108. package/dist/plugs/esbuild.mjs +8 -3
  109. package/dist/plugs/esbuild.mjs.map +1 -1
  110. package/dist/plugs/exec.cjs +2 -82
  111. package/dist/plugs/exec.cjs.map +2 -2
  112. package/dist/plugs/exec.d.ts +6 -32
  113. package/dist/plugs/exec.mjs +2 -68
  114. package/dist/plugs/exec.mjs.map +1 -1
  115. package/dist/plugs/filter.d.ts +1 -1
  116. package/dist/plugs/rmf.cjs +5 -5
  117. package/dist/plugs/rmf.cjs.map +1 -1
  118. package/dist/plugs/rmf.d.ts +1 -1
  119. package/dist/plugs/rmf.mjs +2 -2
  120. package/dist/plugs/rmf.mjs.map +1 -1
  121. package/dist/plugs.cjs +1 -4
  122. package/dist/plugs.cjs.map +1 -1
  123. package/dist/plugs.d.ts +1 -4
  124. package/dist/plugs.mjs +1 -4
  125. package/dist/plugs.mjs.map +1 -1
  126. package/dist/types.d.ts +1 -1
  127. package/dist/utils/caller.cjs +8 -5
  128. package/dist/utils/caller.cjs.map +1 -1
  129. package/dist/utils/caller.mjs +6 -3
  130. package/dist/utils/caller.mjs.map +1 -1
  131. package/dist/utils/exec.cjs +102 -0
  132. package/dist/utils/exec.cjs.map +6 -0
  133. package/dist/utils/exec.d.ts +15 -0
  134. package/dist/utils/exec.mjs +71 -0
  135. package/dist/utils/exec.mjs.map +6 -0
  136. package/dist/utils/walk.cjs +7 -7
  137. package/dist/utils/walk.cjs.map +1 -1
  138. package/dist/utils/walk.mjs +2 -2
  139. package/dist/utils/walk.mjs.map +1 -1
  140. package/dist/{plugs/tsc.cjs → utils.cjs} +9 -7
  141. package/dist/utils.cjs.map +6 -0
  142. package/dist/utils.d.ts +4 -0
  143. package/dist/utils.mjs +6 -0
  144. package/dist/utils.mjs.map +6 -0
  145. package/extra/cli.mjs +26 -5
  146. package/extra/ts-loader.mjs +2 -2
  147. package/package.json +90 -15
  148. package/src/{assert.ts → asserts.ts} +36 -1
  149. package/src/async.ts +3 -1
  150. package/src/files.ts +1 -1
  151. package/src/fork.ts +19 -11
  152. package/src/{utils/asyncfs.ts → fs.ts} +1 -1
  153. package/src/helpers.ts +40 -8
  154. package/src/index.ts +30 -8
  155. package/src/{log → logging}/colors.ts +0 -0
  156. package/src/{log → logging}/emit.ts +0 -1
  157. package/src/{log → logging}/levels.ts +0 -0
  158. package/src/{log → logging}/logger.ts +13 -4
  159. package/src/{log → logging}/options.ts +11 -7
  160. package/src/{log → logging}/report.ts +10 -9
  161. package/src/{log → logging}/spinner.ts +0 -0
  162. package/src/{log.ts → logging.ts} +7 -7
  163. package/src/paths.ts +1 -1
  164. package/src/pipe.ts +13 -20
  165. package/src/plugs/copy.ts +4 -4
  166. package/src/plugs/debug.ts +2 -2
  167. package/src/plugs/edit.ts +34 -0
  168. package/src/plugs/esbuild/fix-extensions.ts +2 -2
  169. package/src/plugs/esbuild.ts +13 -7
  170. package/src/plugs/exec.ts +8 -129
  171. package/src/plugs/filter.ts +1 -1
  172. package/src/plugs/rmf.ts +3 -3
  173. package/src/plugs.ts +1 -13
  174. package/src/types.ts +1 -1
  175. package/src/utils/caller.ts +6 -3
  176. package/src/utils/exec.ts +112 -0
  177. package/src/utils/walk.ts +3 -3
  178. package/src/utils.ts +4 -0
  179. package/types/{webassembly.d.ts → plugjs.d.ts} +7 -1
  180. package/dist/assert.cjs +0 -52
  181. package/dist/assert.cjs.map +0 -6
  182. package/dist/assert.d.ts +0 -4
  183. package/dist/assert.mjs +0 -26
  184. package/dist/assert.mjs.map +0 -6
  185. package/dist/failure.cjs.map +0 -6
  186. package/dist/failure.mjs +0 -33
  187. package/dist/failure.mjs.map +0 -6
  188. package/dist/log/logger.cjs.map +0 -6
  189. package/dist/log/logger.mjs.map +0 -6
  190. package/dist/log/options.cjs.map +0 -6
  191. package/dist/log/options.mjs.map +0 -6
  192. package/dist/plugs/coverage/analysis.cjs +0 -234
  193. package/dist/plugs/coverage/analysis.cjs.map +0 -6
  194. package/dist/plugs/coverage/analysis.d.ts +0 -104
  195. package/dist/plugs/coverage/analysis.mjs +0 -207
  196. package/dist/plugs/coverage/analysis.mjs.map +0 -6
  197. package/dist/plugs/coverage/report.cjs +0 -218
  198. package/dist/plugs/coverage/report.cjs.map +0 -6
  199. package/dist/plugs/coverage/report.d.ts +0 -53
  200. package/dist/plugs/coverage/report.mjs +0 -203
  201. package/dist/plugs/coverage/report.mjs.map +0 -6
  202. package/dist/plugs/coverage.cjs +0 -137
  203. package/dist/plugs/coverage.cjs.map +0 -6
  204. package/dist/plugs/coverage.d.ts +0 -49
  205. package/dist/plugs/coverage.mjs +0 -120
  206. package/dist/plugs/coverage.mjs.map +0 -6
  207. package/dist/plugs/eslint/runner.cjs +0 -91
  208. package/dist/plugs/eslint/runner.cjs.map +0 -6
  209. package/dist/plugs/eslint/runner.d.ts +0 -8
  210. package/dist/plugs/eslint/runner.mjs +0 -68
  211. package/dist/plugs/eslint/runner.mjs.map +0 -6
  212. package/dist/plugs/eslint.cjs +0 -22
  213. package/dist/plugs/eslint.cjs.map +0 -6
  214. package/dist/plugs/eslint.d.ts +0 -34
  215. package/dist/plugs/eslint.mjs +0 -5
  216. package/dist/plugs/eslint.mjs.map +0 -6
  217. package/dist/plugs/mocha/reporter.cjs +0 -159
  218. package/dist/plugs/mocha/reporter.cjs.map +0 -6
  219. package/dist/plugs/mocha/reporter.d.ts +0 -6
  220. package/dist/plugs/mocha/reporter.mjs +0 -127
  221. package/dist/plugs/mocha/reporter.mjs.map +0 -6
  222. package/dist/plugs/mocha/runner.cjs +0 -82
  223. package/dist/plugs/mocha/runner.cjs.map +0 -6
  224. package/dist/plugs/mocha/runner.d.ts +0 -8
  225. package/dist/plugs/mocha/runner.mjs +0 -53
  226. package/dist/plugs/mocha/runner.mjs.map +0 -6
  227. package/dist/plugs/mocha.cjs +0 -22
  228. package/dist/plugs/mocha.cjs.map +0 -6
  229. package/dist/plugs/mocha.d.ts +0 -37
  230. package/dist/plugs/mocha.mjs +0 -5
  231. package/dist/plugs/mocha.mjs.map +0 -6
  232. package/dist/plugs/tsc/compiler.cjs +0 -74
  233. package/dist/plugs/tsc/compiler.cjs.map +0 -6
  234. package/dist/plugs/tsc/compiler.d.ts +0 -24
  235. package/dist/plugs/tsc/compiler.mjs +0 -43
  236. package/dist/plugs/tsc/compiler.mjs.map +0 -6
  237. package/dist/plugs/tsc/options.cjs +0 -82
  238. package/dist/plugs/tsc/options.cjs.map +0 -6
  239. package/dist/plugs/tsc/options.d.ts +0 -8
  240. package/dist/plugs/tsc/options.mjs +0 -51
  241. package/dist/plugs/tsc/options.mjs.map +0 -6
  242. package/dist/plugs/tsc/report.cjs +0 -90
  243. package/dist/plugs/tsc/report.cjs.map +0 -6
  244. package/dist/plugs/tsc/report.d.ts +0 -5
  245. package/dist/plugs/tsc/report.mjs +0 -59
  246. package/dist/plugs/tsc/report.mjs.map +0 -6
  247. package/dist/plugs/tsc/runner.cjs +0 -124
  248. package/dist/plugs/tsc/runner.cjs.map +0 -6
  249. package/dist/plugs/tsc/runner.d.ts +0 -8
  250. package/dist/plugs/tsc/runner.mjs +0 -95
  251. package/dist/plugs/tsc/runner.mjs.map +0 -6
  252. package/dist/plugs/tsc.cjs.map +0 -6
  253. package/dist/plugs/tsc.d.ts +0 -48
  254. package/dist/plugs/tsc.mjs +0 -5
  255. package/dist/plugs/tsc.mjs.map +0 -6
  256. package/src/failure.ts +0 -43
  257. package/src/plugs/coverage/analysis.ts +0 -400
  258. package/src/plugs/coverage/report.ts +0 -345
  259. package/src/plugs/coverage.ts +0 -213
  260. package/src/plugs/eslint/runner.ts +0 -100
  261. package/src/plugs/eslint.ts +0 -42
  262. package/src/plugs/mocha/reporter.ts +0 -178
  263. package/src/plugs/mocha/runner.ts +0 -66
  264. package/src/plugs/mocha.ts +0 -43
  265. package/src/plugs/tsc/compiler.ts +0 -68
  266. package/src/plugs/tsc/options.ts +0 -100
  267. package/src/plugs/tsc/report.ts +0 -77
  268. package/src/plugs/tsc/runner.ts +0 -133
  269. package/src/plugs/tsc.ts +0 -58
  270. package/types/globals.d.ts +0 -15
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/exec.ts"],
4
- "mappings": "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",
5
- "names": ["path", "reaadline"]
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,kBAAwB;AACxB,qBAA6B;AAC7B,kBAA0B;AAAA,IA4E1B,qBAAQ,QAAQ,MAAM,KAA4B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,eAAe,MAA8B;AAC3C,UAAM,EAAE,QAAQ,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AACjD,UAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AACzD,UAAM,EAAE,gBAAgB,SAAS,QAAQ,IAAI,KAAK;AAElD,QAAI,CAAE,QAAQ;AAAK,cAAQ,MAAM,MAAM;AAGvC,UAAM,SAAS,CAAE,GAAI,gBAAgB,QAAQ,MAAM,cAAc,CAAI;AAGrE,QAAI,QAAQ;AAAO,aAAO,QAAQ,CAAC,GAAG,GAAG,MAAM,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC;AAGvE,cAAM,uBAAU,KAAK,MAAM,CAAE,GAAG,KAAK,OAAO,GAAG,MAAO,GAAG,SAAS,OAAO;AAGzE,WAAO;AAAA,EACT;AACF,CAAC;",
5
+ "names": []
6
6
  }
@@ -1,23 +1,19 @@
1
+ import type { ExecChildOptions } from '../utils/exec';
1
2
  /** Options for executing scripts */
2
- export interface ExecOptions {
3
- /** Extra environment variables, or overrides for existing ones */
4
- env?: Record<string, any>;
5
- /** Whether to run in the context of a _shell_ or not */
6
- shell?: string | boolean;
3
+ export interface ExecOptions extends ExecChildOptions {
7
4
  /**
8
5
  * The current working directory of the process to execute.
9
6
  *
10
- * Defaults to the current {@link Files.directory | Files' directory} when
11
- * used as a {@link Plug} or `process.cwd()` when used from {@link exec}.
7
+ * Defaults to the current {@link Files.directory | Files' directory}.
12
8
  */
13
9
  cwd?: string;
14
10
  /**
15
- * When used as a {@link Plug}, the {@link Files} will be appended to the
16
- * current arguments as _relative_ files (default) or _absolute_ (if false).
11
+ * Whether the {@link Files} will be appended to the current arguments as
12
+ * _relative_ files (default or `true`) or _absolute_ (if `false`).
17
13
  */
18
14
  relativePaths?: boolean;
19
15
  }
20
- declare module '../pipe' {
16
+ declare module '../index' {
21
17
  interface Pipe {
22
18
  /**
23
19
  * Execute a shell command, adding to its _arguments_ the list of files
@@ -66,25 +62,3 @@ declare module '../pipe' {
66
62
  exec(cmd: string, ...extra: [...args: string[], options: ExecOptions]): Pipe;
67
63
  }
68
64
  }
69
- /**
70
- * Execute a command and await for its result from within a task.
71
- *
72
- * For example:
73
- *
74
- * ```
75
- * import { exec } from '@plugjs/plugjs'
76
- *
77
- * export default build({
78
- * async runme() {
79
- * await exec('ls', '-la', '/')
80
- * // or similarly letting the shell interpret the command
81
- * await exec('ls -la /', { shell: true })
82
- * },
83
- * })
84
- * ```
85
- *
86
- * @param cmd The command to execute
87
- * @param args Any additional argument for the command to execute
88
- * @param options Extra {@link ExecOptions | options} for process execution
89
- */
90
- export declare function exec(cmd: string, ...args: [...args: string[]] | [...args: string[], options: ExecOptions]): Promise<void>;
@@ -1,13 +1,7 @@
1
1
  // plugs/exec.ts
2
- import { spawn } from "node:child_process";
3
- import path from "node:path";
4
- import reaadline from "node:readline";
5
- import { assert } from "../assert.mjs";
6
- import { requireContext } from "../async.mjs";
7
- import { $p, logOptions } from "../log.mjs";
8
- import { getCurrentWorkingDirectory, resolveDirectory } from "../paths.mjs";
9
2
  import { install } from "../pipe.mjs";
10
3
  import { parseOptions } from "../utils/options.mjs";
4
+ import { execChild } from "../utils/exec.mjs";
11
5
  install("exec", class Exec {
12
6
  _cmd;
13
7
  _args;
@@ -26,68 +20,8 @@ install("exec", class Exec {
26
20
  const params = [...relativePaths ? files : files.absolutePaths()];
27
21
  if (options.shell)
28
22
  params.forEach((s, i, a) => a[i] = JSON.stringify(s));
29
- await spawnChild(this._cmd, [...this._args, ...params], options, context);
23
+ await execChild(this._cmd, [...this._args, ...params], options, context);
30
24
  return files;
31
25
  }
32
26
  });
33
- function exec(cmd, ...args) {
34
- const { params, options } = parseOptions(args);
35
- return spawnChild(cmd, params, options, requireContext());
36
- }
37
- async function spawnChild(cmd, args, options = {}, context) {
38
- const {
39
- env = {},
40
- shell = false,
41
- cwd = void 0,
42
- ...extraOptions
43
- } = options;
44
- const childCwd = cwd ? context.resolve(cwd) : getCurrentWorkingDirectory();
45
- assert(resolveDirectory(childCwd), `Current working directory ${$p(childCwd)} does not exist`);
46
- const childPaths = [];
47
- const baseNodePath = context.resolve("@node_modules", ".bin");
48
- if (resolveDirectory(baseNodePath))
49
- childPaths.push(baseNodePath);
50
- const buildNodePath = context.resolve("./node_modules", ".bin");
51
- if (resolveDirectory(buildNodePath))
52
- childPaths.push(buildNodePath);
53
- const extraPath = env.PATH || process.env.PATH;
54
- if (extraPath)
55
- childPaths.push(extraPath);
56
- const PATH = childPaths.join(path.delimiter);
57
- const __LOG_OPTIONS = JSON.stringify(logOptions.fork(context.taskName));
58
- const childEnv = { ...process.env, ...env, PATH, __LOG_OPTIONS };
59
- const childOptions = {
60
- ...extraOptions,
61
- stdio: ["ignore", "pipe", "pipe"],
62
- cwd: childCwd,
63
- env: childEnv,
64
- shell
65
- };
66
- context.log.info("Executing", [cmd, ...args]);
67
- context.log.info("Execution options", childOptions);
68
- const child = spawn(cmd, args, childOptions);
69
- if (child.stdout) {
70
- const out = reaadline.createInterface(child.stdout);
71
- out.on("line", (line) => line ? context.log.notice(line) : context.log.notice("\xA0"));
72
- }
73
- if (child.stderr) {
74
- const err = reaadline.createInterface(child.stderr);
75
- err.on("line", (line) => line ? context.log.warn(line) : context.log.warn("\xA0"));
76
- }
77
- return new Promise((resolve, reject) => {
78
- child.on("error", (error) => reject(error));
79
- child.on("exit", (code, signal) => {
80
- if (code === 0)
81
- return resolve();
82
- if (signal)
83
- return reject(new Error(`Child process exited with signal ${signal}`));
84
- if (code)
85
- return reject(new Error(`Child process exited with code ${code}`));
86
- reject(new Error("Child process failed for an unknown reason"));
87
- });
88
- });
89
- }
90
- export {
91
- exec
92
- };
93
27
  //# 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": ";AAAA,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AA4E1B,QAAQ,QAAQ,MAAM,KAA4B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,eAAe,MAA8B;AAC3C,UAAM,EAAE,QAAQ,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AACjD,UAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AACzD,UAAM,EAAE,gBAAgB,SAAS,QAAQ,IAAI,KAAK;AAElD,QAAI,CAAE,QAAQ;AAAK,cAAQ,MAAM,MAAM;AAGvC,UAAM,SAAS,CAAE,GAAI,gBAAgB,QAAQ,MAAM,cAAc,CAAI;AAGrE,QAAI,QAAQ;AAAO,aAAO,QAAQ,CAAC,GAAG,GAAG,MAAM,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC;AAGvE,UAAM,UAAU,KAAK,MAAM,CAAE,GAAG,KAAK,OAAO,GAAG,MAAO,GAAG,SAAS,OAAO;AAGzE,WAAO;AAAA,EACT;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -4,7 +4,7 @@ export interface FilterOptions extends MatchOptions {
4
4
  /** The base directory for filtering, and relativising the resulting files. */
5
5
  directory?: string;
6
6
  }
7
- declare module '../pipe' {
7
+ declare module '../index' {
8
8
  interface Pipe {
9
9
  /**
10
10
  * Filter the current {@link Files} using globs.
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  // plugs/rmf.ts
4
- var import_log = require("../log.cjs");
4
+ var import_fs = require("../fs.cjs");
5
+ var import_logging = require("../logging.cjs");
5
6
  var import_pipe = require("../pipe.cjs");
6
- var import_asyncfs = require("../utils/asyncfs.cjs");
7
7
  (0, import_pipe.install)("rmf", class Rmf {
8
8
  _dryRun;
9
9
  constructor(dryRun) {
@@ -12,12 +12,12 @@ var import_asyncfs = require("../utils/asyncfs.cjs");
12
12
  async pipe(files, context) {
13
13
  if (this._dryRun) {
14
14
  for (const file of files.absolutePaths()) {
15
- context.log.notice("Not removing file", (0, import_log.$p)(file), (0, import_log.$gry)("(dry-run)"));
15
+ context.log.notice("Not removing file", (0, import_logging.$p)(file), (0, import_logging.$gry)("(dry-run)"));
16
16
  }
17
17
  } else {
18
18
  for (const file of files.absolutePaths()) {
19
- context.log.notice("Removing file", (0, import_log.$p)(file));
20
- await (0, import_asyncfs.rm)(file);
19
+ context.log.notice("Removing file", (0, import_logging.$p)(file));
20
+ await (0, import_fs.rm)(file);
21
21
  }
22
22
  }
23
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/rmf.ts"],
4
- "mappings": ";;;AAAA,iBAAyB;AACzB,kBAAwB;AACxB,qBAAmB;AAAA,IAiBnB,qBAAQ,OAAO,MAAM,IAA0B;AAAA,EAC5B;AAAA,EAGjB,YAAY,QAAkB;AAC5B,SAAK,UAAU,CAAC,CAAE;AAAA,EACpB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAiC;AACxD,QAAI,KAAK,SAAS;AAChB,iBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,gBAAQ,IAAI,OAAO,yBAAqB,eAAG,IAAI,OAAG,iBAAK,WAAW,CAAC;AAAA,MACrE;AAAA,IACF,OAAO;AACL,iBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,gBAAQ,IAAI,OAAO,qBAAiB,eAAG,IAAI,CAAC;AAC5C,kBAAM,mBAAG,IAAI;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF,CAAC;",
4
+ "mappings": ";;;AAAA,gBAAmB;AACnB,qBAAyB;AACzB,kBAAwB;AAAA,IAiBxB,qBAAQ,OAAO,MAAM,IAA0B;AAAA,EAC5B;AAAA,EAGjB,YAAY,QAAkB;AAC5B,SAAK,UAAU,CAAC,CAAE;AAAA,EACpB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAiC;AACxD,QAAI,KAAK,SAAS;AAChB,iBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,gBAAQ,IAAI,OAAO,yBAAqB,mBAAG,IAAI,OAAG,qBAAK,WAAW,CAAC;AAAA,MACrE;AAAA,IACF,OAAO;AACL,iBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,gBAAQ,IAAI,OAAO,qBAAiB,mBAAG,IAAI,CAAC;AAC5C,kBAAM,cAAG,IAAI;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,4 +1,4 @@
1
- declare module '../pipe' {
1
+ declare module '../index' {
2
2
  interface Pipe {
3
3
  /**
4
4
  * Remove all {@link Files} piped in.
@@ -4,9 +4,9 @@ var __commonJS = (cb, mod) => function __require() {
4
4
  };
5
5
 
6
6
  // plugs/rmf.ts
7
- import { $gry, $p } from "../log.mjs";
7
+ import { rm } from "../fs.mjs";
8
+ import { $gry, $p } from "../logging.mjs";
8
9
  import { install } from "../pipe.mjs";
9
- import { rm } from "../utils/asyncfs.mjs";
10
10
  var require_rmf = __commonJS({
11
11
  "plugs/rmf.ts"() {
12
12
  install("rmf", class Rmf {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/rmf.ts"],
4
- "mappings": ";;;;;;AAAA,SAAS,MAAM,UAAU;AACzB,SAAS,eAAe;AACxB,SAAS,UAAU;AAFnB;AAAA;AAmBA,YAAQ,OAAO,MAAM,IAA0B;AAAA,MAC5B;AAAA,MAGjB,YAAY,QAAkB;AAC5B,aAAK,UAAU,CAAC,CAAE;AAAA,MACpB;AAAA,MAEA,MAAM,KAAK,OAAc,SAAiC;AACxD,YAAI,KAAK,SAAS;AAChB,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,oBAAQ,IAAI,OAAO,qBAAqB,GAAG,IAAI,GAAG,KAAK,WAAW,CAAC;AAAA,UACrE;AAAA,QACF,OAAO;AACL,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,oBAAQ,IAAI,OAAO,iBAAiB,GAAG,IAAI,CAAC;AAC5C,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;",
4
+ "mappings": ";;;;;;AAAA,SAAS,UAAU;AACnB,SAAS,MAAM,UAAU;AACzB,SAAS,eAAe;AAFxB;AAAA;AAmBA,YAAQ,OAAO,MAAM,IAA0B;AAAA,MAC5B;AAAA,MAGjB,YAAY,QAAkB;AAC5B,aAAK,UAAU,CAAC,CAAE;AAAA,MACpB;AAAA,MAEA,MAAM,KAAK,OAAc,SAAiC;AACxD,YAAI,KAAK,SAAS;AAChB,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,oBAAQ,IAAI,OAAO,qBAAqB,GAAG,IAAI,GAAG,KAAK,WAAW,CAAC;AAAA,UACrE;AAAA,QACF,OAAO;AACL,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,oBAAQ,IAAI,OAAO,iBAAiB,GAAG,IAAI,CAAC;AAC5C,kBAAM,GAAG,IAAI;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
package/dist/plugs.cjs CHANGED
@@ -17,12 +17,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
17
17
  // plugs.ts
18
18
  var plugs_exports = {};
19
19
  module.exports = __toCommonJS(plugs_exports);
20
- __reExport(plugs_exports, require("./plugs/eslint.cjs"), module.exports);
21
- __reExport(plugs_exports, require("./plugs/mocha.cjs"), module.exports);
22
- __reExport(plugs_exports, require("./plugs/tsc.cjs"), module.exports);
23
20
  __reExport(plugs_exports, require("./plugs/copy.cjs"), module.exports);
24
- __reExport(plugs_exports, require("./plugs/coverage.cjs"), module.exports);
25
21
  __reExport(plugs_exports, require("./plugs/debug.cjs"), module.exports);
22
+ __reExport(plugs_exports, require("./plugs/edit.cjs"), module.exports);
26
23
  __reExport(plugs_exports, require("./plugs/esbuild.cjs"), module.exports);
27
24
  __reExport(plugs_exports, require("./plugs/exec.cjs"), module.exports);
28
25
  __reExport(plugs_exports, require("./plugs/filter.cjs"), module.exports);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/plugs.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAIA,0BAAc,+BAJd;AAKA,0BAAc,8BALd;AAMA,0BAAc,4BANd;AAYA,0BAAc,6BAZd;AAaA,0BAAc,iCAbd;AAcA,0BAAc,8BAdd;AAeA,0BAAc,gCAfd;AAgBA,0BAAc,6BAhBd;AAiBA,0BAAc,+BAjBd;AAkBA,0BAAc,4BAlBd;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,6BAAd;AACA,0BAAc,8BADd;AAEA,0BAAc,6BAFd;AAGA,0BAAc,gCAHd;AAIA,0BAAc,6BAJd;AAKA,0BAAc,+BALd;AAMA,0BAAc,4BANd;",
5
5
  "names": []
6
6
  }
package/dist/plugs.d.ts CHANGED
@@ -1,9 +1,6 @@
1
- export * from './plugs/eslint';
2
- export * from './plugs/mocha';
3
- export * from './plugs/tsc';
4
1
  export * from './plugs/copy';
5
- export * from './plugs/coverage';
6
2
  export * from './plugs/debug';
3
+ export * from './plugs/edit';
7
4
  export * from './plugs/esbuild';
8
5
  export * from './plugs/exec';
9
6
  export * from './plugs/filter';
package/dist/plugs.mjs CHANGED
@@ -1,10 +1,7 @@
1
1
  // plugs.ts
2
- export * from "./plugs/eslint.mjs";
3
- export * from "./plugs/mocha.mjs";
4
- export * from "./plugs/tsc.mjs";
5
2
  export * from "./plugs/copy.mjs";
6
- export * from "./plugs/coverage.mjs";
7
3
  export * from "./plugs/debug.mjs";
4
+ export * from "./plugs/edit.mjs";
8
5
  export * from "./plugs/esbuild.mjs";
9
6
  export * from "./plugs/exec.mjs";
10
7
  export * from "./plugs/filter.mjs";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/plugs.ts"],
4
- "mappings": ";AAIA,cAAc;AACd,cAAc;AACd,cAAc;AAMd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Files } from './files';
2
2
  import type { AbsolutePath } from './paths';
3
- import type { Pipe } from './pipe';
3
+ import type { Pipe } from './index';
4
4
  /**
5
5
  * A type describing the ultimate result of a {@link Plug}, {@link Pipe} or
6
6
  * {@link Task}, that is either a {@link Files} instance or `undefined`.
@@ -25,14 +25,17 @@ __export(caller_exports, {
25
25
  module.exports = __toCommonJS(caller_exports);
26
26
  var import_node_fs = require("node:fs");
27
27
  var import_node_url = require("node:url");
28
- var import_assert = require("../assert.cjs");
29
- var import_log = require("../log.cjs");
28
+ var import_asserts = require("../asserts.cjs");
29
+ var import_logging = require("../logging.cjs");
30
30
  var import_paths = require("../paths.cjs");
31
31
  function findCaller(of) {
32
32
  const oldPrepareStackTrace = Error.prepareStackTrace;
33
33
  try {
34
34
  Error.prepareStackTrace = (_, stackTraces) => {
35
- const nullableFileOrUrl = stackTraces[0].getFileName();
35
+ const [stackTrace] = stackTraces;
36
+ if (!stackTrace)
37
+ return;
38
+ const nullableFileOrUrl = stackTrace.getFileName();
36
39
  if (!nullableFileOrUrl)
37
40
  return;
38
41
  const file2 = nullableFileOrUrl.startsWith("file:/") ? (0, import_node_url.fileURLToPath)(nullableFileOrUrl) : nullableFileOrUrl;
@@ -42,8 +45,8 @@ function findCaller(of) {
42
45
  const record = {};
43
46
  Error.captureStackTrace(record, of);
44
47
  const file = record.stack;
45
- (0, import_assert.assert)(file, "Unable to determine build file name");
46
- (0, import_assert.assert)((0, import_node_fs.statSync)(file).isFile(), `Build file ${(0, import_log.$p)(file)} not found`);
48
+ (0, import_asserts.assert)(file, "Unable to determine build file name");
49
+ (0, import_asserts.assert)((0, import_node_fs.statSync)(file).isFile(), `Build file ${(0, import_logging.$p)(file)} not found`);
47
50
  return file;
48
51
  } finally {
49
52
  Error.prepareStackTrace = oldPrepareStackTrace;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/caller.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAyB;AACzB,sBAA8B;AAE9B,oBAAuB;AACvB,iBAAmB;AACnB,mBAAmC;AAI5B,SAAS,WAAW,IAA2C;AACpE,QAAM,uBAAuB,MAAM;AAEnC,MAAI;AACF,UAAM,oBAAoB,CAAC,GAAG,gBAA0C;AACtE,YAAM,oBAAoB,YAAY,GAAG,YAAY;AACrD,UAAI,CAAE;AAAmB;AAEzB,YAAMA,QACJ,kBAAkB,WAAW,QAAQ,QACnC,+BAAc,iBAAiB,IAC/B;AAEJ,2CAAmBA,KAAI;AACvB,aAAOA;AAAA,IACT;AAEA,UAAM,SAAmC,CAAC;AAC1C,UAAM,kBAAkB,QAAQ,EAAE;AAClC,UAAM,OAAO,OAAO;AAEpB,8BAAO,MAAM,qCAAqC;AAClD,kCAAO,yBAAS,IAAI,EAAE,OAAO,GAAG,kBAAc,eAAG,IAAI,aAAa;AAClE,WAAO;AAAA,EACT,UAAE;AACA,UAAM,oBAAoB;AAAA,EAC5B;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAyB;AACzB,sBAA8B;AAE9B,qBAAuB;AACvB,qBAAmB;AACnB,mBAAmC;AAI5B,SAAS,WAAW,IAA2C;AACpE,QAAM,uBAAuB,MAAM;AAEnC,MAAI;AACF,UAAM,oBAAoB,CAAC,GAAG,gBAA0C;AACtE,YAAM,CAAE,UAAW,IAAI;AACvB,UAAI,CAAE;AAAY;AAElB,YAAM,oBAAoB,WAAW,YAAY;AACjD,UAAI,CAAE;AAAmB;AAEzB,YAAMA,QACJ,kBAAkB,WAAW,QAAQ,QACnC,+BAAc,iBAAiB,IAC/B;AAEJ,2CAAmBA,KAAI;AACvB,aAAOA;AAAA,IACT;AAEA,UAAM,SAAmC,CAAC;AAC1C,UAAM,kBAAkB,QAAQ,EAAE;AAClC,UAAM,OAAO,OAAO;AAEpB,+BAAO,MAAM,qCAAqC;AAClD,mCAAO,yBAAS,IAAI,EAAE,OAAO,GAAG,kBAAc,mBAAG,IAAI,aAAa;AAClE,WAAO;AAAA,EACT,UAAE;AACA,UAAM,oBAAoB;AAAA,EAC5B;AACF;",
5
5
  "names": ["file"]
6
6
  }
@@ -1,14 +1,17 @@
1
1
  // utils/caller.ts
2
2
  import { statSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
- import { assert } from "../assert.mjs";
5
- import { $p } from "../log.mjs";
4
+ import { assert } from "../asserts.mjs";
5
+ import { $p } from "../logging.mjs";
6
6
  import { assertAbsolutePath } from "../paths.mjs";
7
7
  function findCaller(of) {
8
8
  const oldPrepareStackTrace = Error.prepareStackTrace;
9
9
  try {
10
10
  Error.prepareStackTrace = (_, stackTraces) => {
11
- const nullableFileOrUrl = stackTraces[0].getFileName();
11
+ const [stackTrace] = stackTraces;
12
+ if (!stackTrace)
13
+ return;
14
+ const nullableFileOrUrl = stackTrace.getFileName();
12
15
  if (!nullableFileOrUrl)
13
16
  return;
14
17
  const file2 = nullableFileOrUrl.startsWith("file:/") ? fileURLToPath(nullableFileOrUrl) : nullableFileOrUrl;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/caller.ts"],
4
- "mappings": ";AAAA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAE9B,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,0BAA0B;AAI5B,SAAS,WAAW,IAA2C;AACpE,QAAM,uBAAuB,MAAM;AAEnC,MAAI;AACF,UAAM,oBAAoB,CAAC,GAAG,gBAA0C;AACtE,YAAM,oBAAoB,YAAY,GAAG,YAAY;AACrD,UAAI,CAAE;AAAmB;AAEzB,YAAMA,QACJ,kBAAkB,WAAW,QAAQ,IACnC,cAAc,iBAAiB,IAC/B;AAEJ,yBAAmBA,KAAI;AACvB,aAAOA;AAAA,IACT;AAEA,UAAM,SAAmC,CAAC;AAC1C,UAAM,kBAAkB,QAAQ,EAAE;AAClC,UAAM,OAAO,OAAO;AAEpB,WAAO,MAAM,qCAAqC;AAClD,WAAO,SAAS,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,aAAa;AAClE,WAAO;AAAA,EACT,UAAE;AACA,UAAM,oBAAoB;AAAA,EAC5B;AACF;",
4
+ "mappings": ";AAAA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAE9B,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,0BAA0B;AAI5B,SAAS,WAAW,IAA2C;AACpE,QAAM,uBAAuB,MAAM;AAEnC,MAAI;AACF,UAAM,oBAAoB,CAAC,GAAG,gBAA0C;AACtE,YAAM,CAAE,UAAW,IAAI;AACvB,UAAI,CAAE;AAAY;AAElB,YAAM,oBAAoB,WAAW,YAAY;AACjD,UAAI,CAAE;AAAmB;AAEzB,YAAMA,QACJ,kBAAkB,WAAW,QAAQ,IACnC,cAAc,iBAAiB,IAC/B;AAEJ,yBAAmBA,KAAI;AACvB,aAAOA;AAAA,IACT;AAEA,UAAM,SAAmC,CAAC;AAC1C,UAAM,kBAAkB,QAAQ,EAAE;AAClC,UAAM,OAAO,OAAO;AAEpB,WAAO,MAAM,qCAAqC;AAClD,WAAO,SAAS,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,aAAa;AAClE,WAAO;AAAA,EACT,UAAE;AACA,UAAM,oBAAoB;AAAA,EAC5B;AACF;",
5
5
  "names": ["file"]
6
6
  }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+
26
+ // utils/exec.ts
27
+ var exec_exports = {};
28
+ __export(exec_exports, {
29
+ execChild: () => execChild
30
+ });
31
+ module.exports = __toCommonJS(exec_exports);
32
+ var import_node_path = __toESM(require("node:path"));
33
+ var import_node_readline = __toESM(require("node:readline"));
34
+ var import_node_child_process = require("node:child_process");
35
+ var import_asserts = require("../asserts.cjs");
36
+ var import_logging = require("../logging.cjs");
37
+ var import_paths = require("../paths.cjs");
38
+ async function execChild(cmd, args, options = {}, context) {
39
+ const {
40
+ env = {},
41
+ fork = false,
42
+ shell = false,
43
+ cwd = void 0,
44
+ coverageDir,
45
+ ...extraOptions
46
+ } = options;
47
+ const childCwd = cwd ? context.resolve(cwd) : (0, import_paths.getCurrentWorkingDirectory)();
48
+ (0, import_asserts.assert)((0, import_paths.resolveDirectory)(childCwd), `Current working directory ${(0, import_logging.$p)(childCwd)} does not exist`);
49
+ (0, import_asserts.assert)(!(fork && shell), 'Options "fork" and "shell" can not coexist');
50
+ const childPaths = [];
51
+ const baseNodePath = context.resolve("@node_modules", ".bin");
52
+ if ((0, import_paths.resolveDirectory)(baseNodePath))
53
+ childPaths.push(baseNodePath);
54
+ const buildNodePath = context.resolve("./node_modules", ".bin");
55
+ if ((0, import_paths.resolveDirectory)(buildNodePath))
56
+ childPaths.push(buildNodePath);
57
+ const extraPath = env.PATH || process.env.PATH;
58
+ if (extraPath)
59
+ childPaths.push(extraPath);
60
+ const PATH = childPaths.join(import_node_path.default.delimiter);
61
+ const __LOG_OPTIONS = JSON.stringify(import_logging.logOptions.fork(context.taskName));
62
+ const childEnv = { ...process.env, ...env, PATH, __LOG_OPTIONS };
63
+ if (coverageDir)
64
+ childEnv.NODE_V8_COVERAGE = context.resolve(coverageDir);
65
+ const childOptions = {
66
+ ...extraOptions,
67
+ stdio: ["ignore", "pipe", "pipe"],
68
+ cwd: childCwd,
69
+ env: childEnv,
70
+ shell
71
+ };
72
+ if (fork)
73
+ childOptions.stdio = ["ignore", "pipe", "pipe", "ipc"];
74
+ context.log.info("Executing", [cmd, ...args]);
75
+ context.log.info("Execution options", childOptions);
76
+ const child = fork ? (0, import_node_child_process.fork)(cmd, args, childOptions) : (0, import_node_child_process.spawn)(cmd, args, childOptions);
77
+ if (child.stdout) {
78
+ const out = import_node_readline.default.createInterface(child.stdout);
79
+ out.on("line", (line) => line ? context.log.notice(line) : context.log.notice("\xA0"));
80
+ }
81
+ if (child.stderr) {
82
+ const err = import_node_readline.default.createInterface(child.stderr);
83
+ err.on("line", (line) => line ? context.log.warn(line) : context.log.warn("\xA0"));
84
+ }
85
+ return new Promise((resolve, reject) => {
86
+ child.on("error", (error) => reject(error));
87
+ child.on("exit", (code, signal) => {
88
+ if (code === 0)
89
+ return resolve();
90
+ if (signal)
91
+ return reject(import_asserts.BuildFailure.withMessage(`Child process exited with signal ${signal}`));
92
+ if (code)
93
+ return reject(import_asserts.BuildFailure.withMessage(`Child process exited with code ${code}`));
94
+ reject(import_asserts.BuildFailure.withMessage("Child process failed for an unknown reason"));
95
+ });
96
+ });
97
+ }
98
+ // Annotate the CommonJS export names for ESM import in node:
99
+ 0 && (module.exports = {
100
+ execChild
101
+ });
102
+ //# sourceMappingURL=exec.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/exec.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAiB;AACjB,2BAAsB;AACtB,gCAA2D;AAE3D,qBAAqC;AACrC,qBAA+B;AAC/B,mBAA6D;AAoB7D,eAAsB,UAClB,KACA,MACA,UAA4B,CAAC,GAC7B,SACa;AACf,QAAM;AAAA,IACJ,MAAM,CAAC;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN;AAAA,OACG;AAAA,EACL,IAAI;AAEJ,QAAM,WAAW,MAAM,QAAQ,QAAQ,GAAG,QAAI,yCAA2B;AACzE,iCAAO,+BAAiB,QAAQ,GAAG,iCAA6B,mBAAG,QAAQ,kBAAkB;AAG7F,6BAAO,EAAE,QAAQ,QAAQ,4CAA4C;AAGrE,QAAM,aAA6B,CAAC;AAGpC,QAAM,eAAe,QAAQ,QAAQ,iBAAiB,MAAM;AAC5D,UAAI,+BAAiB,YAAY;AAAG,eAAW,KAAK,YAAY;AAGhE,QAAM,gBAAgB,QAAQ,QAAQ,kBAAkB,MAAM;AAC9D,UAAI,+BAAiB,aAAa;AAAG,eAAW,KAAK,aAAa;AAGlE,QAAM,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAC1C,MAAI;AAAW,eAAW,KAAK,SAAS;AAGxC,QAAM,OAAO,WAAW,KAAK,iBAAAA,QAAK,SAAS;AAC3C,QAAM,gBAAgB,KAAK,UAAU,0BAAW,KAAK,QAAQ,QAAQ,CAAC;AACtE,QAAM,WAAmC,EAAE,GAAG,QAAQ,KAAK,GAAG,KAAK,MAAM,cAAc;AAGvF,MAAI;AAAa,aAAS,mBAAmB,QAAQ,QAAQ,WAAW;AAGxE,QAAM,eAA6B;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,CAAE,UAAU,QAAQ,MAAO;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AAAA,EACF;AAGA,MAAI;AAAM,iBAAa,QAAQ,CAAE,UAAU,QAAQ,QAAQ,KAAM;AAGjE,UAAQ,IAAI,KAAK,aAAa,CAAE,KAAK,GAAG,IAAK,CAAC;AAC9C,UAAQ,IAAI,KAAK,qBAAqB,YAAY;AAClD,QAAM,QAAQ,WACZ,0BAAAC,MAAY,KAAK,MAAM,YAAY,QACnC,0BAAAC,OAAa,KAAK,MAAM,YAAY;AAGtC,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,qBAAAC,QAAU,gBAAgB,MAAM,MAAM;AAClD,QAAI,GAAG,QAAQ,CAAC,SAAS,OAAO,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,OAAO,MAAQ,CAAC;AAAA,EACzF;AAGA,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,qBAAAA,QAAU,gBAAgB,MAAM,MAAM;AAClD,QAAI,GAAG,QAAQ,CAAC,SAAS,OAAO,QAAQ,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,MAAQ,CAAC;AAAA,EACrF;AAGA,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,UAAM,GAAG,SAAS,CAAC,UAAU,OAAO,KAAK,CAAC;AAC1C,UAAM,GAAG,QAAQ,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS;AAAG,eAAO,QAAQ;AAC/B,UAAI;AAAQ,eAAO,OAAO,4BAAa,YAAY,oCAAoC,QAAQ,CAAC;AAChG,UAAI;AAAM,eAAO,OAAO,4BAAa,YAAY,kCAAkC,MAAM,CAAC;AAC1F,aAAO,4BAAa,YAAY,4CAA4C,CAAC;AAAA,IAC/E,CAAC;AAAA,EACH,CAAC;AACH;",
5
+ "names": ["path", "forkProcess", "spawnProcess", "reaadline"]
6
+ }
@@ -0,0 +1,15 @@
1
+ import type { Context } from '../pipe';
2
+ /** Options for executing scripts */
3
+ export interface ExecChildOptions {
4
+ /** Specify the directory where coverage data will be saved */
5
+ coverageDir?: string;
6
+ /** Extra environment variables, or overrides for existing ones */
7
+ env?: Record<string, any>;
8
+ /** Whether to _fork_ the process (argument is a javascript file) or not */
9
+ fork?: boolean;
10
+ /** Whether to run the command in a shell (optionally name the shell) */
11
+ shell?: string | boolean;
12
+ /** The current working directory of the process to execute. */
13
+ cwd?: string;
14
+ }
15
+ export declare function execChild(cmd: string, args: readonly string[], options: ExecChildOptions | undefined, context: Context): Promise<void>;
@@ -0,0 +1,71 @@
1
+ // utils/exec.ts
2
+ import path from "node:path";
3
+ import reaadline from "node:readline";
4
+ import { fork as forkProcess, spawn as spawnProcess } from "node:child_process";
5
+ import { assert, BuildFailure } from "../asserts.mjs";
6
+ import { $p, logOptions } from "../logging.mjs";
7
+ import { getCurrentWorkingDirectory, resolveDirectory } from "../paths.mjs";
8
+ async function execChild(cmd, args, options = {}, context) {
9
+ const {
10
+ env = {},
11
+ fork = false,
12
+ shell = false,
13
+ cwd = void 0,
14
+ coverageDir,
15
+ ...extraOptions
16
+ } = options;
17
+ const childCwd = cwd ? context.resolve(cwd) : getCurrentWorkingDirectory();
18
+ assert(resolveDirectory(childCwd), `Current working directory ${$p(childCwd)} does not exist`);
19
+ assert(!(fork && shell), 'Options "fork" and "shell" can not coexist');
20
+ const childPaths = [];
21
+ const baseNodePath = context.resolve("@node_modules", ".bin");
22
+ if (resolveDirectory(baseNodePath))
23
+ childPaths.push(baseNodePath);
24
+ const buildNodePath = context.resolve("./node_modules", ".bin");
25
+ if (resolveDirectory(buildNodePath))
26
+ childPaths.push(buildNodePath);
27
+ const extraPath = env.PATH || process.env.PATH;
28
+ if (extraPath)
29
+ childPaths.push(extraPath);
30
+ const PATH = childPaths.join(path.delimiter);
31
+ const __LOG_OPTIONS = JSON.stringify(logOptions.fork(context.taskName));
32
+ const childEnv = { ...process.env, ...env, PATH, __LOG_OPTIONS };
33
+ if (coverageDir)
34
+ childEnv.NODE_V8_COVERAGE = context.resolve(coverageDir);
35
+ const childOptions = {
36
+ ...extraOptions,
37
+ stdio: ["ignore", "pipe", "pipe"],
38
+ cwd: childCwd,
39
+ env: childEnv,
40
+ shell
41
+ };
42
+ if (fork)
43
+ childOptions.stdio = ["ignore", "pipe", "pipe", "ipc"];
44
+ context.log.info("Executing", [cmd, ...args]);
45
+ context.log.info("Execution options", childOptions);
46
+ const child = fork ? forkProcess(cmd, args, childOptions) : spawnProcess(cmd, args, childOptions);
47
+ if (child.stdout) {
48
+ const out = reaadline.createInterface(child.stdout);
49
+ out.on("line", (line) => line ? context.log.notice(line) : context.log.notice("\xA0"));
50
+ }
51
+ if (child.stderr) {
52
+ const err = reaadline.createInterface(child.stderr);
53
+ err.on("line", (line) => line ? context.log.warn(line) : context.log.warn("\xA0"));
54
+ }
55
+ return new Promise((resolve, reject) => {
56
+ child.on("error", (error) => reject(error));
57
+ child.on("exit", (code, signal) => {
58
+ if (code === 0)
59
+ return resolve();
60
+ if (signal)
61
+ return reject(BuildFailure.withMessage(`Child process exited with signal ${signal}`));
62
+ if (code)
63
+ return reject(BuildFailure.withMessage(`Child process exited with code ${code}`));
64
+ reject(BuildFailure.withMessage("Child process failed for an unknown reason"));
65
+ });
66
+ });
67
+ }
68
+ export {
69
+ execChild
70
+ };
71
+ //# sourceMappingURL=exec.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/exec.ts"],
4
+ "mappings": ";AAAA,OAAO,UAAU;AACjB,OAAO,eAAe;AACtB,SAAS,QAAQ,aAAa,SAAS,oBAAoB;AAE3D,SAAS,QAAQ,oBAAoB;AACrC,SAAS,IAAI,kBAAkB;AAC/B,SAAS,4BAA4B,wBAAwB;AAoB7D,eAAsB,UAClB,KACA,MACA,UAA4B,CAAC,GAC7B,SACa;AACf,QAAM;AAAA,IACJ,MAAM,CAAC;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN;AAAA,OACG;AAAA,EACL,IAAI;AAEJ,QAAM,WAAW,MAAM,QAAQ,QAAQ,GAAG,IAAI,2BAA2B;AACzE,SAAO,iBAAiB,QAAQ,GAAG,6BAA6B,GAAG,QAAQ,kBAAkB;AAG7F,SAAO,EAAE,QAAQ,QAAQ,4CAA4C;AAGrE,QAAM,aAA6B,CAAC;AAGpC,QAAM,eAAe,QAAQ,QAAQ,iBAAiB,MAAM;AAC5D,MAAI,iBAAiB,YAAY;AAAG,eAAW,KAAK,YAAY;AAGhE,QAAM,gBAAgB,QAAQ,QAAQ,kBAAkB,MAAM;AAC9D,MAAI,iBAAiB,aAAa;AAAG,eAAW,KAAK,aAAa;AAGlE,QAAM,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAC1C,MAAI;AAAW,eAAW,KAAK,SAAS;AAGxC,QAAM,OAAO,WAAW,KAAK,KAAK,SAAS;AAC3C,QAAM,gBAAgB,KAAK,UAAU,WAAW,KAAK,QAAQ,QAAQ,CAAC;AACtE,QAAM,WAAmC,EAAE,GAAG,QAAQ,KAAK,GAAG,KAAK,MAAM,cAAc;AAGvF,MAAI;AAAa,aAAS,mBAAmB,QAAQ,QAAQ,WAAW;AAGxE,QAAM,eAA6B;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,CAAE,UAAU,QAAQ,MAAO;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AAAA,EACF;AAGA,MAAI;AAAM,iBAAa,QAAQ,CAAE,UAAU,QAAQ,QAAQ,KAAM;AAGjE,UAAQ,IAAI,KAAK,aAAa,CAAE,KAAK,GAAG,IAAK,CAAC;AAC9C,UAAQ,IAAI,KAAK,qBAAqB,YAAY;AAClD,QAAM,QAAQ,OACZ,YAAY,KAAK,MAAM,YAAY,IACnC,aAAa,KAAK,MAAM,YAAY;AAGtC,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,UAAU,gBAAgB,MAAM,MAAM;AAClD,QAAI,GAAG,QAAQ,CAAC,SAAS,OAAO,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,OAAO,MAAQ,CAAC;AAAA,EACzF;AAGA,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,UAAU,gBAAgB,MAAM,MAAM;AAClD,QAAI,GAAG,QAAQ,CAAC,SAAS,OAAO,QAAQ,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,MAAQ,CAAC;AAAA,EACrF;AAGA,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,UAAM,GAAG,SAAS,CAAC,UAAU,OAAO,KAAK,CAAC;AAC1C,UAAM,GAAG,QAAQ,CAAC,MAAM,WAAW;AACjC,UAAI,SAAS;AAAG,eAAO,QAAQ;AAC/B,UAAI;AAAQ,eAAO,OAAO,aAAa,YAAY,oCAAoC,QAAQ,CAAC;AAChG,UAAI;AAAM,eAAO,OAAO,aAAa,YAAY,kCAAkC,MAAM,CAAC;AAC1F,aAAO,aAAa,YAAY,4CAA4C,CAAC;AAAA,IAC/E,CAAC;AAAA,EACH,CAAC;AACH;",
5
+ "names": []
6
+ }