@plugjs/plug 0.0.15 → 0.0.16

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.
package/dist/pipe.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { Files } from './files';
2
- import { Logger } from './log';
3
1
  import { AbsolutePath } from './paths';
2
+ import { Files } from './files';
3
+ import { Logger } from './log';
4
4
  /** A convenience type indicating what can be returned by a {@link Plug}. */
5
5
  export declare type PlugResult = Files | undefined | void;
6
6
  /**
@@ -33,6 +33,14 @@ export declare class Context {
33
33
  buildFile: AbsolutePath,
34
34
  /** The _name_ of the task associated with this {@link Context}. */
35
35
  taskName: string);
36
+ /**
37
+ * Resolve a (set of) path(s) in this {@link Context}.
38
+ *
39
+ * If the path (or first component thereof) starts with `@...`, then the
40
+ * resolved path will be relative to the directory containing the build file
41
+ * where the current task was defined, otherwise it will be relative to the
42
+ * current working directory.
43
+ */
36
44
  resolve(path: string, ...paths: string[]): AbsolutePath;
37
45
  }
38
46
  /**
@@ -43,15 +51,36 @@ declare abstract class PipeProto {
43
51
  abstract plug(plug: Plug<PlugResult>): Pipe | Promise<undefined>;
44
52
  }
45
53
  /**
46
- * The {@link Pipe} abstract defines processing pipeline where multiple
54
+ * The {@link Pipe} class defines processing pipeline where multiple
47
55
  * {@link Plug}s can transform lists of {@link Files}.
48
56
  */
49
- export declare abstract class Pipe extends PipeProto {
50
- abstract plug(plug: Plug<Files>): Pipe;
51
- abstract plug(plug: PlugFunction<Files>): Pipe;
52
- abstract plug(plug: Plug<void | undefined>): Promise<undefined>;
53
- abstract plug(plug: PlugFunction<void | undefined>): Promise<undefined>;
54
- abstract run(): Promise<Files>;
57
+ export declare class Pipe extends PipeProto {
58
+ private readonly _context;
59
+ private readonly _run;
60
+ constructor(_context: Context, _run: () => Promise<Files>);
61
+ plug(plug: Plug<Files>): Pipe;
62
+ plug(plug: PlugFunction<Files>): Pipe;
63
+ plug(plug: Plug<void | undefined>): Promise<undefined>;
64
+ plug(plug: PlugFunction<void | undefined>): Promise<undefined>;
65
+ run(): Promise<Files>;
66
+ /**
67
+ * Merge the results of several {@link Pipe}s into a single one.
68
+ *
69
+ * Merging is performed _in parallel_. When serial execution is to be desired,
70
+ * we can merge the awaited _result_ of the {@link Pipe}.
71
+ *
72
+ * For example:
73
+ *
74
+ * ```
75
+ * const pipe: Pipe = merge([
76
+ * // other tasks return `Pipe & Promise<Files>` so we can
77
+ * // direcrly await their result without invoking `run()`
78
+ * await this.anotherTask1(),
79
+ * await this.anotherTask2(),
80
+ * ])
81
+ * ```
82
+ */
83
+ static merge(pipes: (Pipe | Files | Promise<Files>)[]): Pipe;
55
84
  }
56
85
  /** The names which can be installed as direct plugs. */
57
86
  export declare type PlugName = string & Exclude<keyof Pipe, 'plug' | 'run'>;
package/dist/pipe.mjs CHANGED
@@ -1,8 +1,16 @@
1
1
  // pipe.ts
2
- import { getLogger } from "./log.mjs";
3
- import { getAbsoluteParent, getCurrentWorkingDirectory, resolveAbsolutePath } from "./paths.mjs";
4
- import { ForkingPlug } from "./fork.mjs";
2
+ import {
3
+ commonPath,
4
+ getAbsoluteParent,
5
+ getCurrentWorkingDirectory,
6
+ resolveAbsolutePath
7
+ } from "./paths.mjs";
5
8
  import { sep } from "path";
9
+ import { assert } from "./assert.mjs";
10
+ import { requireContext } from "./async.mjs";
11
+ import { Files } from "./files.mjs";
12
+ import { ForkingPlug } from "./fork.mjs";
13
+ import { getLogger } from "./log.mjs";
6
14
  var Context = class {
7
15
  constructor(buildFile, taskName) {
8
16
  this.buildFile = buildFile;
@@ -25,6 +33,39 @@ var Context = class {
25
33
  var PipeProto = class {
26
34
  };
27
35
  var Pipe = class extends PipeProto {
36
+ constructor(_context, _run) {
37
+ super();
38
+ this._context = _context;
39
+ this._run = _run;
40
+ }
41
+ plug(arg) {
42
+ const plug = typeof arg === "function" ? { pipe: arg } : arg;
43
+ const parent = this;
44
+ const context = this._context;
45
+ return new Pipe(context, async () => {
46
+ const previous = await parent.run();
47
+ const current = await plug.pipe(previous, context);
48
+ assert(current, "Unable to extend pipe");
49
+ return current;
50
+ });
51
+ }
52
+ run() {
53
+ return this._run();
54
+ }
55
+ static merge(pipes) {
56
+ const context = requireContext();
57
+ return new Pipe(context, async () => {
58
+ if (pipes.length === 0)
59
+ return Files.builder(getCurrentWorkingDirectory()).build();
60
+ const [first, ...other] = await Promise.all(pipes.map((pipe) => {
61
+ return "run" in pipe ? pipe.run() : pipe;
62
+ }));
63
+ const firstDir = first.directory;
64
+ const otherDirs = other.map((f) => f.directory);
65
+ const directory = commonPath(firstDir, ...otherDirs);
66
+ return Files.builder(directory).merge(first, ...other).build();
67
+ });
68
+ }
28
69
  };
29
70
  function install(name, ctor) {
30
71
  function plug(...args) {
package/dist/pipe.mjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/pipe.ts"],
4
- "mappings": ";AACA,SAAS,iBAAyB;AAClC,SAAuB,mBAAmB,4BAA4B,2BAA2B;AAEjG,SAAS,mBAAmB;AAC5B,SAAS,WAAW;AA+Bb,IAAM,UAAN,MAAc;AAAA,EAMnB,YAEoB,WAEA,UAClB;AAHkB;AAEA;AAElB,SAAK,WAAW,kBAAkB,SAAS;AAC3C,SAAK,MAAM,UAAU,QAAQ;AAAA,EAC/B;AAAA,EAZgB;AAAA,EAEA;AAAA,EAYhB,QAAQ,SAAiB,OAA+B;AAEtD,QAAI,QAAQ,KAAK,WAAW,GAAG,GAAG;AAEhC,YAAM,aAAa,KAAK,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,aAAO,oBAAoB,KAAK,UAAU,GAAG,YAAY,GAAG,KAAK;AAAA,IACnE;AAGA,QAAI,CAAE;AAAM,aAAO,2BAA2B;AAG9C,WAAO,oBAAoB,2BAA2B,GAAG,MAAM,GAAG,KAAK;AAAA,EACzE;AACF;AAUA,IAAe,YAAf,MAAyB;AAEzB;AAMO,IAAe,OAAf,cAA4B,UAAU;AAO7C;AAyGO,SAAS,QAGd,MAAY,MAAkB;AAE9B,WAAS,QAAyB,MAAuD;AAEvF,WAAO,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC;AAAA,EACpC;AAGA,SAAO,eAAe,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAGnD,SAAO,eAAe,UAAU,WAAW,MAAM,EAAE,OAAO,KAAK,CAAC;AAClE;AAmBO,SAAS,eACZ,UACA,YACI;AAEN,QAAM,OAAO,cAAc,YAAY;AAAA,IACrC,eAAe,MAAa;AAC1B,YAAM,YAAY,IAAI;AAAA,IACxB;AAAA,EACF;AAGA,UAAQ,UAAU,IAAI;AACxB;",
4
+ "mappings": ";AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,WAAW;AACpB,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,iBAAyB;AA+B3B,IAAM,UAAN,MAAc;AAAA,EAMnB,YAEoB,WAEA,UAClB;AAHkB;AAEA;AAElB,SAAK,WAAW,kBAAkB,SAAS;AAC3C,SAAK,MAAM,UAAU,QAAQ;AAAA,EAC/B;AAAA,EAZgB;AAAA,EAEA;AAAA,EAoBhB,QAAQ,SAAiB,OAA+B;AAEtD,QAAI,QAAQ,KAAK,WAAW,GAAG,GAAG;AAEhC,YAAM,aAAa,KAAK,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,aAAO,oBAAoB,KAAK,UAAU,GAAG,YAAY,GAAG,KAAK;AAAA,IACnE;AAGA,QAAI,CAAE;AAAM,aAAO,2BAA2B;AAG9C,WAAO,oBAAoB,2BAA2B,GAAG,MAAM,GAAG,KAAK;AAAA,EACzE;AACF;AAUA,IAAe,YAAf,MAAyB;AAEzB;AAMO,IAAM,OAAN,cAAmB,UAAU;AAAA,EAClC,YACqB,UACA,MACnB;AACA,UAAM;AAHa;AACA;AAAA,EAGrB;AAAA,EAMA,KAAK,KAA6E;AAChF,UAAM,OAAO,OAAO,QAAQ,aAAa,EAAE,MAAM,IAAI,IAAI;AAEzD,UAAM,SAAS;AACf,UAAM,UAAU,KAAK;AACrB,WAAO,IAAI,KAAK,SAAS,YAA4B;AACnD,YAAM,WAAW,MAAM,OAAO,IAAI;AAClC,YAAM,UAAU,MAAM,KAAK,KAAK,UAAU,OAAO;AACjD,aAAO,SAAS,uBAAuB;AACvC,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAsB;AACpB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAmBA,OAAO,MAAM,OAAgD;AAC3D,UAAM,UAAU,eAAe;AAC/B,WAAO,IAAI,KAAK,SAAS,YAA4B;AACnD,UAAI,MAAM,WAAW;AAAG,eAAO,MAAM,QAAQ,2BAA2B,CAAC,EAAE,MAAM;AAEjF,YAAM,CAAE,UAAU,KAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS;AAChE,eAAO,SAAS,OAAO,KAAK,IAAI,IAAI;AAAA,MACtC,CAAC,CAAC;AAEF,YAAM,WAAW,MAAM;AACvB,YAAM,YAAY,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS;AAE9C,YAAM,YAAY,WAAW,UAAU,GAAG,SAAS;AAEnD,aAAO,MAAM,QAAQ,SAAS,EAAE,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM;AAAA,IAC/D,CAAC;AAAA,EACH;AACF;AAyGO,SAAS,QAGd,MAAY,MAAkB;AAE9B,WAAS,QAAyB,MAAuD;AAEvF,WAAO,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC;AAAA,EACpC;AAGA,SAAO,eAAe,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAGnD,SAAO,eAAe,UAAU,WAAW,MAAM,EAAE,OAAO,KAAK,CAAC;AAClE;AAmBO,SAAS,eACZ,UACA,YACI;AAEN,QAAM,OAAO,cAAc,YAAY;AAAA,IACrC,eAAe,MAAa;AAC1B,YAAM,YAAY,IAAI;AAAA,IACxB;AAAA,EACF;AAGA,UAAQ,UAAU,IAAI;AACxB;",
5
5
  "names": []
6
6
  }
@@ -57,7 +57,7 @@ var import_asyncfs = require("../utils/asyncfs.cjs");
57
57
  context.log.trace(`Setting mode ${stringifyMode(fmode)} for file`, (0, import_log.$p)(target));
58
58
  await (0, import_asyncfs.chmod)(target, fmode);
59
59
  }
60
- builder.add(relative);
60
+ builder.add(target);
61
61
  }
62
62
  const result = builder.build();
63
63
  context.log.info("Copied", result.length, "files to", (0, import_log.$p)(builder.directory));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/copy.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAAsB;AACtB,iBAAmB;AACnB,mBAA2E;AAC3E,kBAAuD;AACvD,qBAAoD;AAAA,IAqCpD,qBAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,2BAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,mBAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,aAAS,kCAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,2CAAuC,eAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,iBAAY,gCAAkB,MAAM;AAC1C,YAAM,cAAc,UAAM,sBAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,6CAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,UAAM,gCAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,uBAAmB,eAAG,GAAG,CAAC;AAC/E,oBAAM,sBAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,gBAAY,eAAG,QAAQ,cAAU,eAAG,MAAM,IAAI;AAChE,gBAAM,yBAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,kBAAc,eAAG,MAAM,CAAC;AAC7E,kBAAM,sBAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,QAAQ;AAAA,IACtB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,gBAAY,eAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,4BAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAAsB;AACtB,iBAAmB;AACnB,mBAA2E;AAC3E,kBAAuD;AACvD,qBAAoD;AAAA,IAqCpD,qBAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,2BAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,mBAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,aAAS,kCAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,2CAAuC,eAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,iBAAY,gCAAkB,MAAM;AAC1C,YAAM,cAAc,UAAM,sBAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,6CAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,UAAM,gCAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,uBAAmB,eAAG,GAAG,CAAC;AAC/E,oBAAM,sBAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,gBAAY,eAAG,QAAQ,cAAU,eAAG,MAAM,IAAI;AAChE,gBAAM,yBAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,kBAAc,eAAG,MAAM,CAAC;AAC7E,kBAAM,sBAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,MAAM;AAAA,IACpB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,gBAAY,eAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,4BAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
5
5
  "names": ["directory"]
6
6
  }
@@ -40,7 +40,7 @@ install("copy", class Copy {
40
40
  context.log.trace(`Setting mode ${stringifyMode(fmode)} for file`, $p(target));
41
41
  await chmod(target, fmode);
42
42
  }
43
- builder.add(relative);
43
+ builder.add(target);
44
44
  }
45
45
  const result = builder.build();
46
46
  context.log.info("Copied", result.length, "files to", $p(builder.directory));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/copy.ts"],
4
- "mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,UAAU;AACnB,SAAS,oBAAoB,mBAAmB,2BAA2B;AAC3E,SAAS,eAA8C;AACvD,SAAS,OAAO,UAAU,aAAa,aAAa;AAqCpD,QAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,YAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,MAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,SAAS,oBAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,uCAAuC,GAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,aAAY,kBAAkB,MAAM;AAC1C,YAAM,cAAc,MAAM,MAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,2BAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,MAAM,kBAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,mBAAmB,GAAG,GAAG,CAAC;AAC/E,gBAAM,MAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,YAAY,GAAG,QAAQ,UAAU,GAAG,MAAM,IAAI;AAChE,YAAM,SAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,cAAc,GAAG,MAAM,CAAC;AAC7E,cAAM,MAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,QAAQ;AAAA,IACtB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,YAAY,GAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,SAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
4
+ "mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,UAAU;AACnB,SAAS,oBAAoB,mBAAmB,2BAA2B;AAC3E,SAAS,eAA8C;AACvD,SAAS,OAAO,UAAU,aAAa,aAAa;AAqCpD,QAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,YAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,MAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,SAAS,oBAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,uCAAuC,GAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,aAAY,kBAAkB,MAAM;AAC1C,YAAM,cAAc,MAAM,MAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,2BAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,MAAM,kBAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,mBAAmB,GAAG,GAAG,CAAC;AAC/E,gBAAM,MAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,YAAY,GAAG,QAAQ,UAAU,GAAG,MAAM,IAAI;AAChE,YAAM,SAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,cAAc,GAAG,MAAM,CAAC;AAC7E,cAAM,MAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,MAAM;AAAA,IACpB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,YAAY,GAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,SAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
5
5
  "names": ["directory"]
6
6
  }
@@ -76,7 +76,7 @@ var import_report = require("./coverage/report.cjs");
76
76
  const { coverage, totalNodes } = result.nodeCoverage;
77
77
  const file = _file;
78
78
  if (totalNodes === 0) {
79
- _report.annotate(import_log.NOTICE, file, "n/a");
79
+ _report.annotate(import_log.NOTICE, file, (0, import_log.$gry)("n/a"));
80
80
  } else if (coverage < minimumFileCoverage) {
81
81
  _report.annotate(import_log.ERROR, file, `${coverage} %`);
82
82
  fileErrors++;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/coverage.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -59,7 +59,7 @@ install("coverage", class Coverage {
59
59
  const { coverage, totalNodes } = result.nodeCoverage;
60
60
  const file = _file;
61
61
  if (totalNodes === 0) {
62
- _report.annotate(NOTICE, file, "n/a");
62
+ _report.annotate(NOTICE, file, $gry("n/a"));
63
63
  } else if (coverage < minimumFileCoverage) {
64
64
  _report.annotate(ERROR, file, `${coverage} %`);
65
65
  fileErrors++;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/coverage.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,8 +4,13 @@
4
4
  var import_log = require("../log.cjs");
5
5
  var import_pipe = require("../pipe.cjs");
6
6
  (0, import_pipe.install)("debug", class Debug {
7
+ _title;
8
+ constructor(...args) {
9
+ const [title = "Debugging"] = args;
10
+ this._title = title;
11
+ }
7
12
  async pipe(files, context) {
8
- context.log.notice("Debugging", files.length, "files");
13
+ context.log.notice(this._title, `${(0, import_log.$gry)("(")}${(0, import_log.$ylw)(files.length)} ${(0, import_log.$gry)("files)")}`);
9
14
  context.log.notice("- base dir:", (0, import_log.$p)(context.resolve("@")));
10
15
  context.log.notice("- build file dir:", (0, import_log.$p)(context.resolve(".")));
11
16
  context.log.notice("- files dir:", (0, import_log.$p)(files.directory));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/debug.ts"],
4
- "mappings": ";;;AACA,iBAA+B;AAC/B,kBAAuC;AAAA,IAcvC,qBAAQ,SAAS,MAAM,MAA6B;AAAA,EAClD,MAAM,KAAK,OAAc,SAAkC;AACzD,YAAQ,IAAI,OAAO,aAAa,MAAM,QAAQ,OAAO;AACrD,YAAQ,IAAI,OAAO,0BAAsB,eAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,YAAQ,IAAI,OAAO,0BAAsB,eAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,YAAQ,IAAI,OAAO,0BAAsB,eAAG,MAAM,SAAS,CAAC;AAC5D,QAAI,MAAM,QAAQ;AAChB,YAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,cAAQ,IAAI,OAAO,0BAAsB,qBAAK,iBAAK,IAAI,CAAC,CAAC;AACzD,iBAAW,KAAK;AAAO,gBAAQ,IAAI,OAAO,0BAAsB,qBAAK,iBAAK,CAAC,CAAC,CAAC;AAAA,IAC/E;AACA,WAAO;AAAA,EACT;AACF,CAAC;",
4
+ "mappings": ";;;AACA,iBAAqC;AACrC,kBAAuD;AAAA,IAcvD,qBAAQ,SAAS,MAAM,MAA6B;AAAA,EACjC;AAAA,EAEjB,eAAe,MAA+B;AAC5C,UAAM,CAAE,QAAQ,WAAY,IAAI;AAChC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,MAAM,KAAK,OAAc,SAAkC;AACzD,YAAQ,IAAI,OAAO,KAAK,QAAQ,OAAG,iBAAK,GAAG,QAAI,iBAAK,MAAM,MAAM,SAAK,iBAAK,QAAQ,GAAG;AACrF,YAAQ,IAAI,OAAO,0BAAsB,eAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,YAAQ,IAAI,OAAO,0BAAsB,eAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,YAAQ,IAAI,OAAO,0BAAsB,eAAG,MAAM,SAAS,CAAC;AAC5D,QAAI,MAAM,QAAQ;AAChB,YAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,cAAQ,IAAI,OAAO,0BAAsB,qBAAK,iBAAK,IAAI,CAAC,CAAC;AACzD,iBAAW,KAAK;AAAO,gBAAQ,IAAI,OAAO,0BAAsB,qBAAK,iBAAK,CAAC,CAAC,CAAC;AAAA,IAC/E;AACA,WAAO;AAAA,EACT;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
1
  declare module '../pipe' {
2
2
  interface Pipe {
3
3
  /** Log some info about the current {@link Files} being passed around. */
4
- debug(): Pipe;
4
+ debug(title?: string): Pipe;
5
5
  }
6
6
  }
7
7
  export {};
@@ -4,13 +4,18 @@ var __commonJS = (cb, mod) => function __require() {
4
4
  };
5
5
 
6
6
  // plugs/debug.ts
7
- import { $gry, $p, $und } from "../log.mjs";
7
+ import { $gry, $p, $und, $ylw } from "../log.mjs";
8
8
  import { install } from "../pipe.mjs";
9
9
  var require_debug = __commonJS({
10
10
  "plugs/debug.ts"() {
11
11
  install("debug", class Debug {
12
+ _title;
13
+ constructor(...args) {
14
+ const [title = "Debugging"] = args;
15
+ this._title = title;
16
+ }
12
17
  async pipe(files, context) {
13
- context.log.notice("Debugging", files.length, "files");
18
+ context.log.notice(this._title, `${$gry("(")}${$ylw(files.length)} ${$gry("files)")}`);
14
19
  context.log.notice("- base dir:", $p(context.resolve("@")));
15
20
  context.log.notice("- build file dir:", $p(context.resolve(".")));
16
21
  context.log.notice("- files dir:", $p(files.directory));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/debug.ts"],
4
- "mappings": ";;;;;;AACA,SAAS,MAAM,IAAI,YAAY;AAC/B,SAAS,eAA8B;AAFvC;AAAA;AAgBA,YAAQ,SAAS,MAAM,MAA6B;AAAA,MAClD,MAAM,KAAK,OAAc,SAAkC;AACzD,gBAAQ,IAAI,OAAO,aAAa,MAAM,QAAQ,OAAO;AACrD,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,MAAM,SAAS,CAAC;AAC5D,YAAI,MAAM,QAAQ;AAChB,gBAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,kBAAQ,IAAI,OAAO,sBAAsB,KAAK,KAAK,IAAI,CAAC,CAAC;AACzD,qBAAW,KAAK;AAAO,oBAAQ,IAAI,OAAO,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC;AAAA,QAC/E;AACA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA;AAAA;",
4
+ "mappings": ";;;;;;AACA,SAAS,MAAM,IAAI,MAAM,YAAY;AACrC,SAAS,eAA8C;AAFvD;AAAA;AAgBA,YAAQ,SAAS,MAAM,MAA6B;AAAA,MACjC;AAAA,MAEjB,eAAe,MAA+B;AAC5C,cAAM,CAAE,QAAQ,WAAY,IAAI;AAChC,aAAK,SAAS;AAAA,MAChB;AAAA,MAEA,MAAM,KAAK,OAAc,SAAkC;AACzD,gBAAQ,IAAI,OAAO,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,KAAK,MAAM,MAAM,KAAK,KAAK,QAAQ,GAAG;AACrF,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACjE,gBAAQ,IAAI,OAAO,sBAAsB,GAAG,MAAM,SAAS,CAAC;AAC5D,YAAI,MAAM,QAAQ;AAChB,gBAAM,CAAE,SAAS,KAAM,IAAI;AAC3B,kBAAQ,IAAI,OAAO,sBAAsB,KAAK,KAAK,IAAI,CAAC,CAAC;AACzD,qBAAW,KAAK;AAAO,oBAAQ,IAAI,OAAO,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC;AAAA,QAC/E;AACA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
package/dist/types.d.ts CHANGED
@@ -39,7 +39,7 @@ export interface Task<T extends Result = Result> {
39
39
  * The {@link TaskResult} type identifies _what_ can be returned by a
40
40
  * {@link TaskDef | _task definition_}.
41
41
  */
42
- export declare type TaskResult = Pipe | Promise<undefined> | Files | void | undefined;
42
+ export declare type TaskResult = Pipe | Files | void | undefined;
43
43
  /** The {@link TaskDef} type identifies the _definition_ of a task. */
44
44
  export declare type TaskDef<R extends TaskResult = TaskResult> = () => R | Promise<R>;
45
45
  /** A type identifying all _properties_ of a {@link Context}. */
@@ -48,12 +48,11 @@ export declare type Props<D extends BuildDef = BuildDef> = {
48
48
  };
49
49
  /** A type identifying all _tasks_ in a {@link Context} */
50
50
  export declare type Tasks<D extends BuildDef = BuildDef> = {
51
- readonly [k in string & keyof D as D[k] extends TaskDef | Task ? k : never]: D[k] extends TaskDef<infer R> ? R extends void | undefined ? Task<undefined> : R extends Promise<undefined> ? Task<undefined> : R extends Pipe ? Task<Files> : R extends Files ? Task<Files> : never : D[k] extends Task ? D[k] : never;
51
+ readonly [k in string & keyof D as D[k] extends TaskDef | Task ? k : never]: D[k] extends TaskDef<infer R> ? R extends void | undefined ? Task<undefined> : R extends Pipe | Files ? Task<Files> : never : D[k] extends Task ? D[k] : never;
52
52
  };
53
53
  /**
54
- * The {@link BuildDef} interface describes the _definition_ of a
55
- * {@link Context}, that is the object passed to {@link build} to produce
56
- * a {@link Build}.
54
+ * The {@link BuildDef} interface describes the _definition_ of a {@link Build},
55
+ * all its properties and tasks.
57
56
  */
58
57
  export interface BuildDef {
59
58
  [k: string]: string | TaskDef | Task;
@@ -69,4 +68,4 @@ export declare type ThisBuild<D extends BuildDef> = {
69
68
  * The {@link Build} type represents the collection of {@link Task}s
70
69
  * and _properties_ compiled from a {@link BuildDef | build definition}.
71
70
  */
72
- export declare type Build<D extends BuildDef = BuildDef, T extends Tasks<D> = Tasks<D>, P extends Props<D> = Props<D>> = T & P;
71
+ export declare type Build<D extends BuildDef = BuildDef> = Tasks<D> & Props<D>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plugjs/plug",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -28,17 +28,17 @@
28
28
  "author": "",
29
29
  "license": "ISC",
30
30
  "dependencies": {
31
- "@babel/parser": "^7.18.13",
32
- "@babel/types": "^7.18.13",
31
+ "@babel/parser": "^7.19.0",
32
+ "@babel/types": "^7.19.0",
33
33
  "@plugjs/cov8-html": "^0.0.2",
34
34
  "@types/node": "<17",
35
35
  "diff": "^5.1.0",
36
- "esbuild": "^0.15.6",
37
- "eslint": "^8.23.0",
36
+ "esbuild": "^0.15.7",
37
+ "eslint": "^8.23.1",
38
38
  "mocha": "^10.0.0",
39
39
  "picomatch": "^2.3.1",
40
40
  "source-map": "^0.7.4",
41
- "typescript": "^4.8.2",
41
+ "typescript": "^4.8.3",
42
42
  "yargs-parser": "^21.1.1"
43
43
  },
44
44
  "devDependencies": {
@@ -47,11 +47,10 @@
47
47
  "@types/diff": "^5.0.2",
48
48
  "@types/eslint": "^8.4.6",
49
49
  "@types/mocha": "^9.1.1",
50
- "@types/ms": "^0.7.31",
51
50
  "@types/picomatch": "^2.3.0",
52
51
  "@types/yargs-parser": "^21.0.0",
53
- "@typescript-eslint/eslint-plugin": "^5.36.1",
54
- "@typescript-eslint/parser": "^5.36.1",
52
+ "@typescript-eslint/eslint-plugin": "^5.37.0",
53
+ "@typescript-eslint/parser": "^5.37.0",
55
54
  "chai": "^4.3.6",
56
55
  "eslint-config-google": "^0.14.0"
57
56
  }
package/src/helpers.ts CHANGED
@@ -2,37 +2,15 @@ import { assert } from './assert'
2
2
  import { requireContext } from './async'
3
3
  import { Files } from './files'
4
4
  import { $p, log } from './log'
5
- import { AbsolutePath, commonPath, getCurrentWorkingDirectory, resolveDirectory, resolveFile } from './paths'
6
- import { Context, Pipe, Plug, PlugFunction, PlugResult } from './pipe'
5
+ import { AbsolutePath, getCurrentWorkingDirectory, resolveDirectory, resolveFile } from './paths'
6
+ import { Pipe } from './pipe'
7
7
  import { rm } from './utils/asyncfs'
8
8
  import { ParseOptions, parseOptions } from './utils/options'
9
9
  import { walk, WalkOptions } from './utils/walk'
10
10
 
11
- class PipeImpl extends Pipe implements Pipe {
12
- constructor(private readonly _start: (context: Context) => Promise<Files>) {
13
- super()
14
- }
15
-
16
- plug(plug: Plug<Files>): Pipe
17
- plug(plug: PlugFunction<Files>): Pipe
18
- plug(plug: Plug<void | undefined>): Promise<undefined>
19
- plug(plug: PlugFunction<void | undefined>): Promise<undefined>
20
- plug(arg: Plug<PlugResult> | PlugFunction<PlugResult>): Pipe | Promise<undefined> {
21
- const plug = typeof arg === 'function' ? { pipe: arg } : arg
22
-
23
- const parent = this
24
- return new PipeImpl(async (context: Context): Promise<Files> => {
25
- const files = await parent._start(context)
26
- const files2 = await plug.pipe(files, context)
27
- assert(files2, 'Unable to extend pipe (part tres)')
28
- return files2
29
- })
30
- }
31
-
32
- async run(): Promise<Files> {
33
- return this._start(requireContext())
34
- }
35
- }
11
+ /* ========================================================================== *
12
+ * EXTERNAL HELPERS *
13
+ * ========================================================================== */
36
14
 
37
15
  /** The {@link FindOptions} interface defines the options for finding files. */
38
16
  export interface FindOptions extends WalkOptions {
@@ -40,16 +18,20 @@ export interface FindOptions extends WalkOptions {
40
18
  directory?: string
41
19
  }
42
20
 
43
-
21
+ /** Find files in the current directory using the specified _glob_. */
44
22
  export function find(glob: string): Pipe
23
+ /** Find files in the current directory using the specified _globs_. */
45
24
  export function find(glob: string, ...globs: string[]): Pipe
25
+ /** Find files using the specified _glob_ and {@link FindOptions | options}. */
46
26
  export function find(glob: string, options: FindOptions): Pipe
27
+ /** Find files using the specified _globs_ and {@link FindOptions | options}. */
47
28
  export function find(glob: string, ...extra: [...globs: string[], options: FindOptions]): Pipe
48
-
29
+ /* Overload */
49
30
  export function find(...args: ParseOptions<FindOptions>): Pipe {
50
31
  const { params: globs, options } = parseOptions(args, {})
51
32
 
52
- return new PipeImpl(async (context: Context): Promise<Files> => {
33
+ const context = requireContext()
34
+ return new Pipe(context, async (): Promise<Files> => {
53
35
  const directory = options.directory ?
54
36
  context.resolve(options.directory) :
55
37
  getCurrentWorkingDirectory()
@@ -63,29 +45,6 @@ export function find(...args: ParseOptions<FindOptions>): Pipe {
63
45
  })
64
46
  }
65
47
 
66
- export function merge(...pipes: Pipe[]): Pipe {
67
- return new PipeImpl(async (): Promise<Files> => {
68
- if (pipes.length === 0) return Files.builder(getCurrentWorkingDirectory()).build()
69
-
70
- const results: Files[] = []
71
-
72
- for (const pipe of pipes) {
73
- const result = await pipe.run()
74
- assert(result, 'Pipe did not return a Files result')
75
- results.push(result)
76
- }
77
-
78
- const [ first, ...others ] = results
79
-
80
- const firstDir = first.directory
81
- const otherDirs = others.map((f) => f.directory)
82
-
83
- const directory = commonPath(firstDir, ...otherDirs)
84
-
85
- return Files.builder(directory).merge(first, ...others).build()
86
- })
87
- }
88
-
89
48
  /**
90
49
  * Recursively remove the specified directory _**(use with care)**_.
91
50
  */
@@ -108,13 +67,33 @@ export async function rmrf(directory: string): Promise<void> {
108
67
  await rm(dir, { recursive: true })
109
68
  }
110
69
 
111
- /** Return an absolute path of the file if it exist on disk */
70
+ /**
71
+ * Resolve a (set of) path(s) into an {@link AbsolutePath}.
72
+ *
73
+ * If the path (or first component thereof) starts with `@...`, then the
74
+ * resolved path will be relative to the directory containing the build file
75
+ * where the current task was defined, otherwise it will be relative to the
76
+ * current working directory.
77
+ */
78
+ export function resolve(...paths: [ string, ...string[] ]): AbsolutePath {
79
+ return requireContext().resolve(...paths)
80
+ }
81
+
82
+ /**
83
+ * Return an absolute path of the file if it exist on disk.
84
+ *
85
+ * See the comments on {@link resolve} to understand how paths are resolved.
86
+ */
112
87
  export function isFile(...paths: [ string, ...string[] ]): AbsolutePath | undefined {
113
88
  const path = requireContext().resolve(...paths)
114
89
  return resolveFile(path)
115
90
  }
116
91
 
117
- /** Return an absolute path of the file if it exist on disk */
92
+ /**
93
+ * Return an absolute path of the directory if it exist on disk.
94
+ *
95
+ * See the comments on {@link resolve} to understand how paths are resolved.
96
+ */
118
97
  export function isDirectory(...paths: [ string, ...string[] ]): AbsolutePath | undefined {
119
98
  const path = requireContext().resolve(...paths)
120
99
  return resolveDirectory(path)
package/src/index.ts CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  export type { AbsolutePath } from './paths'
4
4
  export type { Files, FilesBuilder } from './files'
5
- export type { Pipe } from './pipe'
5
+ export { Pipe } from './pipe'
6
6
 
7
7
  // Our minimal exports
8
8
  export * from './assert'