@plugjs/plug 0.0.20 → 0.0.22

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.
@@ -30,8 +30,10 @@ __export(runner_exports, {
30
30
  });
31
31
  module.exports = __toCommonJS(runner_exports);
32
32
  var import_mocha = __toESM(require("mocha"));
33
+ var import_assert = require("../../assert.cjs");
33
34
  var import_failure = require("../../failure.cjs");
34
35
  var import_log = require("../../log.cjs");
36
+ var import_paths = require("../../paths.cjs");
35
37
  var import_reporter = require("./reporter.cjs");
36
38
  var Mocha = class {
37
39
  constructor(_options = {}) {
@@ -40,12 +42,20 @@ var Mocha = class {
40
42
  async pipe(files, context) {
41
43
  context.log.notice("");
42
44
  context.log.enter(import_log.NOTICE, (0, import_log.$wht)("Starting Mocha"));
45
+ const { require: require2, ...options } = this._options;
46
+ if (require2) {
47
+ const requiredFile = context.resolve(require2);
48
+ const scriptFile = (0, import_paths.resolveFile)(requiredFile);
49
+ (0, import_assert.assert)(scriptFile, `Mocha setup file ${(0, import_log.$p)(requiredFile)} not found`);
50
+ context.log.debug(`Importing setup script ${(0, import_log.$p)(requiredFile)}`);
51
+ await import(scriptFile);
52
+ }
43
53
  const mocha = new import_mocha.default({
44
54
  diff: true,
45
55
  reporter: import_reporter.PlugReporter,
46
- ...this._options,
56
+ ...options,
47
57
  reporterOptions: {
48
- ...this._options.reporterOptions,
58
+ ...options.reporterOptions,
49
59
  [import_reporter.logSymbol]: context.log
50
60
  },
51
61
  allowUncaught: false,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/runner.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEtB,qBAA6B;AAE7B,iBAA6B;AAG7B,sBAAwC;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,uBAAQ,iBAAK,gBAAgB,CAAC;AAGhD,UAAM,QAAQ,IAAI,aAAAA,QAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,4BAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,4BAAa,KAAK,CAAC;AACxC,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
- "names": ["RealMocha"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AACtB,oBAAuB;AAEvB,qBAA6B;AAE7B,iBAAiC;AACjC,mBAA4B;AAG5B,sBAAwC;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,uBAAQ,iBAAK,gBAAgB,CAAC;AAGhD,UAAM,EAAE,SAAAA,aAAY,QAAQ,IAAI,KAAK;AAGrC,QAAIA,UAAS;AACX,YAAM,eAAe,QAAQ,QAAQA,QAAO;AAC5C,YAAM,iBAAa,0BAAY,YAAY;AAC3C,gCAAO,YAAY,wBAAoB,eAAG,YAAY,aAAa;AACnE,cAAQ,IAAI,MAAM,8BAA0B,eAAG,YAAY,GAAG;AAC9D,YAAM,OAAO;AAAA,IACf;AAGA,UAAM,QAAQ,IAAI,aAAAC,QAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,MACH,iBAAiB;AAAA,QACf,GAAG,QAAQ;AAAA,QACX,CAAC,4BAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,4BAAa,KAAK,CAAC;AACxC,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
+ "names": ["require", "RealMocha"]
6
6
  }
@@ -1,7 +1,9 @@
1
1
  // plugs/mocha/runner.ts
2
2
  import RealMocha from "mocha";
3
+ import { assert } from "../../assert.mjs";
3
4
  import { BuildFailure } from "../../failure.mjs";
4
- import { $wht, NOTICE } from "../../log.mjs";
5
+ import { $p, $wht, NOTICE } from "../../log.mjs";
6
+ import { resolveFile } from "../../paths.mjs";
5
7
  import { logSymbol, PlugReporter } from "./reporter.mjs";
6
8
  var Mocha = class {
7
9
  constructor(_options = {}) {
@@ -10,12 +12,20 @@ var Mocha = class {
10
12
  async pipe(files, context) {
11
13
  context.log.notice("");
12
14
  context.log.enter(NOTICE, $wht("Starting Mocha"));
15
+ const { require: require2, ...options } = this._options;
16
+ if (require2) {
17
+ const requiredFile = context.resolve(require2);
18
+ const scriptFile = resolveFile(requiredFile);
19
+ assert(scriptFile, `Mocha setup file ${$p(requiredFile)} not found`);
20
+ context.log.debug(`Importing setup script ${$p(requiredFile)}`);
21
+ await import(scriptFile);
22
+ }
13
23
  const mocha = new RealMocha({
14
24
  diff: true,
15
25
  reporter: PlugReporter,
16
- ...this._options,
26
+ ...options,
17
27
  reporterOptions: {
18
- ...this._options.reporterOptions,
28
+ ...options.reporterOptions,
19
29
  [logSymbol]: context.log
20
30
  },
21
31
  allowUncaught: false,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/mocha/runner.ts"],
4
- "mappings": ";AAAA,OAAO,eAAe;AAEtB,SAAS,oBAAoB;AAE7B,SAAS,MAAM,cAAc;AAG7B,SAAS,WAAW,oBAAoB;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,QAAQ,KAAK,gBAAgB,CAAC;AAGhD,UAAM,QAAQ,IAAI,UAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,QACf,GAAG,KAAK,SAAS;AAAA,QACjB,CAAC,YAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,aAAa,KAAK,CAAC;AACxC,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
- "names": []
4
+ "mappings": ";AAAA,OAAO,eAAe;AACtB,SAAS,cAAc;AAEvB,SAAS,oBAAoB;AAE7B,SAAS,IAAI,MAAM,cAAc;AACjC,SAAS,mBAAmB;AAG5B,SAAS,WAAW,oBAAoB;AAGxC,IAAqB,QAArB,MAAiD;AAAA,EAE/C,YAA6B,WAAyB,CAAC,GAAG;AAA7B;AAAA,EAA8B;AAAA,EAE3D,MAAM,KAAK,OAAc,SAAiC;AAGxD,YAAQ,IAAI,OAAO,EAAE;AACrB,YAAQ,IAAI,MAAM,QAAQ,KAAK,gBAAgB,CAAC;AAGhD,UAAM,EAAE,SAAAA,aAAY,QAAQ,IAAI,KAAK;AAGrC,QAAIA,UAAS;AACX,YAAM,eAAe,QAAQ,QAAQA,QAAO;AAC5C,YAAM,aAAa,YAAY,YAAY;AAC3C,aAAO,YAAY,oBAAoB,GAAG,YAAY,aAAa;AACnE,cAAQ,IAAI,MAAM,0BAA0B,GAAG,YAAY,GAAG;AAC9D,YAAM,OAAO;AAAA,IACf;AAGA,UAAM,QAAQ,IAAI,UAAU;AAAA,MAC1B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,GAAG;AAAA,MACH,iBAAiB;AAAA,QACf,GAAG,QAAQ;AAAA,QACX,CAAC,YAAY,QAAQ;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,MACf,OAAO;AAAA,IACT,CAAC;AAGD,eAAW,QAAQ,MAAM,cAAc;AAAG,YAAM,QAAQ,IAAI;AAE5D,UAAM,MAAM,eAAe;AAG3B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAI;AACF,cAAM,IAAI,CAAC,aAAa;AACtB,cAAI;AAAU,mBAAO,aAAa,KAAK,CAAC;AACxC,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,eAAO,KAAK;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
+ "names": ["require"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/mocha.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,kBAA+B;AAC/B,mBAA+B;AAAA,IAuC/B,4BAAe,aAAS,6BAAe,YAAW,gBAAgB,CAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,kBAA+B;AAC/B,mBAA+B;AAAA,IAyC/B,4BAAe,aAAS,6BAAe,YAAW,gBAAgB,CAAC;",
5
5
  "names": []
6
6
  }
@@ -20,6 +20,8 @@ export interface MochaOptions {
20
20
  retries?: number;
21
21
  /** Slow threshold value. */
22
22
  slow?: number;
23
+ /** Setup file to import before running Mocha. */
24
+ require?: string;
23
25
  /** Timeout threshold value. */
24
26
  timeout?: number;
25
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/mocha.ts"],
4
- "mappings": ";AAAA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAuC/B,eAAe,SAAS,eAAe,iBAAW,gBAAgB,CAAC;",
4
+ "mappings": ";AAAA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAyC/B,eAAe,SAAS,eAAe,iBAAW,gBAAgB,CAAC;",
5
5
  "names": []
6
6
  }
@@ -70,6 +70,7 @@ async function getCompilerOptions(file, ...override) {
70
70
  if (override.length) {
71
71
  const [overrides, overridesFile, overridesDir] = override;
72
72
  const options = import_typescript.default.convertCompilerOptionsFromJson(overrides, overridesDir, overridesFile);
73
+ delete options.options.configFilePath;
73
74
  result = mergeResults(result, options);
74
75
  }
75
76
  return result;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/options.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,mBAAqE;AACrE,qBAAyB;AAWzB,SAAS,aACL,MACA,UAC6B;AAC/B,SAAO;AAAA,IACL,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS,QAAQ;AAAA,IAChD,QAAQ,CAAE,GAAG,KAAK,QAAQ,GAAG,SAAS,MAAO;AAAA,EAC/C;AACF;AAIA,eAAe,YACX,MACA,QAAwB,CAAE,IAAK,GACO;AACxC,QAAM,UAAM,gCAAkB,IAAI;AAGlC,QAAM,OAAO,UAAM,yBAAS,MAAM,OAAO;AACzC,QAAM,EAAE,QAAQ,MAAM,IAAI,kBAAAA,QAAG,0BAA0B,MAAM,IAAI;AACjE,MAAI;AAAO,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE,KAAM,EAAE;AAGnD,QAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,YAAY,IAAI;AACvD,QAAM,SAAS,kBAAAA,QAAG,+BAA+B,iBAAiB,KAAK,IAAI;AAC3E,MAAI,OAAO,OAAO;AAAQ,WAAO;AAGjC,MAAI,CAAC;AAAa,WAAO;AAGzB,QAAM,UAAM,kCAAoB,KAAK,WAAW;AAGhD,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE;AAAA,MAC9B,aAAa,wCAAwC;AAAA,MACrD,UAAU,kBAAAA,QAAG,mBAAmB;AAAA,MAChC,MAAM;AAAA,MACN,MAAM,kBAAAA,QAAG,iBAAiB,MAAM,MAAM,kBAAAA,QAAG,aAAa,MAAM,OAAO,kBAAAA,QAAG,WAAW,IAAI;AAAA,MACrF,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,CAAE,EAAE;AAAA,EACN;AAGA,SAAO,aAAa,MAAM,YAAY,KAAK,CAAE,GAAG,OAAO,GAAI,CAAC,GAAG,MAAM;AACvE;AAgBA,eAAsB,mBAClB,SACG,UACmC;AACxC,MAAI,SAAwC,EAAE,SAAS,kBAAAA,QAAG,0BAA0B,GAAG,QAAQ,CAAC,EAAE;AAGlG,MAAI;AAAM,aAAS,aAAa,QAAQ,MAAM,YAAY,IAAI,CAAC;AAG/D,MAAI,SAAS,QAAQ;AACnB,UAAM,CAAE,WAAW,eAAe,YAAa,IAAI;AACnD,UAAM,UAAU,kBAAAA,QAAG,+BAA+B,WAAW,cAAc,aAAa;AACxF,aAAS,aAAa,QAAQ,OAAO;AAAA,EACvC;AAGA,SAAO;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,mBAAqE;AACrE,qBAAyB;AAWzB,SAAS,aACL,MACA,UAC6B;AAC/B,SAAO;AAAA,IACL,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS,QAAQ;AAAA,IAChD,QAAQ,CAAE,GAAG,KAAK,QAAQ,GAAG,SAAS,MAAO;AAAA,EAC/C;AACF;AAIA,eAAe,YACX,MACA,QAAwB,CAAE,IAAK,GACO;AACxC,QAAM,UAAM,gCAAkB,IAAI;AAGlC,QAAM,OAAO,UAAM,yBAAS,MAAM,OAAO;AACzC,QAAM,EAAE,QAAQ,MAAM,IAAI,kBAAAA,QAAG,0BAA0B,MAAM,IAAI;AACjE,MAAI;AAAO,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE,KAAM,EAAE;AAGnD,QAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,YAAY,IAAI;AACvD,QAAM,SAAS,kBAAAA,QAAG,+BAA+B,iBAAiB,KAAK,IAAI;AAC3E,MAAI,OAAO,OAAO;AAAQ,WAAO;AAGjC,MAAI,CAAC;AAAa,WAAO;AAGzB,QAAM,UAAM,kCAAoB,KAAK,WAAW;AAGhD,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE;AAAA,MAC9B,aAAa,wCAAwC;AAAA,MACrD,UAAU,kBAAAA,QAAG,mBAAmB;AAAA,MAChC,MAAM;AAAA,MACN,MAAM,kBAAAA,QAAG,iBAAiB,MAAM,MAAM,kBAAAA,QAAG,aAAa,MAAM,OAAO,kBAAAA,QAAG,WAAW,IAAI;AAAA,MACrF,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,CAAE,EAAE;AAAA,EACN;AAGA,SAAO,aAAa,MAAM,YAAY,KAAK,CAAE,GAAG,OAAO,GAAI,CAAC,GAAG,MAAM;AACvE;AAgBA,eAAsB,mBAClB,SACG,UACmC;AACxC,MAAI,SAAwC,EAAE,SAAS,kBAAAA,QAAG,0BAA0B,GAAG,QAAQ,CAAC,EAAE;AAGlG,MAAI;AAAM,aAAS,aAAa,QAAQ,MAAM,YAAY,IAAI,CAAC;AAG/D,MAAI,SAAS,QAAQ;AACnB,UAAM,CAAE,WAAW,eAAe,YAAa,IAAI;AACnD,UAAM,UAAU,kBAAAA,QAAG,+BAA+B,WAAW,cAAc,aAAa;AACxF,WAAO,QAAQ,QAAQ;AACvB,aAAS,aAAa,QAAQ,OAAO;AAAA,EACvC;AAGA,SAAO;AACT;",
5
5
  "names": ["ts"]
6
6
  }
@@ -40,6 +40,7 @@ async function getCompilerOptions(file, ...override) {
40
40
  if (override.length) {
41
41
  const [overrides, overridesFile, overridesDir] = override;
42
42
  const options = ts.convertCompilerOptionsFromJson(overrides, overridesDir, overridesFile);
43
+ delete options.options.configFilePath;
43
44
  result = mergeResults(result, options);
44
45
  }
45
46
  return result;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/options.ts"],
4
- "mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAuB,mBAAmB,2BAA2B;AACrE,SAAS,gBAAgB;AAWzB,SAAS,aACL,MACA,UAC6B;AAC/B,SAAO;AAAA,IACL,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS,QAAQ;AAAA,IAChD,QAAQ,CAAE,GAAG,KAAK,QAAQ,GAAG,SAAS,MAAO;AAAA,EAC/C;AACF;AAIA,eAAe,YACX,MACA,QAAwB,CAAE,IAAK,GACO;AACxC,QAAM,MAAM,kBAAkB,IAAI;AAGlC,QAAM,OAAO,MAAM,SAAS,MAAM,OAAO;AACzC,QAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,0BAA0B,MAAM,IAAI;AACjE,MAAI;AAAO,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE,KAAM,EAAE;AAGnD,QAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,YAAY,IAAI;AACvD,QAAM,SAAS,GAAG,+BAA+B,iBAAiB,KAAK,IAAI;AAC3E,MAAI,OAAO,OAAO;AAAQ,WAAO;AAGjC,MAAI,CAAC;AAAa,WAAO;AAGzB,QAAM,MAAM,oBAAoB,KAAK,WAAW;AAGhD,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE;AAAA,MAC9B,aAAa,wCAAwC;AAAA,MACrD,UAAU,GAAG,mBAAmB;AAAA,MAChC,MAAM;AAAA,MACN,MAAM,GAAG,iBAAiB,MAAM,MAAM,GAAG,aAAa,MAAM,OAAO,GAAG,WAAW,IAAI;AAAA,MACrF,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,CAAE,EAAE;AAAA,EACN;AAGA,SAAO,aAAa,MAAM,YAAY,KAAK,CAAE,GAAG,OAAO,GAAI,CAAC,GAAG,MAAM;AACvE;AAgBA,eAAsB,mBAClB,SACG,UACmC;AACxC,MAAI,SAAwC,EAAE,SAAS,GAAG,0BAA0B,GAAG,QAAQ,CAAC,EAAE;AAGlG,MAAI;AAAM,aAAS,aAAa,QAAQ,MAAM,YAAY,IAAI,CAAC;AAG/D,MAAI,SAAS,QAAQ;AACnB,UAAM,CAAE,WAAW,eAAe,YAAa,IAAI;AACnD,UAAM,UAAU,GAAG,+BAA+B,WAAW,cAAc,aAAa;AACxF,aAAS,aAAa,QAAQ,OAAO;AAAA,EACvC;AAGA,SAAO;AACT;",
4
+ "mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAuB,mBAAmB,2BAA2B;AACrE,SAAS,gBAAgB;AAWzB,SAAS,aACL,MACA,UAC6B;AAC/B,SAAO;AAAA,IACL,SAAS,EAAE,GAAG,KAAK,SAAS,GAAG,SAAS,QAAQ;AAAA,IAChD,QAAQ,CAAE,GAAG,KAAK,QAAQ,GAAG,SAAS,MAAO;AAAA,EAC/C;AACF;AAIA,eAAe,YACX,MACA,QAAwB,CAAE,IAAK,GACO;AACxC,QAAM,MAAM,kBAAkB,IAAI;AAGlC,QAAM,OAAO,MAAM,SAAS,MAAM,OAAO;AACzC,QAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,0BAA0B,MAAM,IAAI;AACjE,MAAI;AAAO,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE,KAAM,EAAE;AAGnD,QAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,YAAY,IAAI;AACvD,QAAM,SAAS,GAAG,+BAA+B,iBAAiB,KAAK,IAAI;AAC3E,MAAI,OAAO,OAAO;AAAQ,WAAO;AAGjC,MAAI,CAAC;AAAa,WAAO;AAGzB,QAAM,MAAM,oBAAoB,KAAK,WAAW;AAGhD,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAE;AAAA,MAC9B,aAAa,wCAAwC;AAAA,MACrD,UAAU,GAAG,mBAAmB;AAAA,MAChC,MAAM;AAAA,MACN,MAAM,GAAG,iBAAiB,MAAM,MAAM,GAAG,aAAa,MAAM,OAAO,GAAG,WAAW,IAAI;AAAA,MACrF,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,CAAE,EAAE;AAAA,EACN;AAGA,SAAO,aAAa,MAAM,YAAY,KAAK,CAAE,GAAG,OAAO,GAAI,CAAC,GAAG,MAAM;AACvE;AAgBA,eAAsB,mBAClB,SACG,UACmC;AACxC,MAAI,SAAwC,EAAE,SAAS,GAAG,0BAA0B,GAAG,QAAQ,CAAC,EAAE;AAGlG,MAAI;AAAM,aAAS,aAAa,QAAQ,MAAM,YAAY,IAAI,CAAC;AAG/D,MAAI,SAAS,QAAQ;AACnB,UAAM,CAAE,WAAW,eAAe,YAAa,IAAI;AACnD,UAAM,UAAU,GAAG,+BAA+B,WAAW,cAAc,aAAa;AACxF,WAAO,QAAQ,QAAQ;AACvB,aAAS,aAAa,QAAQ,OAAO;AAAA,EACvC;AAGA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -39,6 +39,7 @@ var import_options = require("../../utils/options.cjs");
39
39
  var import_compiler = require("./compiler.cjs");
40
40
  var import_options2 = require("./options.cjs");
41
41
  var import_report = require("./report.cjs");
42
+ var import_walk = require("../../utils/walk.cjs");
42
43
  var Tsc = class {
43
44
  _tsconfig;
44
45
  _options;
@@ -50,7 +51,7 @@ var Tsc = class {
50
51
  async pipe(files, context) {
51
52
  const baseDir = context.resolve(".");
52
53
  const report = context.log.report("TypeScript Report");
53
- const overrides = { ...this._options };
54
+ const { extraTypesDir, ...overrides } = { ...this._options };
54
55
  const sourcesConfig = (0, import_paths.resolveFile)(files.directory, "tsconfig.json");
55
56
  const tsconfig = this._tsconfig ? context.resolve(this._tsconfig) : sourcesConfig || (0, import_paths.resolveFile)(context.resolve("tsconfig.json"));
56
57
  let rootDir;
@@ -83,6 +84,14 @@ var Tsc = class {
83
84
  for (const path of paths)
84
85
  import_log.log.trace(`Compiling "${(0, import_log.$p)(path)}"`);
85
86
  import_log.log.info("Compiling", paths.length, "files");
87
+ if (extraTypesDir) {
88
+ const directory = context.resolve(extraTypesDir);
89
+ for await (const file of (0, import_walk.walk)(directory, ["**/*.d.ts"])) {
90
+ const path = (0, import_paths.resolveAbsolutePath)(directory, file);
91
+ import_log.log.debug(`Including extra type file "${(0, import_log.$p)(path)}"`);
92
+ paths.push(path);
93
+ }
94
+ }
86
95
  import_log.log.debug("Compliation options", options);
87
96
  const host = new import_compiler.TypeScriptHost(rootDir);
88
97
  const program = import_typescript.default.createProgram(paths, options, host, void 0, errors);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/runner.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["import_options", "ts"]
6
6
  }
@@ -9,6 +9,7 @@ import { parseOptions } from "../../utils/options.mjs";
9
9
  import { TypeScriptHost } from "./compiler.mjs";
10
10
  import { getCompilerOptions } from "./options.mjs";
11
11
  import { updateReport } from "./report.mjs";
12
+ import { walk } from "../../utils/walk.mjs";
12
13
  var Tsc = class {
13
14
  _tsconfig;
14
15
  _options;
@@ -20,7 +21,7 @@ var Tsc = class {
20
21
  async pipe(files, context) {
21
22
  const baseDir = context.resolve(".");
22
23
  const report = context.log.report("TypeScript Report");
23
- const overrides = { ...this._options };
24
+ const { extraTypesDir, ...overrides } = { ...this._options };
24
25
  const sourcesConfig = resolveFile(files.directory, "tsconfig.json");
25
26
  const tsconfig = this._tsconfig ? context.resolve(this._tsconfig) : sourcesConfig || resolveFile(context.resolve("tsconfig.json"));
26
27
  let rootDir;
@@ -53,6 +54,14 @@ var Tsc = class {
53
54
  for (const path of paths)
54
55
  log.trace(`Compiling "${$p(path)}"`);
55
56
  log.info("Compiling", paths.length, "files");
57
+ if (extraTypesDir) {
58
+ const directory = context.resolve(extraTypesDir);
59
+ for await (const file of walk(directory, ["**/*.d.ts"])) {
60
+ const path = resolveAbsolutePath(directory, file);
61
+ log.debug(`Including extra type file "${$p(path)}"`);
62
+ paths.push(path);
63
+ }
64
+ }
56
65
  log.debug("Compliation options", options);
57
66
  const host = new TypeScriptHost(rootDir);
58
67
  const program = ts.createProgram(paths, options, host, void 0, errors);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugs/tsc/runner.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,21 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
2
15
 
3
16
  // plugs/tsc.ts
17
+ var tsc_exports = {};
18
+ module.exports = __toCommonJS(tsc_exports);
4
19
  var import_fork = require("../fork.cjs");
5
20
  var import_paths = require("../paths.cjs");
6
21
  (0, import_fork.installForking)("tsc", (0, import_paths.requireResolve)(__filename, "./tsc/runner"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/tsc.ts"],
4
- "mappings": ";;;AAEA,kBAA+B;AAC/B,mBAA+B;AAAA,IAyC/B,4BAAe,WAAO,6BAAe,YAAW,cAAc,CAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAEA,kBAA+B;AAC/B,mBAA+B;AAAA,IAsD/B,4BAAe,WAAO,6BAAe,YAAW,cAAc,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,4 +1,16 @@
1
1
  import type { CompilerOptions } from 'typescript';
2
+ /** TypeScript Compiler options with some additional properties */
3
+ export interface ExtendedCompilerOptions extends CompilerOptions {
4
+ /**
5
+ * An additional directory containing a set of `.d.ts` files which will
6
+ * be part of the compilation input, but not of the output.
7
+ *
8
+ * This can be useful when requiring (or fixing) specific types while
9
+ * compiling a project, but the definition of those types does not affect
10
+ * the resulting files (e.g. used only internally).
11
+ */
12
+ extraTypesDir?: string | undefined;
13
+ }
2
14
  declare module '../pipe' {
3
15
  interface Pipe {
4
16
  /**
@@ -18,19 +30,19 @@ declare module '../pipe' {
18
30
  * over the input source files, using the default `tsconfig.json` file
19
31
  * and overriding some options
20
32
  *
21
- * @param options {@link CompilerOptions | Options} overriding what's
22
- * currently specified in the default `tsconfig.json`.
33
+ * @param options {@link ExtendedCompilerOptions | Options} overriding
34
+ * the contents of the default `tsconfig.json`.
23
35
  */
24
- tsc(options: CompilerOptions): Pipe;
36
+ tsc(options: ExtendedCompilerOptions): Pipe;
25
37
  /**
26
38
  * Run the {@link https://www.typescriptlang.org/ TypeScript Compiler}
27
39
  * over the input source files, specifying the `tsconfig.json` file
28
40
  * and overriding some options
29
41
  *
30
42
  * @param configFile The `tsconfig.json` file to use.
31
- * @param options {@link CompilerOptions | Options} overriding what's
32
- * currently specified in the specified `tsconfig.json`.
43
+ * @param options {@link ExtendedCompilerOptions | Options} overriding
44
+ * the contents of the specified `tsconfig.json`.
33
45
  */
34
- tsc(configFile: string, options: CompilerOptions): Pipe;
46
+ tsc(configFile: string, options: ExtendedCompilerOptions): Pipe;
35
47
  }
36
48
  }
@@ -1,15 +1,5 @@
1
- var __getOwnPropNames = Object.getOwnPropertyNames;
2
- var __commonJS = (cb, mod) => function __require() {
3
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
- };
5
-
6
1
  // plugs/tsc.ts
7
2
  import { installForking } from "../fork.mjs";
8
3
  import { requireResolve } from "../paths.mjs";
9
- var require_tsc = __commonJS({
10
- "plugs/tsc.ts"() {
11
- installForking("tsc", requireResolve(import.meta.url, "./tsc/runner"));
12
- }
13
- });
14
- export default require_tsc();
4
+ installForking("tsc", requireResolve(import.meta.url, "./tsc/runner"));
15
5
  //# sourceMappingURL=tsc.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugs/tsc.ts"],
4
- "mappings": ";;;;;;AAEA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAH/B;AAAA;AA4CA,mBAAe,OAAO,eAAe,iBAAW,cAAc,CAAC;AAAA;AAAA;",
4
+ "mappings": ";AAEA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAsD/B,eAAe,OAAO,eAAe,iBAAW,cAAc,CAAC;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plugjs/plug",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -1,8 +1,10 @@
1
1
  import RealMocha from 'mocha' // Mocha types pollute the global scope!
2
+ import { assert } from '../../assert'
2
3
 
3
4
  import { BuildFailure } from '../../failure'
4
5
  import { Files } from '../../files'
5
- import { $wht, NOTICE } from '../../log'
6
+ import { $p, $wht, NOTICE } from '../../log'
7
+ import { resolveFile } from '../../paths'
6
8
  import { Context, PipeParameters, Plug } from '../../pipe'
7
9
  import { MochaOptions } from '../mocha'
8
10
  import { logSymbol, PlugReporter } from './reporter'
@@ -18,13 +20,25 @@ export default class Mocha implements Plug<void> {
18
20
  context.log.notice('') // empty line
19
21
  context.log.enter(NOTICE, $wht('Starting Mocha'))
20
22
 
23
+ // Expand our options
24
+ const { require, ...options } = this._options
25
+
26
+ // See if we require a setup script...
27
+ if (require) {
28
+ const requiredFile = context.resolve(require)
29
+ const scriptFile = resolveFile(requiredFile)
30
+ assert(scriptFile, `Mocha setup file ${$p(requiredFile)} not found`)
31
+ context.log.debug(`Importing setup script ${$p(requiredFile)}`)
32
+ await import(scriptFile)
33
+ }
34
+
21
35
  // Create the mocha runner
22
36
  const mocha = new RealMocha({
23
37
  diff: true, // by defaut enable diffs
24
38
  reporter: PlugReporter, // default to our reporter
25
- ...this._options, // override defaults with all other options
39
+ ...options, // override defaults with all other options
26
40
  reporterOptions: {
27
- ...this._options.reporterOptions,
41
+ ...options.reporterOptions,
28
42
  [logSymbol]: context.log, // always force a log
29
43
  },
30
44
  allowUncaught: false, // never allow uncaught exceptions
@@ -23,6 +23,8 @@ export interface MochaOptions {
23
23
  retries?: number,
24
24
  /** Slow threshold value. */
25
25
  slow?: number,
26
+ /** Setup file to import before running Mocha. */
27
+ require?: string,
26
28
  /** Timeout threshold value. */
27
29
  timeout?: number,
28
30
  }
@@ -89,6 +89,7 @@ export async function getCompilerOptions(
89
89
  if (override.length) {
90
90
  const [ overrides, overridesFile, overridesDir ] = override
91
91
  const options = ts.convertCompilerOptionsFromJson(overrides, overridesDir, overridesFile)
92
+ delete options.options.configFilePath // remove build file name...
92
93
  result = mergeResults(result, options)
93
94
  }
94
95
 
@@ -1,5 +1,7 @@
1
1
  import ts from 'typescript' // TypeScript does NOT support ESM modules
2
2
 
3
+ import type { ExtendedCompilerOptions } from '../tsc'
4
+
3
5
  import { assertPromises } from '../../assert'
4
6
  import { BuildFailure } from '../../failure'
5
7
  import { Files } from '../../files'
@@ -10,6 +12,7 @@ import { parseOptions } from '../../utils/options'
10
12
  import { TypeScriptHost } from './compiler'
11
13
  import { getCompilerOptions } from './options'
12
14
  import { updateReport } from './report'
15
+ import { walk } from '../../utils/walk'
13
16
 
14
17
  /* ========================================================================== *
15
18
  * WORKER PLUG *
@@ -17,7 +20,7 @@ import { updateReport } from './report'
17
20
 
18
21
  export default class Tsc implements Plug<Files> {
19
22
  private readonly _tsconfig?: string
20
- private readonly _options: ts.CompilerOptions
23
+ private readonly _options: ExtendedCompilerOptions
21
24
 
22
25
  constructor(...args: PipeParameters<'tsc'>) {
23
26
  const { params: [ tsconfig ], options } = parseOptions(args, {})
@@ -28,7 +31,7 @@ export default class Tsc implements Plug<Files> {
28
31
  async pipe(files: Files, context: Context): Promise<Files> {
29
32
  const baseDir = context.resolve('.') // "this" directory, base of all relative paths
30
33
  const report = context.log.report('TypeScript Report') // report used throughout
31
- const overrides = { ...this._options } // clone our options
34
+ const { extraTypesDir, ...overrides } = { ...this._options } // clone our options
32
35
 
33
36
  /*
34
37
  * The "tsconfig" file is either specified, or (if existing) first checked
@@ -76,8 +79,20 @@ export default class Tsc implements Plug<Files> {
76
79
  /* Prep for compilation */
77
80
  const paths = [ ...files.absolutePaths() ]
78
81
  for (const path of paths) log.trace(`Compiling "${$p(path)}"`)
79
-
80
82
  log.info('Compiling', paths.length, 'files')
83
+
84
+ /* If we have an extra types directory, add all the .d.ts files in there */
85
+ if (extraTypesDir) {
86
+ const directory = context.resolve(extraTypesDir)
87
+
88
+ for await (const file of walk(directory, [ '**/*.d.ts' ])) {
89
+ const path = resolveAbsolutePath(directory, file)
90
+ log.debug(`Including extra type file "${$p(path)}"`)
91
+ paths.push(path)
92
+ }
93
+ }
94
+
95
+ /* Log out what we'll be our final compilation options */
81
96
  log.debug('Compliation options', options)
82
97
 
83
98
  /* Typescript host, create program and compile */
package/src/plugs/tsc.ts CHANGED
@@ -3,6 +3,19 @@ import type { CompilerOptions } from 'typescript'
3
3
  import { installForking } from '../fork'
4
4
  import { requireResolve } from '../paths'
5
5
 
6
+ /** TypeScript Compiler options with some additional properties */
7
+ export interface ExtendedCompilerOptions extends CompilerOptions {
8
+ /**
9
+ * An additional directory containing a set of `.d.ts` files which will
10
+ * be part of the compilation input, but not of the output.
11
+ *
12
+ * This can be useful when requiring (or fixing) specific types while
13
+ * compiling a project, but the definition of those types does not affect
14
+ * the resulting files (e.g. used only internally).
15
+ */
16
+ extraTypesDir?: string | undefined
17
+ }
18
+
6
19
  declare module '../pipe' {
7
20
  export interface Pipe {
8
21
  /**
@@ -24,10 +37,10 @@ declare module '../pipe' {
24
37
  * over the input source files, using the default `tsconfig.json` file
25
38
  * and overriding some options
26
39
  *
27
- * @param options {@link CompilerOptions | Options} overriding what's
28
- * currently specified in the default `tsconfig.json`.
40
+ * @param options {@link ExtendedCompilerOptions | Options} overriding
41
+ * the contents of the default `tsconfig.json`.
29
42
  */
30
- tsc(options: CompilerOptions): Pipe
43
+ tsc(options: ExtendedCompilerOptions): Pipe
31
44
 
32
45
  /**
33
46
  * Run the {@link https://www.typescriptlang.org/ TypeScript Compiler}
@@ -35,10 +48,10 @@ declare module '../pipe' {
35
48
  * and overriding some options
36
49
  *
37
50
  * @param configFile The `tsconfig.json` file to use.
38
- * @param options {@link CompilerOptions | Options} overriding what's
39
- * currently specified in the specified `tsconfig.json`.
51
+ * @param options {@link ExtendedCompilerOptions | Options} overriding
52
+ * the contents of the specified `tsconfig.json`.
40
53
  */
41
- tsc(configFile: string, options: CompilerOptions): Pipe
54
+ tsc(configFile: string, options: ExtendedCompilerOptions): Pipe
42
55
  }
43
56
  }
44
57