@plugjs/plug 0.0.15 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/assert.cjs +18 -38
  2. package/dist/assert.cjs.map +1 -1
  3. package/dist/assert.d.ts +2 -16
  4. package/dist/assert.mjs +17 -32
  5. package/dist/assert.mjs.map +1 -1
  6. package/dist/async.cjs +2 -2
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/async.d.ts +1 -1
  9. package/dist/async.mjs +2 -2
  10. package/dist/async.mjs.map +1 -1
  11. package/dist/build.cjs +20 -72
  12. package/dist/build.cjs.map +2 -2
  13. package/dist/build.d.ts +5 -3
  14. package/dist/build.mjs +22 -74
  15. package/dist/build.mjs.map +2 -2
  16. package/dist/failure.cjs +48 -0
  17. package/dist/failure.cjs.map +6 -0
  18. package/dist/failure.d.ts +13 -0
  19. package/dist/failure.mjs +22 -0
  20. package/dist/failure.mjs.map +6 -0
  21. package/dist/fork.cjs +21 -10
  22. package/dist/fork.cjs.map +1 -1
  23. package/dist/fork.d.ts +19 -1
  24. package/dist/fork.mjs +21 -11
  25. package/dist/fork.mjs.map +1 -1
  26. package/dist/helpers.cjs +8 -40
  27. package/dist/helpers.cjs.map +1 -1
  28. package/dist/helpers.d.ts +23 -3
  29. package/dist/helpers.mjs +8 -40
  30. package/dist/helpers.mjs.map +1 -1
  31. package/dist/index.cjs +16 -0
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.mjs +7 -0
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/log/logger.cjs +15 -12
  37. package/dist/log/logger.cjs.map +1 -1
  38. package/dist/log/logger.d.ts +2 -0
  39. package/dist/log/logger.mjs +15 -12
  40. package/dist/log/logger.mjs.map +1 -1
  41. package/dist/log/report.cjs +7 -4
  42. package/dist/log/report.cjs.map +1 -1
  43. package/dist/log/report.mjs +7 -4
  44. package/dist/log/report.mjs.map +1 -1
  45. package/dist/log.cjs +3 -0
  46. package/dist/log.cjs.map +1 -1
  47. package/dist/log.mjs +3 -0
  48. package/dist/log.mjs.map +1 -1
  49. package/dist/pipe.cjs +56 -14
  50. package/dist/pipe.cjs.map +1 -1
  51. package/dist/pipe.d.ts +42 -28
  52. package/dist/pipe.mjs +60 -13
  53. package/dist/pipe.mjs.map +1 -1
  54. package/dist/plugs/copy.cjs +1 -1
  55. package/dist/plugs/copy.cjs.map +1 -1
  56. package/dist/plugs/copy.mjs +1 -1
  57. package/dist/plugs/copy.mjs.map +1 -1
  58. package/dist/plugs/coverage.cjs +1 -2
  59. package/dist/plugs/coverage.cjs.map +1 -1
  60. package/dist/plugs/coverage.mjs +1 -2
  61. package/dist/plugs/coverage.mjs.map +1 -1
  62. package/dist/plugs/debug.cjs +6 -1
  63. package/dist/plugs/debug.cjs.map +1 -1
  64. package/dist/plugs/debug.d.ts +1 -1
  65. package/dist/plugs/debug.mjs +7 -2
  66. package/dist/plugs/debug.mjs.map +1 -1
  67. package/dist/plugs/esbuild.mjs.map +1 -1
  68. package/dist/plugs/eslint/runner.cjs +2 -1
  69. package/dist/plugs/eslint/runner.cjs.map +1 -1
  70. package/dist/plugs/eslint/runner.d.ts +1 -1
  71. package/dist/plugs/eslint/runner.mjs +3 -2
  72. package/dist/plugs/eslint/runner.mjs.map +1 -1
  73. package/dist/plugs/eslint.cjs +2 -2
  74. package/dist/plugs/eslint.cjs.map +1 -1
  75. package/dist/plugs/eslint.mjs +1 -1
  76. package/dist/plugs/exec.cjs +1 -1
  77. package/dist/plugs/exec.cjs.map +1 -1
  78. package/dist/plugs/exec.mjs +1 -1
  79. package/dist/plugs/exec.mjs.map +1 -1
  80. package/dist/plugs/mocha/runner.cjs +2 -2
  81. package/dist/plugs/mocha/runner.cjs.map +1 -1
  82. package/dist/plugs/mocha/runner.d.ts +1 -1
  83. package/dist/plugs/mocha/runner.mjs +2 -2
  84. package/dist/plugs/mocha/runner.mjs.map +1 -1
  85. package/dist/plugs/mocha.cjs +2 -2
  86. package/dist/plugs/mocha.cjs.map +1 -1
  87. package/dist/plugs/mocha.mjs +1 -1
  88. package/dist/plugs/rmf.mjs.map +1 -1
  89. package/dist/plugs/tsc/report.cjs.map +1 -1
  90. package/dist/plugs/tsc/report.mjs.map +1 -1
  91. package/dist/plugs/tsc/runner.cjs +3 -6
  92. package/dist/plugs/tsc/runner.cjs.map +2 -2
  93. package/dist/plugs/tsc/runner.mjs +4 -7
  94. package/dist/plugs/tsc/runner.mjs.map +2 -2
  95. package/dist/plugs/tsc.cjs +2 -2
  96. package/dist/plugs/tsc.cjs.map +1 -1
  97. package/dist/plugs/tsc.mjs +1 -1
  98. package/dist/types.d.ts +7 -8
  99. package/dist/utils/asyncfs.cjs.map +1 -1
  100. package/dist/utils/asyncfs.mjs.map +1 -1
  101. package/extra/cli.mjs +1 -1
  102. package/package.json +14 -13
  103. package/src/assert.ts +20 -34
  104. package/src/async.ts +3 -3
  105. package/src/failure.ts +31 -0
  106. package/src/fork.ts +43 -10
  107. package/src/helpers.ts +35 -56
  108. package/src/index.ts +4 -3
  109. package/src/log/logger.ts +22 -16
  110. package/src/log/report.ts +7 -3
  111. package/src/log.ts +4 -0
  112. package/src/pipe.ts +147 -44
  113. package/src/plugs/copy.ts +2 -2
  114. package/src/plugs/coverage/report.ts +1 -1
  115. package/src/plugs/coverage.ts +2 -3
  116. package/src/plugs/debug.ts +11 -4
  117. package/src/plugs/esbuild.ts +1 -1
  118. package/src/plugs/eslint/runner.ts +4 -3
  119. package/src/plugs/eslint.ts +1 -1
  120. package/src/plugs/exec.ts +1 -1
  121. package/src/plugs/mocha/runner.ts +3 -3
  122. package/src/plugs/mocha.ts +1 -1
  123. package/src/plugs/rmf.ts +1 -1
  124. package/src/plugs/tsc/runner.ts +5 -8
  125. package/src/plugs/tsc.ts +1 -1
  126. package/src/types.ts +8 -15
  127. package/src/utils/asyncfs.ts +1 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // failure.ts
21
+ var failure_exports = {};
22
+ __export(failure_exports, {
23
+ BuildFailure: () => BuildFailure,
24
+ isBuildFailure: () => isBuildFailure
25
+ });
26
+ module.exports = __toCommonJS(failure_exports);
27
+ var buildFailure = Symbol.for("plugjs:buildFailure");
28
+ function isBuildFailure(arg) {
29
+ return arg && arg[buildFailure] === buildFailure;
30
+ }
31
+ var BuildFailure = class extends Error {
32
+ errors;
33
+ logged;
34
+ constructor(options = "Build Failure", errors = []) {
35
+ const { logged, message } = typeof options === "string" ? { message: options, logged: false } : { message: "Build Failure", ...options };
36
+ super(message);
37
+ Error.captureStackTrace(this, BuildFailure);
38
+ Object.defineProperty(this, "buildFailure", { value: buildFailure });
39
+ this.errors = errors.filter((e) => !(isBuildFailure(e) && e.logged));
40
+ this.logged = logged;
41
+ }
42
+ };
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ BuildFailure,
46
+ isBuildFailure
47
+ });
48
+ //# sourceMappingURL=failure.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/failure.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EACT;AAAA,EAOA,YAAY,UAAwC,iBAAiB,SAAgB,CAAC,GAAG;AACvF,UAAM,EAAE,QAAQ,QAAQ,IACtB,OAAO,YAAY,WACjB,EAAE,SAAS,SAAS,QAAQ,MAAM,IAClC,EAAE,SAAS,iBAAiB,GAAG,QAAQ;AAE3C,UAAM,OAAO;AACb,UAAM,kBAAkB,MAAM,YAAY;AAC1C,WAAO,eAAe,MAAM,gBAAgB,EAAE,OAAO,aAAa,CAAC;AACnE,SAAK,SAAS,OAAO,OAAO,CAAC,MAAM,EAAG,eAAe,CAAC,KAAK,EAAE,OAAO;AACpE,SAAK,SAAS;AAAA,EAChB;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,13 @@
1
+ /** Check if the specified argument is a {@link BuildFailure} */
2
+ export declare function isBuildFailure(arg: any): arg is BuildFailure;
3
+ /** A {@link BuildFailure} represents an error _already logged_ in our build. */
4
+ export declare class BuildFailure extends Error {
5
+ readonly errors: readonly any[];
6
+ logged: boolean;
7
+ /** Construct a {@link BuildFailure} that was already _logged_ (internal) */
8
+ constructor(options: {
9
+ logged: true;
10
+ });
11
+ /** Construct a {@link BuildFailure} with a detail message */
12
+ constructor(message: string, errors?: any[]);
13
+ }
@@ -0,0 +1,22 @@
1
+ // failure.ts
2
+ var buildFailure = Symbol.for("plugjs:buildFailure");
3
+ function isBuildFailure(arg) {
4
+ return arg && arg[buildFailure] === buildFailure;
5
+ }
6
+ var BuildFailure = class extends Error {
7
+ errors;
8
+ logged;
9
+ constructor(options = "Build Failure", errors = []) {
10
+ const { logged, message } = typeof options === "string" ? { message: options, logged: false } : { message: "Build Failure", ...options };
11
+ super(message);
12
+ Error.captureStackTrace(this, BuildFailure);
13
+ Object.defineProperty(this, "buildFailure", { value: buildFailure });
14
+ this.errors = errors.filter((e) => !(isBuildFailure(e) && e.logged));
15
+ this.logged = logged;
16
+ }
17
+ };
18
+ export {
19
+ BuildFailure,
20
+ isBuildFailure
21
+ };
22
+ //# sourceMappingURL=failure.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/failure.ts"],
4
+ "mappings": ";AACA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EACT;AAAA,EAOA,YAAY,UAAwC,iBAAiB,SAAgB,CAAC,GAAG;AACvF,UAAM,EAAE,QAAQ,QAAQ,IACtB,OAAO,YAAY,WACjB,EAAE,SAAS,SAAS,QAAQ,MAAM,IAClC,EAAE,SAAS,iBAAiB,GAAG,QAAQ;AAE3C,UAAM,OAAO;AACb,UAAM,kBAAkB,MAAM,YAAY;AAC1C,WAAO,eAAe,MAAM,gBAAgB,EAAE,OAAO,aAAa,CAAC;AACnE,SAAK,SAAS,OAAO,OAAO,CAAC,MAAM,EAAG,eAAe,CAAC,KAAK,EAAE,OAAO;AACpE,SAAK,SAAS;AAAA,EAChB;AACF;",
5
+ "names": []
6
+ }
package/dist/fork.cjs CHANGED
@@ -20,12 +20,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // fork.ts
21
21
  var fork_exports = {};
22
22
  __export(fork_exports, {
23
- ForkingPlug: () => ForkingPlug
23
+ ForkingPlug: () => ForkingPlug,
24
+ installForking: () => installForking
24
25
  });
25
26
  module.exports = __toCommonJS(fork_exports);
26
27
  var import_node_child_process = require("node:child_process");
27
28
  var import_assert = require("./assert.cjs");
28
29
  var import_async = require("./async.cjs");
30
+ var import_failure = require("./failure.cjs");
29
31
  var import_files = require("./files.cjs");
30
32
  var import_log = require("./log.cjs");
31
33
  var import_paths = require("./paths.cjs");
@@ -68,7 +70,7 @@ var ForkingPlug = class {
68
70
  let result = void 0;
69
71
  child.on("error", (error) => {
70
72
  context.log.error("Child process error", error);
71
- return done || reject((0, import_assert.failure)());
73
+ return done || reject(new import_failure.BuildFailure({ logged: true }));
72
74
  });
73
75
  child.on("message", (message2) => {
74
76
  context.log.debug("Message from child process", message2);
@@ -77,15 +79,15 @@ var ForkingPlug = class {
77
79
  child.on("exit", (code, signal) => {
78
80
  if (signal) {
79
81
  context.log.error(`Child process exited with signal ${signal}`, (0, import_log.$gry)(`(pid=${child.pid})`));
80
- return done || reject((0, import_assert.failure)());
82
+ return done || reject(new import_failure.BuildFailure({ logged: true }));
81
83
  } else if (code !== 0) {
82
84
  context.log.error(`Child process exited with code ${code}`, (0, import_log.$gry)(`(pid=${child.pid})`));
83
- return done || reject((0, import_assert.failure)());
85
+ return done || reject(new import_failure.BuildFailure({ logged: true }));
84
86
  } else if (!result) {
85
87
  context.log.error("Child process exited with no result", (0, import_log.$gry)(`(pid=${child.pid})`));
86
- return done || reject((0, import_assert.failure)());
88
+ return done || reject(new import_failure.BuildFailure({ logged: true }));
87
89
  } else if (result.failed) {
88
- return done || reject((0, import_assert.failure)());
90
+ return done || reject(new import_failure.BuildFailure({ logged: true }));
89
91
  }
90
92
  return done || resolve(message.filesDir && message.filesList ? import_files.Files.builder(message.filesDir).add(...message.filesList).build() : void 0);
91
93
  });
@@ -93,16 +95,16 @@ var ForkingPlug = class {
93
95
  const result2 = child.send(message, (error) => {
94
96
  if (error) {
95
97
  context.log.error("Error sending message to child process (callback failure)", error);
96
- reject((0, import_assert.failure)());
98
+ reject(new import_failure.BuildFailure({ logged: true }));
97
99
  }
98
100
  });
99
101
  if (!result2) {
100
102
  context.log.error("Error sending message to child process (send returned false)");
101
- reject((0, import_assert.failure)());
103
+ reject(new import_failure.BuildFailure({ logged: true }));
102
104
  }
103
105
  } catch (error) {
104
106
  context.log.error("Error sending message to child process (exception caught)", error);
105
- reject((0, import_assert.failure)());
107
+ reject(new import_failure.BuildFailure({ logged: true }));
106
108
  }
107
109
  }).finally(() => done = true);
108
110
  }
@@ -160,8 +162,17 @@ if (process.argv[1] === (0, import_paths.requireFilename)(__filename) && process
160
162
  });
161
163
  });
162
164
  }
165
+ function installForking(plugName, scriptFile) {
166
+ const ctor = class extends ForkingPlug {
167
+ constructor(...args) {
168
+ super(scriptFile, args);
169
+ }
170
+ };
171
+ (0, import_pipe.install)(plugName, ctor);
172
+ }
163
173
  // Annotate the CommonJS export names for ESM import in node:
164
174
  0 && (module.exports = {
165
- ForkingPlug
175
+ ForkingPlug,
176
+ installForking
166
177
  });
167
178
  //# sourceMappingURL=fork.cjs.map
package/dist/fork.cjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/fork.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["message", "result"]
6
6
  }
package/dist/fork.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Files } from './files';
2
2
  import { LogOptions } from './log';
3
3
  import { AbsolutePath } from './paths';
4
- import { Plug, PlugResult, Context } from './pipe';
4
+ import { Context, Plug, PlugName, PlugResult } from './pipe';
5
5
  /** Fork data, from parent to child process */
6
6
  export interface ForkData {
7
7
  /** Script name for the Plug to execute */
@@ -34,3 +34,21 @@ export declare abstract class ForkingPlug implements Plug<PlugResult> {
34
34
  constructor(_scriptFile: AbsolutePath, _arguments: any[]);
35
35
  pipe(files: Files, context: Context): Promise<PlugResult>;
36
36
  }
37
+ /**
38
+ * Install a _forking_ {@link Plug} in the {@link Pipe}, in other words
39
+ * execute the plug in a separate process.
40
+ *
41
+ * As a contract, if the _last non-null_ parameter of the constructor is an
42
+ * object and contains the key `coverageDir`, the process will be forked with
43
+ * the approptiately resolved `NODE_V8_COVERAGE` environment variable.
44
+ *
45
+ * Also, forking plugs require some special attention:
46
+ *
47
+ * * plug functions are not supported, only classes implementing the
48
+ * {@link Plug} interface can be used with this.
49
+ *
50
+ * * the class itself _MUST_ be exported as the _default_ export for the
51
+ * `scriptFile` specified below. This is to simplify interoperability between
52
+ * CommonJS and ESM modules as we use dynamic `import(...)` statements.
53
+ */
54
+ export declare function installForking<Name extends PlugName>(plugName: Name, scriptFile: AbsolutePath): void;
package/dist/fork.mjs CHANGED
@@ -1,11 +1,12 @@
1
1
  // fork.ts
2
2
  import { fork } from "node:child_process";
3
- import { assert, failure } from "./assert.mjs";
3
+ import { assert } from "./assert.mjs";
4
4
  import { runAsync } from "./async.mjs";
5
+ import { BuildFailure } from "./failure.mjs";
5
6
  import { Files } from "./files.mjs";
6
7
  import { $gry, $p, logOptions } from "./log.mjs";
7
8
  import { requireFilename, resolveFile } from "./paths.mjs";
8
- import { Context } from "./pipe.mjs";
9
+ import { Context, install } from "./pipe.mjs";
9
10
  var ForkingPlug = class {
10
11
  constructor(_scriptFile, _arguments) {
11
12
  this._scriptFile = _scriptFile;
@@ -44,7 +45,7 @@ var ForkingPlug = class {
44
45
  let result = void 0;
45
46
  child.on("error", (error) => {
46
47
  context.log.error("Child process error", error);
47
- return done || reject(failure());
48
+ return done || reject(new BuildFailure({ logged: true }));
48
49
  });
49
50
  child.on("message", (message2) => {
50
51
  context.log.debug("Message from child process", message2);
@@ -53,15 +54,15 @@ var ForkingPlug = class {
53
54
  child.on("exit", (code, signal) => {
54
55
  if (signal) {
55
56
  context.log.error(`Child process exited with signal ${signal}`, $gry(`(pid=${child.pid})`));
56
- return done || reject(failure());
57
+ return done || reject(new BuildFailure({ logged: true }));
57
58
  } else if (code !== 0) {
58
59
  context.log.error(`Child process exited with code ${code}`, $gry(`(pid=${child.pid})`));
59
- return done || reject(failure());
60
+ return done || reject(new BuildFailure({ logged: true }));
60
61
  } else if (!result) {
61
62
  context.log.error("Child process exited with no result", $gry(`(pid=${child.pid})`));
62
- return done || reject(failure());
63
+ return done || reject(new BuildFailure({ logged: true }));
63
64
  } else if (result.failed) {
64
- return done || reject(failure());
65
+ return done || reject(new BuildFailure({ logged: true }));
65
66
  }
66
67
  return done || resolve(message.filesDir && message.filesList ? Files.builder(message.filesDir).add(...message.filesList).build() : void 0);
67
68
  });
@@ -69,16 +70,16 @@ var ForkingPlug = class {
69
70
  const result2 = child.send(message, (error) => {
70
71
  if (error) {
71
72
  context.log.error("Error sending message to child process (callback failure)", error);
72
- reject(failure());
73
+ reject(new BuildFailure({ logged: true }));
73
74
  }
74
75
  });
75
76
  if (!result2) {
76
77
  context.log.error("Error sending message to child process (send returned false)");
77
- reject(failure());
78
+ reject(new BuildFailure({ logged: true }));
78
79
  }
79
80
  } catch (error) {
80
81
  context.log.error("Error sending message to child process (exception caught)", error);
81
- reject(failure());
82
+ reject(new BuildFailure({ logged: true }));
82
83
  }
83
84
  }).finally(() => done = true);
84
85
  }
@@ -136,7 +137,16 @@ if (process.argv[1] === requireFilename(import.meta.url) && process.send) {
136
137
  });
137
138
  });
138
139
  }
140
+ function installForking(plugName, scriptFile) {
141
+ const ctor = class extends ForkingPlug {
142
+ constructor(...args) {
143
+ super(scriptFile, args);
144
+ }
145
+ };
146
+ install(plugName, ctor);
147
+ }
139
148
  export {
140
- ForkingPlug
149
+ ForkingPlug,
150
+ installForking
141
151
  };
142
152
  //# sourceMappingURL=fork.mjs.map
package/dist/fork.mjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/fork.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["message", "result"]
6
6
  }
package/dist/helpers.cjs CHANGED
@@ -23,7 +23,7 @@ __export(helpers_exports, {
23
23
  find: () => find,
24
24
  isDirectory: () => isDirectory,
25
25
  isFile: () => isFile,
26
- merge: () => merge,
26
+ resolve: () => resolve,
27
27
  rmrf: () => rmrf
28
28
  });
29
29
  module.exports = __toCommonJS(helpers_exports);
@@ -36,52 +36,17 @@ var import_pipe = require("./pipe.cjs");
36
36
  var import_asyncfs = require("./utils/asyncfs.cjs");
37
37
  var import_options = require("./utils/options.cjs");
38
38
  var import_walk = require("./utils/walk.cjs");
39
- var PipeImpl = class extends import_pipe.Pipe {
40
- constructor(_start) {
41
- super();
42
- this._start = _start;
43
- }
44
- plug(arg) {
45
- const plug = typeof arg === "function" ? { pipe: arg } : arg;
46
- const parent = this;
47
- return new PipeImpl(async (context) => {
48
- const files = await parent._start(context);
49
- const files2 = await plug.pipe(files, context);
50
- (0, import_assert.assert)(files2, "Unable to extend pipe (part tres)");
51
- return files2;
52
- });
53
- }
54
- async run() {
55
- return this._start((0, import_async.requireContext)());
56
- }
57
- };
58
39
  function find(...args) {
59
40
  const { params: globs, options } = (0, import_options.parseOptions)(args, {});
60
- return new PipeImpl(async (context) => {
41
+ const context = (0, import_async.requireContext)();
42
+ return new import_pipe.Pipe(context, Promise.resolve().then(async () => {
61
43
  const directory = options.directory ? context.resolve(options.directory) : (0, import_paths.getCurrentWorkingDirectory)();
62
44
  const builder = import_files.Files.builder(directory);
63
45
  for await (const file of (0, import_walk.walk)(directory, globs, options)) {
64
46
  builder.add(file);
65
47
  }
66
48
  return builder.build();
67
- });
68
- }
69
- function merge(...pipes) {
70
- return new PipeImpl(async () => {
71
- if (pipes.length === 0)
72
- return import_files.Files.builder((0, import_paths.getCurrentWorkingDirectory)()).build();
73
- const results = [];
74
- for (const pipe of pipes) {
75
- const result = await pipe.run();
76
- (0, import_assert.assert)(result, "Pipe did not return a Files result");
77
- results.push(result);
78
- }
79
- const [first, ...others] = results;
80
- const firstDir = first.directory;
81
- const otherDirs = others.map((f) => f.directory);
82
- const directory = (0, import_paths.commonPath)(firstDir, ...otherDirs);
83
- return import_files.Files.builder(directory).merge(first, ...others).build();
84
- });
49
+ }));
85
50
  }
86
51
  async function rmrf(directory) {
87
52
  const context = (0, import_async.requireContext)();
@@ -101,6 +66,9 @@ async function rmrf(directory) {
101
66
  import_log.log.notice("Removing directory", (0, import_log.$p)(dir), "recursively");
102
67
  await (0, import_asyncfs.rm)(dir, { recursive: true });
103
68
  }
69
+ function resolve(...paths) {
70
+ return (0, import_async.requireContext)().resolve(...paths);
71
+ }
104
72
  function isFile(...paths) {
105
73
  const path = (0, import_async.requireContext)().resolve(...paths);
106
74
  return (0, import_paths.resolveFile)(path);
@@ -114,7 +82,7 @@ function isDirectory(...paths) {
114
82
  find,
115
83
  isDirectory,
116
84
  isFile,
117
- merge,
85
+ resolve,
118
86
  rmrf
119
87
  });
120
88
  //# sourceMappingURL=helpers.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAA+B;AAC/B,mBAAsB;AACtB,iBAAwB;AACxB,mBAAoG;AACpG,kBAA8D;AAC9D,qBAAmB;AACnB,qBAA2C;AAC3C,kBAAkC;AAElC,IAAM,WAAN,cAAuB,iBAAqB;AAAA,EAC1C,YAA6B,QAA8C;AACzE,UAAM;AADqB;AAAA,EAE7B;AAAA,EAMA,KAAK,KAA6E;AAChF,UAAM,OAAO,OAAO,QAAQ,aAAa,EAAE,MAAM,IAAI,IAAI;AAEzD,UAAM,SAAS;AACf,WAAO,IAAI,SAAS,OAAO,YAAqC;AAC9D,YAAM,QAAQ,MAAM,OAAO,OAAO,OAAO;AACzC,YAAM,SAAS,MAAM,KAAK,KAAK,OAAO,OAAO;AAC7C,gCAAO,QAAQ,mCAAmC;AAClD,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAsB;AAC1B,WAAO,KAAK,WAAO,6BAAe,CAAC;AAAA,EACrC;AACF;AAcO,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AAExD,SAAO,IAAI,SAAS,OAAO,YAAqC;AAC9D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,QACjC,yCAA2B;AAE7B,UAAM,UAAU,mBAAM,QAAQ,SAAS;AACvC,qBAAiB,YAAQ,kBAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC;AACH;AAEO,SAAS,SAAS,OAAqB;AAC5C,SAAO,IAAI,SAAS,YAA4B;AAC9C,QAAI,MAAM,WAAW;AAAG,aAAO,mBAAM,YAAQ,yCAA2B,CAAC,EAAE,MAAM;AAEjF,UAAM,UAAmB,CAAC;AAE1B,eAAW,QAAQ,OAAO;AACxB,YAAM,SAAS,MAAM,KAAK,IAAI;AAC9B,gCAAO,QAAQ,oCAAoC;AACnD,cAAQ,KAAK,MAAM;AAAA,IACrB;AAEA,UAAM,CAAE,UAAU,MAAO,IAAI;AAE7B,UAAM,WAAW,MAAM;AACvB,UAAM,YAAY,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS;AAE/C,UAAM,gBAAY,yBAAW,UAAU,GAAG,SAAS;AAEnD,WAAO,mBAAM,QAAQ,SAAS,EAAE,MAAM,OAAO,GAAG,MAAM,EAAE,MAAM;AAAA,EAChE,CAAC;AACH;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,cAAU,6BAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,YAAQ,yCAA2B;AAAA,IACtC,2DAAuD,eAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,sDAAkD,eAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,KAAE,+BAAiB,GAAG,GAAG;AAC3B,mBAAI,KAAK,iBAAa,eAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,iBAAI,OAAO,0BAAsB,eAAG,GAAG,GAAG,aAAa;AACvD,YAAM,mBAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAGO,SAAS,UAAU,OAA0D;AAClF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,0BAAY,IAAI;AACzB;AAGO,SAAS,eAAe,OAA0D;AACvF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,+BAAiB,IAAI;AAC9B;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAA+B;AAC/B,mBAAsB;AACtB,iBAAwB;AACxB,mBAAwF;AACxF,kBAAqB;AACrB,qBAAmB;AACnB,qBAA2C;AAC3C,kBAAkC;AAqB3B,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AAExD,QAAM,cAAU,6BAAe;AAC/B,SAAO,IAAI,iBAAK,SAAS,QAAQ,QAAQ,EAAE,KAAK,YAAY;AAC1D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,QACjC,yCAA2B;AAE7B,UAAM,UAAU,mBAAM,QAAQ,SAAS;AACvC,qBAAiB,YAAQ,kBAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC,CAAC;AACJ;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,cAAU,6BAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,YAAQ,yCAA2B;AAAA,IACtC,2DAAuD,eAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,sDAAkD,eAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,KAAE,+BAAiB,GAAG,GAAG;AAC3B,mBAAI,KAAK,iBAAa,eAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,iBAAI,OAAO,0BAAsB,eAAG,GAAG,GAAG,aAAa;AACvD,YAAM,mBAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAUO,SAAS,WAAW,OAA8C;AACvE,aAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC1C;AAOO,SAAS,UAAU,OAA0D;AAClF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,0BAAY,IAAI;AACzB;AAOO,SAAS,eAAe,OAA0D;AACvF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,+BAAiB,IAAI;AAC9B;",
5
5
  "names": []
6
6
  }
package/dist/helpers.d.ts CHANGED
@@ -6,16 +6,36 @@ export interface FindOptions extends WalkOptions {
6
6
  /** The directory where to start looking for files. */
7
7
  directory?: string;
8
8
  }
9
+ /** Find files in the current directory using the specified _glob_. */
9
10
  export declare function find(glob: string): Pipe;
11
+ /** Find files in the current directory using the specified _globs_. */
10
12
  export declare function find(glob: string, ...globs: string[]): Pipe;
13
+ /** Find files using the specified _glob_ and {@link FindOptions | options}. */
11
14
  export declare function find(glob: string, options: FindOptions): Pipe;
15
+ /** Find files using the specified _globs_ and {@link FindOptions | options}. */
12
16
  export declare function find(glob: string, ...extra: [...globs: string[], options: FindOptions]): Pipe;
13
- export declare function merge(...pipes: Pipe[]): Pipe;
14
17
  /**
15
18
  * Recursively remove the specified directory _**(use with care)**_.
16
19
  */
17
20
  export declare function rmrf(directory: string): Promise<void>;
18
- /** Return an absolute path of the file if it exist on disk */
21
+ /**
22
+ * Resolve a (set of) path(s) into an {@link AbsolutePath}.
23
+ *
24
+ * If the path (or first component thereof) starts with `@...`, then the
25
+ * resolved path will be relative to the directory containing the build file
26
+ * where the current task was defined, otherwise it will be relative to the
27
+ * current working directory.
28
+ */
29
+ export declare function resolve(...paths: [string, ...string[]]): AbsolutePath;
30
+ /**
31
+ * Return an absolute path of the file if it exist on disk.
32
+ *
33
+ * See the comments on {@link resolve} to understand how paths are resolved.
34
+ */
19
35
  export declare function isFile(...paths: [string, ...string[]]): AbsolutePath | undefined;
20
- /** Return an absolute path of the file if it exist on disk */
36
+ /**
37
+ * Return an absolute path of the directory if it exist on disk.
38
+ *
39
+ * See the comments on {@link resolve} to understand how paths are resolved.
40
+ */
21
41
  export declare function isDirectory(...paths: [string, ...string[]]): AbsolutePath | undefined;
package/dist/helpers.mjs CHANGED
@@ -3,57 +3,22 @@ import { assert } from "./assert.mjs";
3
3
  import { requireContext } from "./async.mjs";
4
4
  import { Files } from "./files.mjs";
5
5
  import { $p, log } from "./log.mjs";
6
- import { commonPath, getCurrentWorkingDirectory, resolveDirectory, resolveFile } from "./paths.mjs";
6
+ import { getCurrentWorkingDirectory, resolveDirectory, resolveFile } from "./paths.mjs";
7
7
  import { Pipe } from "./pipe.mjs";
8
8
  import { rm } from "./utils/asyncfs.mjs";
9
9
  import { parseOptions } from "./utils/options.mjs";
10
10
  import { walk } from "./utils/walk.mjs";
11
- var PipeImpl = class extends Pipe {
12
- constructor(_start) {
13
- super();
14
- this._start = _start;
15
- }
16
- plug(arg) {
17
- const plug = typeof arg === "function" ? { pipe: arg } : arg;
18
- const parent = this;
19
- return new PipeImpl(async (context) => {
20
- const files = await parent._start(context);
21
- const files2 = await plug.pipe(files, context);
22
- assert(files2, "Unable to extend pipe (part tres)");
23
- return files2;
24
- });
25
- }
26
- async run() {
27
- return this._start(requireContext());
28
- }
29
- };
30
11
  function find(...args) {
31
12
  const { params: globs, options } = parseOptions(args, {});
32
- return new PipeImpl(async (context) => {
13
+ const context = requireContext();
14
+ return new Pipe(context, Promise.resolve().then(async () => {
33
15
  const directory = options.directory ? context.resolve(options.directory) : getCurrentWorkingDirectory();
34
16
  const builder = Files.builder(directory);
35
17
  for await (const file of walk(directory, globs, options)) {
36
18
  builder.add(file);
37
19
  }
38
20
  return builder.build();
39
- });
40
- }
41
- function merge(...pipes) {
42
- return new PipeImpl(async () => {
43
- if (pipes.length === 0)
44
- return Files.builder(getCurrentWorkingDirectory()).build();
45
- const results = [];
46
- for (const pipe of pipes) {
47
- const result = await pipe.run();
48
- assert(result, "Pipe did not return a Files result");
49
- results.push(result);
50
- }
51
- const [first, ...others] = results;
52
- const firstDir = first.directory;
53
- const otherDirs = others.map((f) => f.directory);
54
- const directory = commonPath(firstDir, ...otherDirs);
55
- return Files.builder(directory).merge(first, ...others).build();
56
- });
21
+ }));
57
22
  }
58
23
  async function rmrf(directory) {
59
24
  const context = requireContext();
@@ -73,6 +38,9 @@ async function rmrf(directory) {
73
38
  log.notice("Removing directory", $p(dir), "recursively");
74
39
  await rm(dir, { recursive: true });
75
40
  }
41
+ function resolve(...paths) {
42
+ return requireContext().resolve(...paths);
43
+ }
76
44
  function isFile(...paths) {
77
45
  const path = requireContext().resolve(...paths);
78
46
  return resolveFile(path);
@@ -85,7 +53,7 @@ export {
85
53
  find,
86
54
  isDirectory,
87
55
  isFile,
88
- merge,
56
+ resolve,
89
57
  rmrf
90
58
  };
91
59
  //# sourceMappingURL=helpers.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers.ts"],
4
- "mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,IAAI,WAAW;AACxB,SAAuB,YAAY,4BAA4B,kBAAkB,mBAAmB;AACpG,SAAkB,YAA4C;AAC9D,SAAS,UAAU;AACnB,SAAuB,oBAAoB;AAC3C,SAAS,YAAyB;AAElC,IAAM,WAAN,cAAuB,KAAqB;AAAA,EAC1C,YAA6B,QAA8C;AACzE,UAAM;AADqB;AAAA,EAE7B;AAAA,EAMA,KAAK,KAA6E;AAChF,UAAM,OAAO,OAAO,QAAQ,aAAa,EAAE,MAAM,IAAI,IAAI;AAEzD,UAAM,SAAS;AACf,WAAO,IAAI,SAAS,OAAO,YAAqC;AAC9D,YAAM,QAAQ,MAAM,OAAO,OAAO,OAAO;AACzC,YAAM,SAAS,MAAM,KAAK,KAAK,OAAO,OAAO;AAC7C,aAAO,QAAQ,mCAAmC;AAClD,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAsB;AAC1B,WAAO,KAAK,OAAO,eAAe,CAAC;AAAA,EACrC;AACF;AAcO,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AAExD,SAAO,IAAI,SAAS,OAAO,YAAqC;AAC9D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,IACjC,2BAA2B;AAE7B,UAAM,UAAU,MAAM,QAAQ,SAAS;AACvC,qBAAiB,QAAQ,KAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC;AACH;AAEO,SAAS,SAAS,OAAqB;AAC5C,SAAO,IAAI,SAAS,YAA4B;AAC9C,QAAI,MAAM,WAAW;AAAG,aAAO,MAAM,QAAQ,2BAA2B,CAAC,EAAE,MAAM;AAEjF,UAAM,UAAmB,CAAC;AAE1B,eAAW,QAAQ,OAAO;AACxB,YAAM,SAAS,MAAM,KAAK,IAAI;AAC9B,aAAO,QAAQ,oCAAoC;AACnD,cAAQ,KAAK,MAAM;AAAA,IACrB;AAEA,UAAM,CAAE,UAAU,MAAO,IAAI;AAE7B,UAAM,WAAW,MAAM;AACvB,UAAM,YAAY,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS;AAE/C,UAAM,YAAY,WAAW,UAAU,GAAG,SAAS;AAEnD,WAAO,MAAM,QAAQ,SAAS,EAAE,MAAM,OAAO,GAAG,MAAM,EAAE,MAAM;AAAA,EAChE,CAAC;AACH;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,UAAU,eAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,QAAQ,2BAA2B;AAAA,IACtC,uDAAuD,GAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,kDAAkD,GAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,CAAE,iBAAiB,GAAG,GAAG;AAC3B,QAAI,KAAK,aAAa,GAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,MAAI,OAAO,sBAAsB,GAAG,GAAG,GAAG,aAAa;AACvD,QAAM,GAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAGO,SAAS,UAAU,OAA0D;AAClF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,YAAY,IAAI;AACzB;AAGO,SAAS,eAAe,OAA0D;AACvF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,iBAAiB,IAAI;AAC9B;",
4
+ "mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,IAAI,WAAW;AACxB,SAAuB,4BAA4B,kBAAkB,mBAAmB;AACxF,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAuB,oBAAoB;AAC3C,SAAS,YAAyB;AAqB3B,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AAExD,QAAM,UAAU,eAAe;AAC/B,SAAO,IAAI,KAAK,SAAS,QAAQ,QAAQ,EAAE,KAAK,YAAY;AAC1D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,IACjC,2BAA2B;AAE7B,UAAM,UAAU,MAAM,QAAQ,SAAS;AACvC,qBAAiB,QAAQ,KAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC,CAAC;AACJ;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,UAAU,eAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,QAAQ,2BAA2B;AAAA,IACtC,uDAAuD,GAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,kDAAkD,GAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,CAAE,iBAAiB,GAAG,GAAG;AAC3B,QAAI,KAAK,aAAa,GAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,MAAI,OAAO,sBAAsB,GAAG,GAAG,GAAG,aAAa;AACvD,QAAM,GAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAUO,SAAS,WAAW,OAA8C;AACvE,SAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC1C;AAOO,SAAS,UAAU,OAA0D;AAClF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,YAAY,IAAI;AACzB;AAOO,SAAS,eAAe,OAA0D;AACvF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,iBAAiB,IAAI;AAC9B;",
5
5
  "names": []
6
6
  }
package/dist/index.cjs CHANGED
@@ -3,6 +3,10 @@ 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
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -16,11 +20,23 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
16
20
 
17
21
  // index.ts
18
22
  var src_exports = {};
23
+ __export(src_exports, {
24
+ BuildFailure: () => import_failure.BuildFailure,
25
+ Pipe: () => import_pipe.Pipe
26
+ });
19
27
  module.exports = __toCommonJS(src_exports);
28
+ var import_failure = require("./failure.cjs");
29
+ var import_pipe = require("./pipe.cjs");
20
30
  __reExport(src_exports, require("./assert.cjs"), module.exports);
21
31
  __reExport(src_exports, require("./build.cjs"), module.exports);
32
+ __reExport(src_exports, require("./fork.cjs"), module.exports);
22
33
  __reExport(src_exports, require("./helpers.cjs"), module.exports);
23
34
  __reExport(src_exports, require("./log.cjs"), module.exports);
24
35
  __reExport(src_exports, require("./plugs.cjs"), module.exports);
25
36
  __reExport(src_exports, require("./types.cjs"), module.exports);
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ BuildFailure,
40
+ Pipe
41
+ });
26
42
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAOA,wBAAc,yBAPd;AAQA,wBAAc,wBARd;AASA,wBAAc,0BATd;AAUA,wBAAc,sBAVd;AAaA,wBAAc,wBAbd;AAcA,wBAAc,wBAdd;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAA6B;AAC7B,kBAAqB;AAGrB,wBAAc,yBATd;AAUA,wBAAc,wBAVd;AAWA,wBAAc,uBAXd;AAYA,wBAAc,0BAZd;AAaA,wBAAc,sBAbd;AAcA,wBAAc,wBAdd;AAeA,wBAAc,wBAfd;",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  /// <reference path="../extra/webassembly.d.ts" />
2
2
  export type { AbsolutePath } from './paths';
3
3
  export type { Files, FilesBuilder } from './files';
4
- export type { Pipe } from './pipe';
4
+ export { BuildFailure } from './failure';
5
+ export { Pipe } from './pipe';
5
6
  export * from './assert';
6
7
  export * from './build';
8
+ export * from './fork';
7
9
  export * from './helpers';
8
10
  export * from './log';
9
11
  export * from './plugs';