@plugjs/plug 0.0.5 → 0.0.8

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 (61) hide show
  1. package/dist/files.cjs +5 -8
  2. package/dist/files.cjs.map +1 -1
  3. package/dist/files.mjs +5 -8
  4. package/dist/files.mjs.map +1 -1
  5. package/dist/log/report.cjs +16 -7
  6. package/dist/log/report.cjs.map +1 -1
  7. package/dist/log/report.mjs +17 -8
  8. package/dist/log/report.mjs.map +1 -1
  9. package/dist/paths.cjs +1 -1
  10. package/dist/paths.cjs.map +1 -1
  11. package/dist/paths.mjs +2 -2
  12. package/dist/paths.mjs.map +1 -1
  13. package/dist/plugs/copy.cjs +6 -12
  14. package/dist/plugs/copy.cjs.map +2 -2
  15. package/dist/plugs/copy.mjs +6 -6
  16. package/dist/plugs/copy.mjs.map +1 -1
  17. package/dist/plugs/esbuild.cjs +0 -1
  18. package/dist/plugs/esbuild.cjs.map +1 -1
  19. package/dist/plugs/esbuild.mjs +0 -1
  20. package/dist/plugs/esbuild.mjs.map +1 -1
  21. package/dist/plugs/tsc/options.cjs +1 -2
  22. package/dist/plugs/tsc/options.cjs.map +1 -1
  23. package/dist/plugs/tsc/options.mjs +1 -2
  24. package/dist/plugs/tsc/options.mjs.map +1 -1
  25. package/dist/plugs/tsc/runner.cjs +31 -17
  26. package/dist/plugs/tsc/runner.cjs.map +1 -1
  27. package/dist/plugs/tsc/runner.mjs +32 -18
  28. package/dist/plugs/tsc/runner.mjs.map +1 -1
  29. package/dist/run.cjs +3 -2
  30. package/dist/run.cjs.map +1 -1
  31. package/dist/run.mjs +4 -3
  32. package/dist/run.mjs.map +1 -1
  33. package/dist/utils/asyncfs.cjs +4 -8
  34. package/dist/utils/asyncfs.cjs.map +2 -2
  35. package/dist/utils/asyncfs.mjs +3 -7
  36. package/dist/utils/asyncfs.mjs.map +2 -2
  37. package/dist/utils/walk.cjs +7 -4
  38. package/dist/utils/walk.cjs.map +1 -1
  39. package/dist/utils/walk.mjs +8 -5
  40. package/dist/utils/walk.mjs.map +1 -1
  41. package/package.json +4 -4
  42. package/src/files.ts +9 -12
  43. package/src/log/report.ts +22 -11
  44. package/src/paths.ts +2 -2
  45. package/src/plugs/copy.ts +6 -7
  46. package/src/plugs/esbuild.ts +0 -1
  47. package/src/plugs/tsc/options.ts +3 -3
  48. package/src/plugs/tsc/runner.ts +52 -28
  49. package/src/run.ts +4 -3
  50. package/src/utils/asyncfs.ts +9 -8
  51. package/src/utils/walk.ts +10 -5
  52. package/types/files.d.ts +1 -5
  53. package/types/plugs/esbuild.d.ts +0 -1
  54. package/types/plugs/tsc/options.d.ts +1 -1
  55. package/types/utils/asyncfs.d.ts +2 -5
  56. package/dist/plugs/esbuild/check-dependencies.cjs +0 -140
  57. package/dist/plugs/esbuild/check-dependencies.cjs.map +0 -6
  58. package/dist/plugs/esbuild/check-dependencies.mjs +0 -115
  59. package/dist/plugs/esbuild/check-dependencies.mjs.map +0 -6
  60. package/src/plugs/esbuild/check-dependencies.ts +0 -158
  61. package/types/plugs/esbuild/check-dependencies.d.ts +0 -12
@@ -46,35 +46,49 @@ var Tsc = class {
46
46
  this._options = options;
47
47
  }
48
48
  async pipe(files, run) {
49
- const tsconfig = this._tsconfig ? run.resolve(this._tsconfig) : (0, import_paths.isFile)(files.directory, "tsconfig.json");
50
- const overrides = {
51
- rootDir: files.directory,
52
- ...this._options
53
- };
49
+ const baseDir = run.resolve(".");
50
+ const report = run.report("TypeScript Report");
51
+ const overrides = { ...this._options };
52
+ const sourcesConfig = (0, import_paths.isFile)(files.directory, "tsconfig.json");
53
+ const tsconfig = this._tsconfig ? run.resolve(this._tsconfig) : sourcesConfig || (0, import_paths.isFile)(run.resolve("tsconfig.json"));
54
+ let rootDir;
55
+ if (overrides.rootDir) {
56
+ rootDir = overrides.rootDir = run.resolve(overrides.rootDir);
57
+ } else {
58
+ rootDir = overrides.rootDir = files.directory;
59
+ }
60
+ let outDir;
61
+ if (overrides.outDir) {
62
+ outDir = overrides.outDir = run.resolve(overrides.outDir);
63
+ } else {
64
+ outDir = overrides.outDir = rootDir;
65
+ }
66
+ if (overrides.rootDirs) {
67
+ overrides.rootDirs = overrides.rootDirs.map((dir) => run.resolve(dir));
68
+ }
69
+ if (overrides.baseUrl)
70
+ overrides.baseUrl = run.resolve(overrides.baseUrl);
54
71
  const { errors, options } = await (0, import_options2.getCompilerOptions)(
55
72
  tsconfig,
56
73
  overrides,
57
- run.buildFile
74
+ run.buildFile,
75
+ baseDir
58
76
  );
59
- const report = run.report("TypeScript Report");
60
- (0, import_report.updateReport)(report, errors, (0, import_paths.getCurrentWorkingDirectory)());
77
+ (0, import_report.updateReport)(report, errors, baseDir);
61
78
  if (report.errors)
62
79
  report.done(true);
63
- const { rootDir, outDir } = options;
64
- const root = rootDir ? run.resolve(rootDir) : files.directory;
65
- const out = outDir ? run.resolve(outDir) : root;
66
- const host = new import_compiler.TypeScriptHost(root);
67
80
  const paths = [...files.absolutePaths()];
68
81
  for (const path of paths)
69
82
  import_log.log.trace(`Compiling "${(0, import_log.$p)(path)}"`);
70
83
  import_log.log.info("Compiling", paths.length, "files");
71
84
  import_log.log.debug("Compliation options", options);
85
+ const host = new import_compiler.TypeScriptHost(rootDir);
72
86
  const program = import_typescript.default.createProgram(paths, options, host, void 0, errors);
73
87
  const diagnostics = import_typescript.default.getPreEmitDiagnostics(program);
74
- (0, import_report.updateReport)(report, diagnostics, root);
88
+ (0, import_report.updateReport)(report, diagnostics, rootDir);
75
89
  if (report.errors)
76
90
  report.done(true);
77
- const builder = run.files(out);
91
+ const builder = run.files(outDir);
78
92
  const promises = [];
79
93
  const result = program.emit(void 0, (fileName, code) => {
80
94
  promises.push(builder.write(fileName, code).then((file) => {
@@ -84,13 +98,13 @@ var Tsc = class {
84
98
  throw (0, import_assert.failure)();
85
99
  }));
86
100
  });
87
- (0, import_report.updateReport)(report, result.diagnostics, root);
88
- if (report.errors)
89
- report.done(true);
90
101
  const settlements = await Promise.allSettled(promises);
91
102
  const failures = settlements.reduce((failures2, s) => failures2 + s.status === "rejected" ? 1 : 0, 0);
92
103
  if (failures)
93
104
  throw (0, import_assert.failure)();
105
+ (0, import_report.updateReport)(report, result.diagnostics, rootDir);
106
+ if (report.errors)
107
+ report.done(true);
94
108
  const outputs = builder.build();
95
109
  import_log.log.info("TSC produced", outputs.length, "files into", (0, import_log.$p)(outputs.directory));
96
110
  return outputs;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/runner.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,oBAAwB;AAExB,iBAAwB;AACxB,mBAAmD;AAGnD,qBAA2C;AAC3C,sBAA+B;AAC/B,IAAAA,kBAAmC;AACnC,oBAA6B;AAM7B,IAAqB,MAArB,MAAgD;AAAA,EAC7B;AAAA,EACA;AAAA,EAOjB,eAAe,MAAwC;AACrD,UAAM,EAAE,QAAQ,CAAE,QAAS,GAAG,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AAC/D,SAAK,YAAY;AACjB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,KAAK,OAAc,KAA0B;AACjD,UAAM,WAAW,KAAK,YACpB,IAAI,QAAQ,KAAK,SAAS,QAC1B,qBAAO,MAAM,WAAW,eAAe;AAEzC,UAAM,YAAgC;AAAA,MACpC,SAAS,MAAM;AAAA,MACf,GAAG,KAAK;AAAA,IACV;AAEA,UAAM,EAAE,QAAQ,QAAQ,IAAI,UAAM;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,IAAI;AAAA,IAAS;AAEjB,UAAM,SAAS,IAAI,OAAO,mBAAmB;AAG7C,oCAAa,QAAQ,YAAQ,yCAA2B,CAAC;AACzD,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAEnC,UAAM,EAAE,SAAS,OAAO,IAAI;AAC5B,UAAM,OAAO,UAAU,IAAI,QAAQ,OAAO,IAAI,MAAM;AACpD,UAAM,MAAM,SAAS,IAAI,QAAQ,MAAM,IAAI;AAE3C,UAAM,OAAO,IAAI,+BAAe,IAAI;AAEpC,UAAM,QAAQ,CAAE,GAAG,MAAM,cAAc,CAAE;AACzC,eAAW,QAAQ;AAAO,qBAAI,MAAM,kBAAc,eAAG,IAAI,IAAI;AAG7D,mBAAI,KAAK,aAAa,MAAM,QAAQ,OAAO;AAC3C,mBAAI,MAAM,uBAAuB,OAAO;AAExC,UAAM,UAAU,kBAAAC,QAAG,cAAc,OAAO,SAAS,MAAM,QAAW,MAAM;AACxE,UAAM,cAAc,kBAAAA,QAAG,sBAAsB,OAAO;AAGpD,oCAAa,QAAQ,aAAa,IAAI;AACtC,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAEnC,UAAM,UAAU,IAAI,MAAM,GAAG;AAC7B,UAAM,WAA4B,CAAC;AACnC,UAAM,SAAS,QAAQ,KAAK,QAAW,CAAC,UAAU,SAAS;AACzD,eAAS,KAAK,QAAQ,MAAM,UAAU,IAAI,EAAE,KAAK,CAAC,SAAS;AACzD,uBAAI,MAAM,eAAW,eAAG,IAAI,CAAC;AAAA,MAC/B,CAAC,EAAE,MAAM,CAAC,UAAU;AAClB,YAAI,IAAI,MAAM,oBAAoB,UAAU,KAAK;AACjD,kBAAM,uBAAQ;AAAA,MAChB,CAAC,CAAC;AAAA,IACJ,CAAC;AAGD,oCAAa,QAAQ,OAAO,aAAa,IAAI;AAC7C,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAGnC,UAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AACrD,UAAM,WAAW,YACZ,OAAO,CAACC,WAAU,MAAMA,YAAW,EAAE,WAAW,aAAa,IAAI,GAAG,CAAC;AAC1E,QAAI;AAAU,gBAAM,uBAAQ;AAG5B,UAAM,UAAU,QAAQ,MAAM;AAC9B,mBAAI,KAAK,gBAAgB,QAAQ,QAAQ,kBAAc,eAAG,QAAQ,SAAS,CAAC;AAC5E,WAAO;AAAA,EACT;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["import_options", "ts", "failures"]
6
6
  }
@@ -2,7 +2,7 @@
2
2
  import ts from "typescript";
3
3
  import { failure } from "../../assert.mjs";
4
4
  import { $p, log } from "../../log.mjs";
5
- import { getCurrentWorkingDirectory, isFile } from "../../paths.mjs";
5
+ import { isFile } from "../../paths.mjs";
6
6
  import { parseOptions } from "../../utils/options.mjs";
7
7
  import { TypeScriptHost } from "./compiler.mjs";
8
8
  import { getCompilerOptions } from "./options.mjs";
@@ -16,35 +16,49 @@ var Tsc = class {
16
16
  this._options = options;
17
17
  }
18
18
  async pipe(files, run) {
19
- const tsconfig = this._tsconfig ? run.resolve(this._tsconfig) : isFile(files.directory, "tsconfig.json");
20
- const overrides = {
21
- rootDir: files.directory,
22
- ...this._options
23
- };
19
+ const baseDir = run.resolve(".");
20
+ const report = run.report("TypeScript Report");
21
+ const overrides = { ...this._options };
22
+ const sourcesConfig = isFile(files.directory, "tsconfig.json");
23
+ const tsconfig = this._tsconfig ? run.resolve(this._tsconfig) : sourcesConfig || isFile(run.resolve("tsconfig.json"));
24
+ let rootDir;
25
+ if (overrides.rootDir) {
26
+ rootDir = overrides.rootDir = run.resolve(overrides.rootDir);
27
+ } else {
28
+ rootDir = overrides.rootDir = files.directory;
29
+ }
30
+ let outDir;
31
+ if (overrides.outDir) {
32
+ outDir = overrides.outDir = run.resolve(overrides.outDir);
33
+ } else {
34
+ outDir = overrides.outDir = rootDir;
35
+ }
36
+ if (overrides.rootDirs) {
37
+ overrides.rootDirs = overrides.rootDirs.map((dir) => run.resolve(dir));
38
+ }
39
+ if (overrides.baseUrl)
40
+ overrides.baseUrl = run.resolve(overrides.baseUrl);
24
41
  const { errors, options } = await getCompilerOptions(
25
42
  tsconfig,
26
43
  overrides,
27
- run.buildFile
44
+ run.buildFile,
45
+ baseDir
28
46
  );
29
- const report = run.report("TypeScript Report");
30
- updateReport(report, errors, getCurrentWorkingDirectory());
47
+ updateReport(report, errors, baseDir);
31
48
  if (report.errors)
32
49
  report.done(true);
33
- const { rootDir, outDir } = options;
34
- const root = rootDir ? run.resolve(rootDir) : files.directory;
35
- const out = outDir ? run.resolve(outDir) : root;
36
- const host = new TypeScriptHost(root);
37
50
  const paths = [...files.absolutePaths()];
38
51
  for (const path of paths)
39
52
  log.trace(`Compiling "${$p(path)}"`);
40
53
  log.info("Compiling", paths.length, "files");
41
54
  log.debug("Compliation options", options);
55
+ const host = new TypeScriptHost(rootDir);
42
56
  const program = ts.createProgram(paths, options, host, void 0, errors);
43
57
  const diagnostics = ts.getPreEmitDiagnostics(program);
44
- updateReport(report, diagnostics, root);
58
+ updateReport(report, diagnostics, rootDir);
45
59
  if (report.errors)
46
60
  report.done(true);
47
- const builder = run.files(out);
61
+ const builder = run.files(outDir);
48
62
  const promises = [];
49
63
  const result = program.emit(void 0, (fileName, code) => {
50
64
  promises.push(builder.write(fileName, code).then((file) => {
@@ -54,13 +68,13 @@ var Tsc = class {
54
68
  throw failure();
55
69
  }));
56
70
  });
57
- updateReport(report, result.diagnostics, root);
58
- if (report.errors)
59
- report.done(true);
60
71
  const settlements = await Promise.allSettled(promises);
61
72
  const failures = settlements.reduce((failures2, s) => failures2 + s.status === "rejected" ? 1 : 0, 0);
62
73
  if (failures)
63
74
  throw failure();
75
+ updateReport(report, result.diagnostics, rootDir);
76
+ if (report.errors)
77
+ report.done(true);
64
78
  const outputs = builder.build();
65
79
  log.info("TSC produced", outputs.length, "files into", $p(outputs.directory));
66
80
  return outputs;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/runner.ts"],
4
- "mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,eAAe;AAExB,SAAS,IAAI,WAAW;AACxB,SAAS,4BAA4B,cAAc;AAGnD,SAAS,oBAAkC;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAM7B,IAAqB,MAArB,MAAgD;AAAA,EAC7B;AAAA,EACA;AAAA,EAOjB,eAAe,MAAwC;AACrD,UAAM,EAAE,QAAQ,CAAE,QAAS,GAAG,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AAC/D,SAAK,YAAY;AACjB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,KAAK,OAAc,KAA0B;AACjD,UAAM,WAAW,KAAK,YACpB,IAAI,QAAQ,KAAK,SAAS,IAC1B,OAAO,MAAM,WAAW,eAAe;AAEzC,UAAM,YAAgC;AAAA,MACpC,SAAS,MAAM;AAAA,MACf,GAAG,KAAK;AAAA,IACV;AAEA,UAAM,EAAE,QAAQ,QAAQ,IAAI,MAAM;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,IAAI;AAAA,IAAS;AAEjB,UAAM,SAAS,IAAI,OAAO,mBAAmB;AAG7C,iBAAa,QAAQ,QAAQ,2BAA2B,CAAC;AACzD,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAEnC,UAAM,EAAE,SAAS,OAAO,IAAI;AAC5B,UAAM,OAAO,UAAU,IAAI,QAAQ,OAAO,IAAI,MAAM;AACpD,UAAM,MAAM,SAAS,IAAI,QAAQ,MAAM,IAAI;AAE3C,UAAM,OAAO,IAAI,eAAe,IAAI;AAEpC,UAAM,QAAQ,CAAE,GAAG,MAAM,cAAc,CAAE;AACzC,eAAW,QAAQ;AAAO,UAAI,MAAM,cAAc,GAAG,IAAI,IAAI;AAG7D,QAAI,KAAK,aAAa,MAAM,QAAQ,OAAO;AAC3C,QAAI,MAAM,uBAAuB,OAAO;AAExC,UAAM,UAAU,GAAG,cAAc,OAAO,SAAS,MAAM,QAAW,MAAM;AACxE,UAAM,cAAc,GAAG,sBAAsB,OAAO;AAGpD,iBAAa,QAAQ,aAAa,IAAI;AACtC,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAEnC,UAAM,UAAU,IAAI,MAAM,GAAG;AAC7B,UAAM,WAA4B,CAAC;AACnC,UAAM,SAAS,QAAQ,KAAK,QAAW,CAAC,UAAU,SAAS;AACzD,eAAS,KAAK,QAAQ,MAAM,UAAU,IAAI,EAAE,KAAK,CAAC,SAAS;AACzD,YAAI,MAAM,WAAW,GAAG,IAAI,CAAC;AAAA,MAC/B,CAAC,EAAE,MAAM,CAAC,UAAU;AAClB,YAAI,IAAI,MAAM,oBAAoB,UAAU,KAAK;AACjD,cAAM,QAAQ;AAAA,MAChB,CAAC,CAAC;AAAA,IACJ,CAAC;AAGD,iBAAa,QAAQ,OAAO,aAAa,IAAI;AAC7C,QAAI,OAAO;AAAQ,aAAO,KAAK,IAAI;AAGnC,UAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AACrD,UAAM,WAAW,YACZ,OAAO,CAACA,WAAU,MAAMA,YAAW,EAAE,WAAW,aAAa,IAAI,GAAG,CAAC;AAC1E,QAAI;AAAU,YAAM,QAAQ;AAG5B,UAAM,UAAU,QAAQ,MAAM;AAC9B,QAAI,KAAK,gBAAgB,QAAQ,QAAQ,cAAc,GAAG,QAAQ,SAAS,CAAC;AAC5E,WAAO;AAAA,EACT;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["failures"]
6
6
  }
package/dist/run.cjs CHANGED
@@ -53,8 +53,9 @@ var RunImpl = class {
53
53
  if (!path)
54
54
  return this.buildDir;
55
55
  if (path.startsWith("@")) {
56
- const relative = path.substring(1);
57
- (0, import_assert.assert)(!(0, import_paths.isAbsolutePath)(relative), `Path component of "${path}" is absolute`);
56
+ const components = (0, import_node_path.normalize)(path.substring(1)).split(import_node_path.sep);
57
+ const relative = (0, import_node_path.join)(...components);
58
+ (0, import_assert.assert)(!(0, import_paths.isAbsolutePath)(relative), `Path "${path.substring(1)}" is absolute`);
58
59
  return (0, import_paths.resolveAbsolutePath)(this.buildDir, relative);
59
60
  }
60
61
  if ((0, import_paths.isAbsolutePath)(path))
package/dist/run.cjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/run.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,oBAAuB;AACvB,mBAAoC;AACpC,iBAAwF;AACxF,mBAA8F;AAC9F,kBAA+B;AAC/B,qBAA2C;AAC3C,kBAAkC;AAgF3B,IAAM,UAAN,MAA6B;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIT,YAAY,EAAE,UAAU,UAAU,WAAW,IAAI,GAA2B;AAC1E,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,MAAM,WAAO,sBAAU,QAAQ;AAAA,EACtC;AAAA,EAGA,YAAY,OAA6B;AACvC,SAAK,IAAI,YAAQ,2BAAe,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,OAAuB;AAC5B,eAAO,yBAAa,OAAO,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,WAAW,OAA+B;AACxC,UAAM,WAAO,uBAAK,GAAG,KAAK;AAC1B,QAAI,CAAE;AAAM,aAAO,KAAK;AAExB,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,YAAM,WAAW,KAAK,UAAU,CAAC;AACjC,gCAAO,KAAE,6BAAe,QAAQ,GAAG,sBAAsB,mBAAmB;AAC5E,iBAAO,kCAAoB,KAAK,UAAU,QAAQ;AAAA,IACpD;AAEA,YAAI,6BAAe,IAAI;AAAG,aAAO;AAEjC,eAAO,sCAAoB,yCAA2B,GAAG,IAAI;AAAA,EAC/D;AAAA,EAIA,MAAM,UAAsC,OAA+B;AACzE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,mBAAM,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,CAAC;AAAA,IACpD,WAAW,OAAO;AAChB,aAAO,mBAAM,QAAQ,KAAK;AAAA,IAC5B,OAAO;AACL,aAAO,mBAAM,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB,MAAwD;AAC5E,UAAM,EAAE,QAAQ,SAAS,EAAE,cAAc,QAAQ,EAAE,QAAI,6BAAa,MAAM,CAAC,CAAC;AAE5E,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,YAAM,UAAU,KAAK,MAAM,aAAa,GAAG;AAC3C,uBAAiB,YAAQ,kBAAK,QAAQ,WAAW,CAAE,MAAM,GAAG,MAAO,GAAG,OAAO,GAAG;AAC9E,gBAAQ,UAAU,IAAI;AAAA,MACxB;AACA,aAAO,QAAQ,MAAM;AAAA,IACvB,CAAC;AAED,WAAO,KAAK,KAAK,OAAO;AAAA,EAC1B;AAAA,EAEA,KAAK,OAAsD;AACzD,WAAO,IAAI,qBAAS,OAAO,IAAI;AAAA,EACjC;AAAA,EAEA,KAAK,MAA0C;AAC7C,UAAM,IAAI,MAAM,wBAAwB,OAAO;AAAA,EACjD;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqC;AACrC,oBAAuB;AACvB,mBAAoC;AACpC,iBAAwF;AACxF,mBAA8F;AAC9F,kBAA+B;AAC/B,qBAA2C;AAC3C,kBAAkC;AAgF3B,IAAM,UAAN,MAA6B;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIT,YAAY,EAAE,UAAU,UAAU,WAAW,IAAI,GAA2B;AAC1E,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,MAAM,WAAO,sBAAU,QAAQ;AAAA,EACtC;AAAA,EAGA,YAAY,OAA6B;AACvC,SAAK,IAAI,YAAQ,2BAAe,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,OAAuB;AAC5B,eAAO,yBAAa,OAAO,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,WAAW,OAA+B;AACxC,UAAM,WAAO,uBAAK,GAAG,KAAK;AAC1B,QAAI,CAAE;AAAM,aAAO,KAAK;AAExB,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,YAAM,iBAAa,4BAAU,KAAK,UAAU,CAAC,CAAC,EAAE,MAAM,oBAAG;AACzD,YAAM,eAAW,uBAAK,GAAG,UAAU;AACnC,gCAAO,KAAE,6BAAe,QAAQ,GAAG,SAAS,KAAK,UAAU,CAAC,gBAAgB;AAC5E,iBAAO,kCAAoB,KAAK,UAAU,QAAQ;AAAA,IACpD;AAEA,YAAI,6BAAe,IAAI;AAAG,aAAO;AAEjC,eAAO,sCAAoB,yCAA2B,GAAG,IAAI;AAAA,EAC/D;AAAA,EAIA,MAAM,UAAsC,OAA+B;AACzE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,mBAAM,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,CAAC;AAAA,IACpD,WAAW,OAAO;AAChB,aAAO,mBAAM,QAAQ,KAAK;AAAA,IAC5B,OAAO;AACL,aAAO,mBAAM,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB,MAAwD;AAC5E,UAAM,EAAE,QAAQ,SAAS,EAAE,cAAc,QAAQ,EAAE,QAAI,6BAAa,MAAM,CAAC,CAAC;AAE5E,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,YAAM,UAAU,KAAK,MAAM,aAAa,GAAG;AAC3C,uBAAiB,YAAQ,kBAAK,QAAQ,WAAW,CAAE,MAAM,GAAG,MAAO,GAAG,OAAO,GAAG;AAC9E,gBAAQ,UAAU,IAAI;AAAA,MACxB;AACA,aAAO,QAAQ,MAAM;AAAA,IACvB,CAAC;AAED,WAAO,KAAK,KAAK,OAAO;AAAA,EAC1B;AAAA,EAEA,KAAK,OAAsD;AACzD,WAAO,IAAI,qBAAS,OAAO,IAAI;AAAA,EACjC;AAAA,EAEA,KAAK,MAA0C;AAC7C,UAAM,IAAI,MAAM,wBAAwB,OAAO;AAAA,EACjD;AACF;",
5
5
  "names": []
6
6
  }
package/dist/run.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // run.ts
2
- import { join } from "node:path";
2
+ import { join, normalize, sep } from "node:path";
3
3
  import { assert } from "./assert.mjs";
4
4
  import { Files } from "./files.mjs";
5
5
  import { createReport, getLevelNumber, getLogger } from "./log.mjs";
@@ -29,8 +29,9 @@ var RunImpl = class {
29
29
  if (!path)
30
30
  return this.buildDir;
31
31
  if (path.startsWith("@")) {
32
- const relative = path.substring(1);
33
- assert(!isAbsolutePath(relative), `Path component of "${path}" is absolute`);
32
+ const components = normalize(path.substring(1)).split(sep);
33
+ const relative = join(...components);
34
+ assert(!isAbsolutePath(relative), `Path "${path.substring(1)}" is absolute`);
34
35
  return resolveAbsolutePath(this.buildDir, relative);
35
36
  }
36
37
  if (isAbsolutePath(path))
package/dist/run.mjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/run.ts"],
4
- "mappings": ";AAAA,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,SAAS,aAA2B;AACpC,SAAS,cAAc,gBAAgB,iBAAiD;AACxF,SAAuB,4BAA4B,gBAAgB,2BAA2B;AAC9F,SAAe,gBAAgB;AAC/B,SAAuB,oBAAoB;AAC3C,SAAS,YAAyB;AAgF3B,IAAM,UAAN,MAA6B;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIT,YAAY,EAAE,UAAU,UAAU,WAAW,IAAI,GAA2B;AAC1E,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,MAAM,OAAO,UAAU,QAAQ;AAAA,EACtC;AAAA,EAGA,YAAY,OAA6B;AACvC,SAAK,IAAI,QAAQ,eAAe,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,OAAuB;AAC5B,WAAO,aAAa,OAAO,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,WAAW,OAA+B;AACxC,UAAM,OAAO,KAAK,GAAG,KAAK;AAC1B,QAAI,CAAE;AAAM,aAAO,KAAK;AAExB,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,YAAM,WAAW,KAAK,UAAU,CAAC;AACjC,aAAO,CAAE,eAAe,QAAQ,GAAG,sBAAsB,mBAAmB;AAC5E,aAAO,oBAAoB,KAAK,UAAU,QAAQ;AAAA,IACpD;AAEA,QAAI,eAAe,IAAI;AAAG,aAAO;AAEjC,WAAO,oBAAoB,2BAA2B,GAAG,IAAI;AAAA,EAC/D;AAAA,EAIA,MAAM,UAAsC,OAA+B;AACzE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,MAAM,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,CAAC;AAAA,IACpD,WAAW,OAAO;AAChB,aAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B,OAAO;AACL,aAAO,MAAM,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB,MAAwD;AAC5E,UAAM,EAAE,QAAQ,SAAS,EAAE,cAAc,QAAQ,EAAE,IAAI,aAAa,MAAM,CAAC,CAAC;AAE5E,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,YAAM,UAAU,KAAK,MAAM,aAAa,GAAG;AAC3C,uBAAiB,QAAQ,KAAK,QAAQ,WAAW,CAAE,MAAM,GAAG,MAAO,GAAG,OAAO,GAAG;AAC9E,gBAAQ,UAAU,IAAI;AAAA,MACxB;AACA,aAAO,QAAQ,MAAM;AAAA,IACvB,CAAC;AAED,WAAO,KAAK,KAAK,OAAO;AAAA,EAC1B;AAAA,EAEA,KAAK,OAAsD;AACzD,WAAO,IAAI,SAAS,OAAO,IAAI;AAAA,EACjC;AAAA,EAEA,KAAK,MAA0C;AAC7C,UAAM,IAAI,MAAM,wBAAwB,OAAO;AAAA,EACjD;AACF;",
4
+ "mappings": ";AAAA,SAAS,MAAM,WAAW,WAAW;AACrC,SAAS,cAAc;AACvB,SAAS,aAA2B;AACpC,SAAS,cAAc,gBAAgB,iBAAiD;AACxF,SAAuB,4BAA4B,gBAAgB,2BAA2B;AAC9F,SAAe,gBAAgB;AAC/B,SAAuB,oBAAoB;AAC3C,SAAS,YAAyB;AAgF3B,IAAM,UAAN,MAA6B;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIT,YAAY,EAAE,UAAU,UAAU,WAAW,IAAI,GAA2B;AAC1E,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,MAAM,OAAO,UAAU,QAAQ;AAAA,EACtC;AAAA,EAGA,YAAY,OAA6B;AACvC,SAAK,IAAI,QAAQ,eAAe,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,OAAuB;AAC5B,WAAO,aAAa,OAAO,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,WAAW,OAA+B;AACxC,UAAM,OAAO,KAAK,GAAG,KAAK;AAC1B,QAAI,CAAE;AAAM,aAAO,KAAK;AAExB,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,YAAM,aAAa,UAAU,KAAK,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG;AACzD,YAAM,WAAW,KAAK,GAAG,UAAU;AACnC,aAAO,CAAE,eAAe,QAAQ,GAAG,SAAS,KAAK,UAAU,CAAC,gBAAgB;AAC5E,aAAO,oBAAoB,KAAK,UAAU,QAAQ;AAAA,IACpD;AAEA,QAAI,eAAe,IAAI;AAAG,aAAO;AAEjC,WAAO,oBAAoB,2BAA2B,GAAG,IAAI;AAAA,EAC/D;AAAA,EAIA,MAAM,UAAsC,OAA+B;AACzE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,MAAM,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,CAAC;AAAA,IACpD,WAAW,OAAO;AAChB,aAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B,OAAO;AACL,aAAO,MAAM,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,KAAK,SAAiB,MAAwD;AAC5E,UAAM,EAAE,QAAQ,SAAS,EAAE,cAAc,QAAQ,EAAE,IAAI,aAAa,MAAM,CAAC,CAAC;AAE5E,UAAM,UAAU,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACjD,YAAM,UAAU,KAAK,MAAM,aAAa,GAAG;AAC3C,uBAAiB,QAAQ,KAAK,QAAQ,WAAW,CAAE,MAAM,GAAG,MAAO,GAAG,OAAO,GAAG;AAC9E,gBAAQ,UAAU,IAAI;AAAA,MACxB;AACA,aAAO,QAAQ,MAAM;AAAA,IACvB,CAAC;AAED,WAAO,KAAK,KAAK,OAAO;AAAA,EAC1B;AAAA,EAEA,KAAK,OAAsD;AACzD,WAAO,IAAI,SAAS,OAAO,IAAI;AAAA,EACjC;AAAA,EAEA,KAAK,MAA0C;AAC7C,UAAM,IAAI,MAAM,wBAAwB,OAAO;AAAA,EACjD;AACF;",
5
5
  "names": []
6
6
  }
@@ -30,10 +30,9 @@ __export(asyncfs_exports, {
30
30
  appendFile: () => appendFile,
31
31
  chmod: () => chmod,
32
32
  chown: () => chown,
33
- constants: () => import_node_fs2.constants,
34
33
  copyFile: () => copyFile,
35
34
  cp: () => cp,
36
- default: () => asyncfs_default,
35
+ fsConstants: () => fsConstants,
37
36
  lchmod: () => lchmod,
38
37
  lchown: () => lchown,
39
38
  link: () => link,
@@ -61,7 +60,6 @@ __export(asyncfs_exports, {
61
60
  module.exports = __toCommonJS(asyncfs_exports);
62
61
  var import_node_fs = require("node:fs");
63
62
  var import_promises = __toESM(require("node:fs/promises"));
64
- var import_node_fs2 = require("node:fs");
65
63
  var fs = Object.entries(import_promises.default).reduce((fs2, [key, val]) => {
66
64
  if (typeof val === "function") {
67
65
  const f = function(...args) {
@@ -72,12 +70,9 @@ var fs = Object.entries(import_promises.default).reduce((fs2, [key, val]) => {
72
70
  };
73
71
  Object.defineProperty(f, "name", { value: key });
74
72
  fs2[key] = f;
75
- } else {
76
- fs2[key] = val;
77
73
  }
78
74
  return fs2;
79
- }, { constants: import_node_fs.constants });
80
- var asyncfs_default = fs;
75
+ }, {});
81
76
  var access = fs.access;
82
77
  var copyFile = fs.copyFile;
83
78
  var cp = fs.cp;
@@ -107,15 +102,16 @@ var writeFile = fs.writeFile;
107
102
  var appendFile = fs.appendFile;
108
103
  var readFile = fs.readFile;
109
104
  var watch = fs.watch;
105
+ var fsConstants = import_node_fs.constants;
110
106
  // Annotate the CommonJS export names for ESM import in node:
111
107
  0 && (module.exports = {
112
108
  access,
113
109
  appendFile,
114
110
  chmod,
115
111
  chown,
116
- constants,
117
112
  copyFile,
118
113
  cp,
114
+ fsConstants,
119
115
  lchmod,
120
116
  lchown,
121
117
  link,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/asyncfs.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA0B;AAC1B,sBAAgB;AAgFhB,IAAAA,kBAA0B;AA5D1B,IAAM,KAAK,OAAO,QAAQ,gBAAAC,OAAU,EAAE,OAAO,CAACC,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,gBAAAD,SAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAC,IAAG,OAAO;AAAA,EACZ,OAAO;AAEL,IAAAA,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,EAAE,oCAAU,CAAQ;AAGvB,IAAO,kBAAQ;AAGR,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;",
5
- "names": ["import_node_fs", "fsp", "fs"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA0B;AAC1B,sBAAgB;AA0BhB,IAAM,KAAK,OAAO,QAAQ,gBAAAA,OAAU,EAAE,OAAO,CAACC,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,gBAAAD,SAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAC,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,CAAC,CAAQ;AAIL,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;AAGjB,IAAM,cAAc;",
5
+ "names": ["fsp", "fs"]
6
6
  }
@@ -1,7 +1,6 @@
1
1
  // utils/asyncfs.ts
2
2
  import { constants } from "node:fs";
3
3
  import fsp from "node:fs/promises";
4
- import { constants as constants2 } from "node:fs";
5
4
  var fs = Object.entries(fsp).reduce((fs2, [key, val]) => {
6
5
  if (typeof val === "function") {
7
6
  const f = function(...args) {
@@ -12,12 +11,9 @@ var fs = Object.entries(fsp).reduce((fs2, [key, val]) => {
12
11
  };
13
12
  Object.defineProperty(f, "name", { value: key });
14
13
  fs2[key] = f;
15
- } else {
16
- fs2[key] = val;
17
14
  }
18
15
  return fs2;
19
- }, { constants });
20
- var asyncfs_default = fs;
16
+ }, {});
21
17
  var access = fs.access;
22
18
  var copyFile = fs.copyFile;
23
19
  var cp = fs.cp;
@@ -47,15 +43,15 @@ var writeFile = fs.writeFile;
47
43
  var appendFile = fs.appendFile;
48
44
  var readFile = fs.readFile;
49
45
  var watch = fs.watch;
46
+ var fsConstants = constants;
50
47
  export {
51
48
  access,
52
49
  appendFile,
53
50
  chmod,
54
51
  chown,
55
- constants2 as constants,
56
52
  copyFile,
57
53
  cp,
58
- asyncfs_default as default,
54
+ fsConstants,
59
55
  lchmod,
60
56
  lchown,
61
57
  link,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/asyncfs.ts"],
4
- "mappings": ";AAAA,SAAS,iBAAiB;AAC1B,OAAO,SAAS;AAgFhB,SAAS,aAAAA,kBAAiB;AA5D1B,IAAM,KAAK,OAAO,QAAQ,GAAU,EAAE,OAAO,CAACC,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAA,IAAG,OAAO;AAAA,EACZ,OAAO;AAEL,IAAAA,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,EAAE,UAAU,CAAQ;AAGvB,IAAO,kBAAQ;AAGR,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;",
5
- "names": ["constants", "fs"]
4
+ "mappings": ";AAAA,SAAS,iBAAiB;AAC1B,OAAO,SAAS;AA0BhB,IAAM,KAAK,OAAO,QAAQ,GAAU,EAAE,OAAO,CAACA,KAAI,CAAE,KAAK,GAAI,MAAM;AACjE,MAAI,OAAO,QAAQ,YAAY;AAE7B,UAAM,IAAI,YAAY,MAAkB;AAEtC,aAAO,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM,CAAC,UAAe;AAEhD,cAAM,kBAAkB,KAAK;AAC7B,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAGA,WAAO,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC;AAE/C,IAAAA,IAAG,OAAO;AAAA,EACZ;AAGA,SAAOA;AACT,GAAG,CAAC,CAAQ;AAIL,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,OAAO,GAAG;AAChB,IAAM,UAAU,GAAG;AACnB,IAAM,SAAS,GAAG;AAClB,IAAM,WAAW,GAAG;AACpB,IAAM,KAAK,GAAG;AACd,IAAM,QAAQ,GAAG;AACjB,IAAM,QAAQ,GAAG;AACjB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,QAAQ,GAAG;AACjB,IAAM,OAAO,GAAG;AAChB,IAAM,OAAO,GAAG;AAChB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,SAAS,GAAG;AAClB,IAAM,QAAQ,GAAG;AACjB,IAAM,SAAS,GAAG;AAClB,IAAM,UAAU,GAAG;AACnB,IAAM,WAAW,GAAG;AACpB,IAAM,UAAU,GAAG;AACnB,IAAM,YAAY,GAAG;AACrB,IAAM,aAAa,GAAG;AACtB,IAAM,WAAW,GAAG;AACpB,IAAM,QAAQ,GAAG;AAGjB,IAAM,cAAc;",
5
+ "names": ["fs"]
6
6
  }
@@ -71,13 +71,16 @@ async function* walker(args) {
71
71
  if (!onDirectory(dir))
72
72
  return;
73
73
  import_log.log.trace("Reading directory", (0, import_log.$p)(dir));
74
- const dirents = await (0, import_asyncfs.readdir)(dir, { withFileTypes: true }).catch((error) => {
74
+ let dirents;
75
+ try {
76
+ dirents = await (0, import_asyncfs.opendir)(dir);
77
+ } catch (error) {
75
78
  if (error.code !== "ENOENT")
76
79
  throw error;
77
80
  import_log.log.warn("Directory", (0, import_log.$p)(dir), "not found");
78
- return [];
79
- });
80
- for (const dirent of dirents) {
81
+ return;
82
+ }
83
+ for await (const dirent of dirents) {
81
84
  const path = (0, import_node_path.join)(relative, dirent.name);
82
85
  if (dirent.isFile() && positiveMatcher(path))
83
86
  yield path;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/walk.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA+B;AAC/B,iBAAwB;AACxB,mBAAkD;AAClD,qBAA8B;AAC9B,mBAAoC;AA8B7B,SAAS,KACZ,WACA,OACA,UAAuB,CAAC,GACU;AACpC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,OAChB;AAAA,EACL,IAAI;AAGJ,QAAM,cAAc,CAAC,QAA+B;AAGlD,QAAI,QAAQ;AAAW,aAAO;AAC9B,UAAM,WAAO,2BAAS,GAAG;AACzB,QAAI,SAAS;AAAgB,aAAO,CAAC,CAAC;AACtC,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,CAAC,CAAC,KAAK;AACxC,WAAO;AAAA,EACT;AAGA,QAAM,sBAAkB,oBAAM,OAAO,IAAI;AAGzC,iBAAI,MAAM,yBAAqB,eAAG,SAAS,GAAG,EAAE,OAAO,QAAQ,CAAC;AAChE,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACH;AAiBA,gBAAgB,OAAO,MAA2D;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,UAAM,kCAAoB,WAAW,QAAQ;AACnD,MAAI,CAAE,YAAY,GAAG;AAAG;AACxB,iBAAI,MAAM,yBAAqB,eAAG,GAAG,CAAC;AACtC,QAAM,UAAU,UAAM,wBAAQ,KAAK,EAAE,eAAe,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU;AAC3E,QAAI,MAAM,SAAS;AAAU,YAAM;AACnC,mBAAI,KAAK,iBAAa,eAAG,GAAG,GAAG,WAAW;AAC1C,WAAO,CAAC;AAAA,EACV,CAAC;AAGD,aAAW,UAAU,SAAS;AAC5B,UAAM,WAAO,uBAAK,UAAU,OAAO,IAAI;AAGvC,QAAI,OAAO,OAAO,KAAK,gBAAgB,IAAI;AAAG,YAAM;AAAA,aAG3C,OAAO,YAAY,KAAM,QAAQ,UAAW;AACnD,YAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,uBAAiB,SAAS;AAAU,cAAM;AAAA,IAG5C,WAAW,OAAO,eAAe,KAAK,gBAAgB;AACpD,YAAM,OAAO,UAAM,yBAAK,uBAAK,WAAW,IAAI,CAAC;AAG7C,UAAI,KAAK,OAAO,KAAK,gBAAgB,IAAI;AAAG,cAAM;AAAA,eAGzC,KAAK,YAAY,KAAM,QAAQ,UAAW;AACjD,cAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,yBAAiB,SAAS;AAAU,gBAAM;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAA+B;AAC/B,iBAAwB;AACxB,mBAAkD;AAClD,qBAA8B;AAC9B,mBAAoC;AA8B7B,SAAS,KACZ,WACA,OACA,UAAuB,CAAC,GACU;AACpC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,OAChB;AAAA,EACL,IAAI;AAGJ,QAAM,cAAc,CAAC,QAA+B;AAGlD,QAAI,QAAQ;AAAW,aAAO;AAC9B,UAAM,WAAO,2BAAS,GAAG;AACzB,QAAI,SAAS;AAAgB,aAAO,CAAC,CAAC;AACtC,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,CAAC,CAAC,KAAK;AACxC,WAAO;AAAA,EACT;AAGA,QAAM,sBAAkB,oBAAM,OAAO,IAAI;AAGzC,iBAAI,MAAM,yBAAqB,eAAG,SAAS,GAAG,EAAE,OAAO,QAAQ,CAAC;AAChE,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACH;AAiBA,gBAAgB,OAAO,MAA2D;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,UAAM,kCAAoB,WAAW,QAAQ;AACnD,MAAI,CAAE,YAAY,GAAG;AAAG;AACxB,iBAAI,MAAM,yBAAqB,eAAG,GAAG,CAAC;AAEtC,MAAI;AACJ,MAAI;AACF,cAAU,UAAM,wBAAQ,GAAG;AAAA,EAC7B,SAAS,OAAP;AACA,QAAI,MAAM,SAAS;AAAU,YAAM;AACnC,mBAAI,KAAK,iBAAa,eAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAGA,mBAAiB,UAAU,SAAS;AAClC,UAAM,WAAO,uBAAK,UAAU,OAAO,IAAI;AAGvC,QAAI,OAAO,OAAO,KAAK,gBAAgB,IAAI;AAAG,YAAM;AAAA,aAG3C,OAAO,YAAY,KAAM,QAAQ,UAAW;AACnD,YAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,uBAAiB,SAAS;AAAU,cAAM;AAAA,IAG5C,WAAW,OAAO,eAAe,KAAK,gBAAgB;AACpD,YAAM,OAAO,UAAM,yBAAK,uBAAK,WAAW,IAAI,CAAC;AAG7C,UAAI,KAAK,OAAO,KAAK,gBAAgB,IAAI;AAAG,cAAM;AAAA,eAGzC,KAAK,YAAY,KAAM,QAAQ,UAAW;AACjD,cAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,yBAAiB,SAAS;AAAU,gBAAM;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -2,7 +2,7 @@
2
2
  import { basename, join } from "node:path";
3
3
  import { $p, log } from "../log.mjs";
4
4
  import { resolveAbsolutePath } from "../paths.mjs";
5
- import { readdir, stat } from "./asyncfs.mjs";
5
+ import { opendir, stat } from "./asyncfs.mjs";
6
6
  import { match } from "./match.mjs";
7
7
  function walk(directory, globs, options = {}) {
8
8
  const {
@@ -47,13 +47,16 @@ async function* walker(args) {
47
47
  if (!onDirectory(dir))
48
48
  return;
49
49
  log.trace("Reading directory", $p(dir));
50
- const dirents = await readdir(dir, { withFileTypes: true }).catch((error) => {
50
+ let dirents;
51
+ try {
52
+ dirents = await opendir(dir);
53
+ } catch (error) {
51
54
  if (error.code !== "ENOENT")
52
55
  throw error;
53
56
  log.warn("Directory", $p(dir), "not found");
54
- return [];
55
- });
56
- for (const dirent of dirents) {
57
+ return;
58
+ }
59
+ for await (const dirent of dirents) {
57
60
  const path = join(relative, dirent.name);
58
61
  if (dirent.isFile() && positiveMatcher(path))
59
62
  yield path;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/walk.ts"],
4
- "mappings": ";AAAA,SAAS,UAAU,YAAY;AAC/B,SAAS,IAAI,WAAW;AACxB,SAAuB,2BAA2B;AAClD,SAAS,SAAS,YAAY;AAC9B,SAAS,aAA2B;AA8B7B,SAAS,KACZ,WACA,OACA,UAAuB,CAAC,GACU;AACpC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,OAChB;AAAA,EACL,IAAI;AAGJ,QAAM,cAAc,CAAC,QAA+B;AAGlD,QAAI,QAAQ;AAAW,aAAO;AAC9B,UAAM,OAAO,SAAS,GAAG;AACzB,QAAI,SAAS;AAAgB,aAAO,CAAC,CAAC;AACtC,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,CAAC,CAAC,KAAK;AACxC,WAAO;AAAA,EACT;AAGA,QAAM,kBAAkB,MAAM,OAAO,IAAI;AAGzC,MAAI,MAAM,qBAAqB,GAAG,SAAS,GAAG,EAAE,OAAO,QAAQ,CAAC;AAChE,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACH;AAiBA,gBAAgB,OAAO,MAA2D;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,MAAM,oBAAoB,WAAW,QAAQ;AACnD,MAAI,CAAE,YAAY,GAAG;AAAG;AACxB,MAAI,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACtC,QAAM,UAAU,MAAM,QAAQ,KAAK,EAAE,eAAe,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU;AAC3E,QAAI,MAAM,SAAS;AAAU,YAAM;AACnC,QAAI,KAAK,aAAa,GAAG,GAAG,GAAG,WAAW;AAC1C,WAAO,CAAC;AAAA,EACV,CAAC;AAGD,aAAW,UAAU,SAAS;AAC5B,UAAM,OAAO,KAAK,UAAU,OAAO,IAAI;AAGvC,QAAI,OAAO,OAAO,KAAK,gBAAgB,IAAI;AAAG,YAAM;AAAA,aAG3C,OAAO,YAAY,KAAM,QAAQ,UAAW;AACnD,YAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,uBAAiB,SAAS;AAAU,cAAM;AAAA,IAG5C,WAAW,OAAO,eAAe,KAAK,gBAAgB;AACpD,YAAM,OAAO,MAAM,KAAK,KAAK,WAAW,IAAI,CAAC;AAG7C,UAAI,KAAK,OAAO,KAAK,gBAAgB,IAAI;AAAG,cAAM;AAAA,eAGzC,KAAK,YAAY,KAAM,QAAQ,UAAW;AACjD,cAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,yBAAiB,SAAS;AAAU,gBAAM;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": ";AACA,SAAS,UAAU,YAAY;AAC/B,SAAS,IAAI,WAAW;AACxB,SAAuB,2BAA2B;AAClD,SAAS,SAAS,YAAY;AAC9B,SAAS,aAA2B;AA8B7B,SAAS,KACZ,WACA,OACA,UAAuB,CAAC,GACU;AACpC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,OAChB;AAAA,EACL,IAAI;AAGJ,QAAM,cAAc,CAAC,QAA+B;AAGlD,QAAI,QAAQ;AAAW,aAAO;AAC9B,UAAM,OAAO,SAAS,GAAG;AACzB,QAAI,SAAS;AAAgB,aAAO,CAAC,CAAC;AACtC,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,CAAC,CAAC,KAAK;AACxC,WAAO;AAAA,EACT;AAGA,QAAM,kBAAkB,MAAM,OAAO,IAAI;AAGzC,MAAI,MAAM,qBAAqB,GAAG,SAAS,GAAG,EAAE,OAAO,QAAQ,CAAC;AAChE,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACH;AAiBA,gBAAgB,OAAO,MAA2D;AAChF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,MAAM,oBAAoB,WAAW,QAAQ;AACnD,MAAI,CAAE,YAAY,GAAG;AAAG;AACxB,MAAI,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEtC,MAAI;AACJ,MAAI;AACF,cAAU,MAAM,QAAQ,GAAG;AAAA,EAC7B,SAAS,OAAP;AACA,QAAI,MAAM,SAAS;AAAU,YAAM;AACnC,QAAI,KAAK,aAAa,GAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAGA,mBAAiB,UAAU,SAAS;AAClC,UAAM,OAAO,KAAK,UAAU,OAAO,IAAI;AAGvC,QAAI,OAAO,OAAO,KAAK,gBAAgB,IAAI;AAAG,YAAM;AAAA,aAG3C,OAAO,YAAY,KAAM,QAAQ,UAAW;AACnD,YAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,uBAAiB,SAAS;AAAU,cAAM;AAAA,IAG5C,WAAW,OAAO,eAAe,KAAK,gBAAgB;AACpD,YAAM,OAAO,MAAM,KAAK,KAAK,WAAW,IAAI,CAAC;AAG7C,UAAI,KAAK,OAAO,KAAK,gBAAgB,IAAI;AAAG,cAAM;AAAA,eAGzC,KAAK,YAAY,KAAM,QAAQ,UAAW;AACjD,cAAM,WAAW,OAAO,EAAE,GAAG,MAAM,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC;AACrE,yBAAiB,SAAS;AAAU,gBAAM;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plugjs/plug",
3
- "version": "0.0.5",
3
+ "version": "0.0.8",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "scripts": {
24
24
  "bootstrap": "./bootstrap.sh",
25
- "build": "node ./extra/cli.mjs --force-esm",
25
+ "build": "./runme.sh",
26
26
  "dev": "npx nodemon -e .ts -w ./test -w ./src -x ./runme.sh"
27
27
  },
28
28
  "author": "",
@@ -31,6 +31,7 @@
31
31
  "@babel/parser": "^7.18.11",
32
32
  "@babel/types": "^7.18.10",
33
33
  "@plugjs/cov8-html": "^0.0.1",
34
+ "@types/node": "<17",
34
35
  "diff": "^5.1.0",
35
36
  "esbuild": "^0.15.5",
36
37
  "eslint": "^8.22.0",
@@ -43,10 +44,9 @@
43
44
  "devDependencies": {
44
45
  "@types/chai": "^4.3.3",
45
46
  "@types/diff": "^5.0.2",
46
- "@types/eslint": "^8.4.5",
47
+ "@types/eslint": "^8.4.6",
47
48
  "@types/mocha": "^9.1.1",
48
49
  "@types/ms": "^0.7.31",
49
- "@types/node": "<17",
50
50
  "@types/picomatch": "^2.3.0",
51
51
  "@types/yargs-parser": "^21.0.0",
52
52
  "@typescript-eslint/eslint-plugin": "^5.33.1",
package/src/files.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { inspect } from 'node:util'
2
1
  import { assert } from './assert.js'
3
2
  import { AbsolutePath, assertRelativeChildPath, getAbsoluteParent, isFile, resolveAbsolutePath } from './paths.js'
4
3
  import { mkdir, writeFile } from './utils/asyncfs.js'
@@ -27,7 +26,7 @@ export interface FilesBuilder {
27
26
  merge(...files: Files[]): this
28
27
 
29
28
  /** Write a file and add it to the {@link Files} instance being built */
30
- write(file: string, content: string | Buffer): Promise<AbsolutePath>
29
+ write(file: string, content: string | Uint8Array): Promise<AbsolutePath>
31
30
 
32
31
  /** Build and return a {@link Files} instance */
33
32
  build(): Files
@@ -48,6 +47,13 @@ export class Files {
48
47
  constructor(directory: AbsolutePath) {
49
48
  this._directory = directory
50
49
  this._files = []
50
+
51
+ // Nicety for "console.log" / "util.inspect"...
52
+ const inspect = Symbol.for('nodejs.util.inspect.custom')
53
+ Object.defineProperty(this, inspect, { value: () => ({
54
+ directory: this._directory,
55
+ files: [ ...this._files ],
56
+ }) })
51
57
  }
52
58
 
53
59
  /** Return the _directory_ where this {@link Files} is rooted */
@@ -75,15 +81,6 @@ export class Files {
75
81
  for (const file of this) yield [ file, resolveAbsolutePath(this._directory, file) ]
76
82
  }
77
83
 
78
- /* Nicety for logging */
79
- [inspect.custom](): any {
80
- const self = this
81
- return new class Files {
82
- directory = self._directory
83
- files = [ ...self._files ]
84
- }
85
- }
86
-
87
84
  /** Create a new {@link FilesBuilder} creating {@link Files} instances. */
88
85
  static builder(files: Files): FilesBuilder
89
86
  static builder(directory: AbsolutePath): FilesBuilder
@@ -136,7 +133,7 @@ export class Files {
136
133
  return this
137
134
  },
138
135
 
139
- async write(file: string, content: string | Buffer): Promise<AbsolutePath> {
136
+ async write(file: string, content: string | Uint8Array): Promise<AbsolutePath> {
140
137
  const relative = assertRelativeChildPath(instance.directory, file)
141
138
  const absolute = resolveAbsolutePath(instance.directory, relative)
142
139
  const directory = getAbsoluteParent(absolute)
package/src/log/report.ts CHANGED
@@ -3,7 +3,7 @@ import { AbsolutePath } from '../paths.js'
3
3
  import { readFile } from '../utils/asyncfs.js'
4
4
  import { $blu, $cyn, $gry, $red, $und, $wht, $ylw } from './colors.js'
5
5
  import { emitColor, emitPlain, LogEmitter } from './emit.js'
6
- import { ERROR, INFO, LogLevels, NOTICE, WARN } from './levels.js'
6
+ import { ERROR, LogLevels, NOTICE, WARN } from './levels.js'
7
7
  import { logOptions } from './options.js'
8
8
 
9
9
  /* ========================================================================== */
@@ -288,6 +288,9 @@ class ReportImpl implements Report {
288
288
  let lPad = 0
289
289
  let cPad = 0
290
290
 
291
+ /* Skip report all together if empty! */
292
+ if ((this._annotations.size === 0) && (this._records.size === 0)) return this
293
+
291
294
  /* This is GIANT: sort and convert our data for easy reporting */
292
295
  const entries = [ ...this._annotations.keys(), ...this._records.keys() ]
293
296
  // dedupe
@@ -334,12 +337,11 @@ class ReportImpl implements Report {
334
337
  cPad = cPad.toString().length
335
338
 
336
339
  /* Basic emit options */
337
- const options = { taskName: this._task, level: INFO }
340
+ const options = { taskName: this._task, level: NOTICE }
338
341
 
339
342
  this._emitter(options, [ '' ])
340
343
  this._emitter(options, [ $und($wht(this._title)) ])
341
344
 
342
-
343
345
  /* Iterate through all our [file,reports] tuple */
344
346
  for (let f = 0; f < entries.length; f ++) {
345
347
  const { file, records, annotation } = entries[f]
@@ -418,16 +420,25 @@ class ReportImpl implements Report {
418
420
  }
419
421
  }
420
422
 
421
- /* Our totals */
422
- const eLabel = this.errors === 1 ? 'error' : 'errors'
423
- const wLabel = this.warnings === 1 ? 'warning' : 'warnings'
424
- const eNumber = this.errors ? $red(this.errors) : 'no'
425
- const wNumber = this.warnings ? $ylw(this.warnings) : 'no'
426
-
427
- this._emitter(options, [ '' ])
428
- this._emitter(options, [ 'Found', eNumber, eLabel, 'and', wNumber, wLabel ])
423
+ /* Our totals (if any) */
429
424
  this._emitter(options, [ '' ])
430
425
 
426
+ const status: any[] = [ 'Found' ]
427
+ if (this.errors) {
428
+ status.push($red(this.errors), this.errors === 1 ? 'error' : 'errors' )
429
+ }
430
+
431
+ if (this.warnings) {
432
+ if (this.errors) status.push('and')
433
+ status.push($ylw(this.warnings), this.warnings === 1 ? 'warning' : 'warnings' )
434
+ }
435
+
436
+ if (this.errors || this.warnings) {
437
+ this._emitter(options, status)
438
+ this._emitter(options, [ '' ])
439
+ }
440
+
441
+ /* Done! */
431
442
  return this
432
443
  }
433
444
  }