@c9up/helix 0.1.7 → 0.1.9

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 (124) hide show
  1. package/README.md +282 -11
  2. package/bin/helix.js +329 -13
  3. package/dist/cli/failed-cache.d.ts +27 -0
  4. package/dist/cli/failed-cache.d.ts.map +1 -0
  5. package/dist/cli/failed-cache.js +64 -0
  6. package/dist/cli/failed-cache.js.map +1 -0
  7. package/dist/cli/glob.d.ts +36 -0
  8. package/dist/cli/glob.d.ts.map +1 -0
  9. package/dist/cli/glob.js +185 -0
  10. package/dist/cli/glob.js.map +1 -0
  11. package/dist/cli/native.d.ts +4 -0
  12. package/dist/cli/native.d.ts.map +1 -1
  13. package/dist/cli/native.js.map +1 -1
  14. package/dist/cli/pool.d.ts +11 -0
  15. package/dist/cli/pool.d.ts.map +1 -1
  16. package/dist/cli/pool.js +12 -0
  17. package/dist/cli/pool.js.map +1 -1
  18. package/dist/cli/reporter.d.ts +11 -0
  19. package/dist/cli/reporter.d.ts.map +1 -1
  20. package/dist/cli/reporter.js +53 -0
  21. package/dist/cli/reporter.js.map +1 -1
  22. package/dist/cli/run.d.ts +41 -0
  23. package/dist/cli/run.d.ts.map +1 -1
  24. package/dist/cli/run.js +181 -21
  25. package/dist/cli/run.js.map +1 -1
  26. package/dist/cli/runner.d.ts +19 -0
  27. package/dist/cli/runner.d.ts.map +1 -0
  28. package/dist/cli/runner.js +15 -0
  29. package/dist/cli/runner.js.map +1 -0
  30. package/dist/cli/suites.d.ts +102 -0
  31. package/dist/cli/suites.d.ts.map +1 -0
  32. package/dist/cli/suites.js +226 -0
  33. package/dist/cli/suites.js.map +1 -0
  34. package/dist/index.d.ts +10 -9
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +9 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/japa/core.d.ts +106 -0
  39. package/dist/japa/core.d.ts.map +1 -0
  40. package/dist/japa/core.js +128 -0
  41. package/dist/japa/core.js.map +1 -0
  42. package/dist/runtime/assert.d.ts +174 -0
  43. package/dist/runtime/assert.d.ts.map +1 -0
  44. package/dist/runtime/assert.js +591 -0
  45. package/dist/runtime/assert.js.map +1 -0
  46. package/dist/runtime/asymmetric.d.ts +34 -0
  47. package/dist/runtime/asymmetric.d.ts.map +1 -0
  48. package/dist/runtime/asymmetric.js +78 -0
  49. package/dist/runtime/asymmetric.js.map +1 -0
  50. package/dist/runtime/bootstrap.d.ts +47 -0
  51. package/dist/runtime/bootstrap.d.ts.map +1 -0
  52. package/dist/runtime/bootstrap.js +166 -0
  53. package/dist/runtime/bootstrap.js.map +1 -0
  54. package/dist/runtime/cli-args.d.ts +77 -0
  55. package/dist/runtime/cli-args.d.ts.map +1 -0
  56. package/dist/runtime/cli-args.js +85 -0
  57. package/dist/runtime/cli-args.js.map +1 -0
  58. package/dist/runtime/configure.d.ts +214 -0
  59. package/dist/runtime/configure.d.ts.map +1 -0
  60. package/dist/runtime/configure.js +164 -0
  61. package/dist/runtime/configure.js.map +1 -0
  62. package/dist/runtime/context.d.ts +84 -0
  63. package/dist/runtime/context.d.ts.map +1 -0
  64. package/dist/runtime/context.js +146 -0
  65. package/dist/runtime/context.js.map +1 -0
  66. package/dist/runtime/emitter.d.ts +141 -0
  67. package/dist/runtime/emitter.d.ts.map +1 -0
  68. package/dist/runtime/emitter.js +79 -0
  69. package/dist/runtime/emitter.js.map +1 -0
  70. package/dist/runtime/equals.d.ts.map +1 -1
  71. package/dist/runtime/equals.js +21 -0
  72. package/dist/runtime/equals.js.map +1 -1
  73. package/dist/runtime/expect.d.ts +22 -1
  74. package/dist/runtime/expect.d.ts.map +1 -1
  75. package/dist/runtime/expect.js +15 -1
  76. package/dist/runtime/expect.js.map +1 -1
  77. package/dist/runtime/global-hooks.d.ts +31 -0
  78. package/dist/runtime/global-hooks.d.ts.map +1 -0
  79. package/dist/runtime/global-hooks.js +126 -0
  80. package/dist/runtime/global-hooks.js.map +1 -0
  81. package/dist/runtime/index.d.ts +16 -3
  82. package/dist/runtime/index.d.ts.map +1 -1
  83. package/dist/runtime/index.js +7 -1
  84. package/dist/runtime/index.js.map +1 -1
  85. package/dist/runtime/matchers.d.ts +5 -0
  86. package/dist/runtime/matchers.d.ts.map +1 -1
  87. package/dist/runtime/matchers.js +117 -0
  88. package/dist/runtime/matchers.js.map +1 -1
  89. package/dist/runtime/run.d.ts +63 -1
  90. package/dist/runtime/run.d.ts.map +1 -1
  91. package/dist/runtime/run.js +696 -79
  92. package/dist/runtime/run.js.map +1 -1
  93. package/dist/runtime/runner.d.ts +97 -0
  94. package/dist/runtime/runner.d.ts.map +1 -0
  95. package/dist/runtime/runner.js +160 -0
  96. package/dist/runtime/runner.js.map +1 -0
  97. package/dist/runtime/suite-config.d.ts +23 -0
  98. package/dist/runtime/suite-config.d.ts.map +1 -0
  99. package/dist/runtime/suite-config.js +52 -0
  100. package/dist/runtime/suite-config.js.map +1 -0
  101. package/dist/runtime/suite-taps.d.ts +122 -0
  102. package/dist/runtime/suite-taps.d.ts.map +1 -0
  103. package/dist/runtime/suite-taps.js +218 -0
  104. package/dist/runtime/suite-taps.js.map +1 -0
  105. package/dist/runtime/suite.d.ts +316 -10
  106. package/dist/runtime/suite.d.ts.map +1 -1
  107. package/dist/runtime/suite.js +307 -8
  108. package/dist/runtime/suite.js.map +1 -1
  109. package/dist/runtime/test-context.d.ts +88 -1
  110. package/dist/runtime/test-context.d.ts.map +1 -1
  111. package/dist/runtime/test-context.js +170 -2
  112. package/dist/runtime/test-context.js.map +1 -1
  113. package/dist/runtime/vi/fake-timers.d.ts.map +1 -1
  114. package/dist/runtime/vi/fake-timers.js +3 -4
  115. package/dist/runtime/vi/fake-timers.js.map +1 -1
  116. package/dist/runtime/worker.d.ts.map +1 -1
  117. package/dist/runtime/worker.js +87 -5
  118. package/dist/runtime/worker.js.map +1 -1
  119. package/index.darwin-arm64.node +0 -0
  120. package/index.darwin-x64.node +0 -0
  121. package/index.linux-arm64-gnu.node +0 -0
  122. package/index.linux-x64-gnu.node +0 -0
  123. package/index.win32-x64-msvc.node +0 -0
  124. package/package.json +10 -1
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Runner events — the Japa `Emitter` surface.
3
+ *
4
+ * Japa's plugin/reporter topology is built on an event emitter: a plugin
5
+ * receives `{ config, cliArgs, runner, emitter }` and subscribes to
6
+ * `runner:start`, `suite:start`, `group:start`, `test:start`, … to observe the
7
+ * run. Helix emits the SAME event names with the SAME node shapes
8
+ * (`TestStartNode`, `TestEndNode`, `GroupStartNode`, …) so a Japa reporter or
9
+ * plugin can be ported without rewriting its listeners.
10
+ *
11
+ * One named deviation from `@japa/core`: `suite:start` / `suite:end` carry the
12
+ * test FILE name. Helix runs one process per file, so the file is what a
13
+ * worker-side listener can see of a suite.
14
+ *
15
+ * `errors[].error` is the thrown `Error` itself, as in Japa — the emitter runs
16
+ * in the worker, where the original is still around. Only an error rebuilt from
17
+ * an IPC frame (which can carry data only) degrades to the {@link
18
+ * SerializedError} shape, which keeps the same `name`/`message`/`stack` fields.
19
+ */
20
+ import type { SerializedError } from "./run.js";
21
+ /** The lifecycle phase an error was raised in (Japa parity). */
22
+ export type ErrorPhase = "setup" | "test" | "setup:cleanup" | "teardown" | "teardown:cleanup" | "test:cleanup";
23
+ /**
24
+ * One captured failure, tagged with the phase it happened in. `error` is the
25
+ * thrown `Error`; it degrades to {@link SerializedError} — same `name`,
26
+ * `message` and `stack` — only for a result rebuilt from an IPC frame.
27
+ */
28
+ export interface EmittedError {
29
+ phase: ErrorPhase;
30
+ error: Error | SerializedError;
31
+ }
32
+ /** A test title, before and after dataset interpolation (Japa parity). */
33
+ export interface EmittedTitle {
34
+ original: string;
35
+ expanded: string;
36
+ }
37
+ /** The dataset row a test instance was expanded from. */
38
+ export interface EmittedDataset {
39
+ size: number;
40
+ index: number;
41
+ row: unknown;
42
+ }
43
+ /**
44
+ * Shared shape of `test:start` / `test:end` — Japa's `TestOptions`, field for
45
+ * field. Only `title`, `tags`, `timeout`, `meta` and `isPinned` always carry a
46
+ * value; the rest appear when the corresponding modifier was used, so a
47
+ * reporter that probes for a key sees what Japa would show it.
48
+ */
49
+ interface TestNodeBase {
50
+ title: EmittedTitle;
51
+ tags: string[];
52
+ timeout: number;
53
+ waitsForDone?: boolean;
54
+ /** The test body, as Japa hands it over. Absent on a `todo`. */
55
+ executor?: (...args: never[]) => unknown;
56
+ retries?: number;
57
+ retryAttempt?: number;
58
+ isTodo?: boolean;
59
+ isSkipped?: boolean;
60
+ isFailing?: boolean;
61
+ skipReason?: string;
62
+ failReason?: string;
63
+ isPinned: boolean;
64
+ meta: Record<string, unknown>;
65
+ dataset?: EmittedDataset;
66
+ }
67
+ /** Payload of `test:start`. */
68
+ export type TestStartNode = TestNodeBase;
69
+ /** Payload of `test:end`. */
70
+ export type TestEndNode = TestNodeBase & {
71
+ duration: number;
72
+ hasError: boolean;
73
+ errors: EmittedError[];
74
+ };
75
+ /** Payload of `group:start`. */
76
+ export interface GroupStartNode {
77
+ title: string;
78
+ meta: Record<string, unknown>;
79
+ }
80
+ /** Payload of `group:end`. */
81
+ export type GroupEndNode = GroupStartNode & {
82
+ hasError: boolean;
83
+ errors: EmittedError[];
84
+ };
85
+ /** Payload of `suite:start` — helix's suite is the test file. */
86
+ export interface SuiteStartNode {
87
+ name: string;
88
+ }
89
+ /** Payload of `suite:end`. */
90
+ export type SuiteEndNode = SuiteStartNode & {
91
+ hasError: boolean;
92
+ errors: EmittedError[];
93
+ };
94
+ /**
95
+ * Payload of `runner:start`. Japa types this as `{}`; helix spells the same
96
+ * "no fields" shape as an empty record so no lint suppression is needed.
97
+ */
98
+ export type RunnerStartNode = Record<string, never>;
99
+ /** Payload of `runner:end`. */
100
+ export interface RunnerEndNode {
101
+ hasError: boolean;
102
+ }
103
+ /** Every event the runtime emits, with its payload (Japa `RunnerEvents`). */
104
+ export interface RunnerEvents {
105
+ "test:start": TestStartNode;
106
+ "test:end": TestEndNode;
107
+ "group:start": GroupStartNode;
108
+ "group:end": GroupEndNode;
109
+ "suite:start": SuiteStartNode;
110
+ "suite:end": SuiteEndNode;
111
+ "runner:start": RunnerStartNode;
112
+ "runner:end": RunnerEndNode;
113
+ }
114
+ /** A listener for one event. */
115
+ export type EventHandler<E extends keyof RunnerEvents> = (payload: RunnerEvents[E]) => void;
116
+ /**
117
+ * A typed event emitter over {@link RunnerEvents}. Deliberately minimal — `on`
118
+ * / `once` / `off` / `emit`, the surface a Japa reporter or plugin uses. A
119
+ * throwing listener is reported on stderr and never fails the run.
120
+ */
121
+ export declare class Emitter {
122
+ #private;
123
+ /** Subscribe to an event. Returns `this` for chaining. */
124
+ on<E extends keyof RunnerEvents>(event: E, handler: EventHandler<E>): this;
125
+ /** Subscribe to the next occurrence of an event only. */
126
+ once<E extends keyof RunnerEvents>(event: E, handler: EventHandler<E>): this;
127
+ /** Remove a previously registered listener. */
128
+ off<E extends keyof RunnerEvents>(event: E, handler: EventHandler<E>): this;
129
+ /** Drop every listener (used between runs in the same process). */
130
+ clear(): void;
131
+ /** Broadcast an event. Listener failures are isolated. */
132
+ emit<E extends keyof RunnerEvents>(event: E, payload: RunnerEvents[E]): void;
133
+ }
134
+ /**
135
+ * The process-wide emitter. Helix runs one file per process, so a module-level
136
+ * instance is the run's emitter — the same object plugins receive at
137
+ * `configure()` time and the runtime emits on.
138
+ */
139
+ export declare const emitter: Emitter;
140
+ export {};
141
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/runtime/emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Runner events — the Japa `Emitter` surface.
3
+ *
4
+ * Japa's plugin/reporter topology is built on an event emitter: a plugin
5
+ * receives `{ config, cliArgs, runner, emitter }` and subscribes to
6
+ * `runner:start`, `suite:start`, `group:start`, `test:start`, … to observe the
7
+ * run. Helix emits the SAME event names with the SAME node shapes
8
+ * (`TestStartNode`, `TestEndNode`, `GroupStartNode`, …) so a Japa reporter or
9
+ * plugin can be ported without rewriting its listeners.
10
+ *
11
+ * One named deviation from `@japa/core`: `suite:start` / `suite:end` carry the
12
+ * test FILE name. Helix runs one process per file, so the file is what a
13
+ * worker-side listener can see of a suite.
14
+ *
15
+ * `errors[].error` is the thrown `Error` itself, as in Japa — the emitter runs
16
+ * in the worker, where the original is still around. Only an error rebuilt from
17
+ * an IPC frame (which can carry data only) degrades to the {@link
18
+ * SerializedError} shape, which keeps the same `name`/`message`/`stack` fields.
19
+ */
20
+ /**
21
+ * A typed event emitter over {@link RunnerEvents}. Deliberately minimal — `on`
22
+ * / `once` / `off` / `emit`, the surface a Japa reporter or plugin uses. A
23
+ * throwing listener is reported on stderr and never fails the run.
24
+ */
25
+ export class Emitter {
26
+ #listeners = new Map();
27
+ /** Subscribe to an event. Returns `this` for chaining. */
28
+ on(event, handler) {
29
+ const set = this.#listeners.get(event) ?? new Set();
30
+ set.add({ fn: handler });
31
+ this.#listeners.set(event, set);
32
+ return this;
33
+ }
34
+ /** Subscribe to the next occurrence of an event only. */
35
+ once(event, handler) {
36
+ const wrapped = (payload) => {
37
+ this.off(event, wrapped);
38
+ handler(payload);
39
+ };
40
+ return this.on(event, wrapped);
41
+ }
42
+ /** Remove a previously registered listener. */
43
+ off(event, handler) {
44
+ const set = this.#listeners.get(event);
45
+ if (set === undefined)
46
+ return this;
47
+ for (const entry of set) {
48
+ if (entry.fn === handler)
49
+ set.delete(entry);
50
+ }
51
+ return this;
52
+ }
53
+ /** Drop every listener (used between runs in the same process). */
54
+ clear() {
55
+ this.#listeners.clear();
56
+ }
57
+ /** Broadcast an event. Listener failures are isolated. */
58
+ emit(event, payload) {
59
+ const set = this.#listeners.get(event);
60
+ if (set === undefined)
61
+ return;
62
+ // Snapshot: a `once` listener removes itself while we iterate.
63
+ for (const entry of [...set]) {
64
+ try {
65
+ entry.fn(payload);
66
+ }
67
+ catch (err) {
68
+ console.error(`[helix] "${event}" listener failed:`, err);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * The process-wide emitter. Helix runs one file per process, so a module-level
75
+ * instance is the run's emitter — the same object plugins receive at
76
+ * `configure()` time and the runtime emits on.
77
+ */
78
+ export const emitter = new Emitter();
79
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/runtime/emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmIH;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACV,UAAU,GAAG,IAAI,GAAG,EAA2C,CAAC;IAEzE,0DAA0D;IAC1D,EAAE,CAA+B,KAAQ,EAAE,OAAwB;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACpE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yDAAyD;IACzD,IAAI,CAA+B,KAAQ,EAAE,OAAwB;QACpE,MAAM,OAAO,GAAoB,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,+CAA+C;IAC/C,GAAG,CAA+B,KAAQ,EAAE,OAAwB;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO;gBAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mEAAmE;IACnE,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAA+B,KAAQ,EAAE,OAAwB;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,+DAA+D;QAC/D,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../src/runtime/equals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC7B,iGAAiG;IACjG,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,MAAM,CACrB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,OAAO,GAAE,aAAkB,GACzB,OAAO,CAET;AA8TD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEzE"}
1
+ {"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../src/runtime/equals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC7B,iGAAiG;IACjG,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAuBD,wBAAgB,MAAM,CACrB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,OAAO,GAAE,aAAkB,GACzB,OAAO,CAET;AAmUD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEzE"}
@@ -9,6 +9,18 @@
9
9
  * `toStrictEqual` semantics (checks prototype + undefined-vs-missing keys)
10
10
  * are supported via the `strict` option.
11
11
  */
12
+ /**
13
+ * Duck-type an asymmetric matcher (`expect.objectContaining`, `expect.any`, …).
14
+ * Checked inline rather than importing `./asymmetric.js` to avoid a module
15
+ * cycle (asymmetric.ts imports this file).
16
+ */
17
+ function isAsymmetric(value) {
18
+ return (typeof value === "object" &&
19
+ value !== null &&
20
+ value
21
+ .__helixAsymmetricMatcher === true &&
22
+ typeof value.asymmetricMatch === "function");
23
+ }
12
24
  export function equals(a, b, options = {}) {
13
25
  return eq(a, b, options, new WeakMap());
14
26
  }
@@ -207,6 +219,13 @@ function eq(a, b, opts, seen) {
207
219
  // Identity / NaN (Object.is). In non-strict mode, ±0 are also equal.
208
220
  if (Object.is(a, b))
209
221
  return true;
222
+ // Asymmetric matchers short-circuit structural comparison — they may match
223
+ // primitives (`expect.any(Number)` vs `5`), so this must run before the
224
+ // typeof / null bailouts below. Either side can carry the matcher.
225
+ if (isAsymmetric(b))
226
+ return b.asymmetricMatch(a);
227
+ if (isAsymmetric(a))
228
+ return a.asymmetricMatch(b);
210
229
  if (!opts.strict && a === b)
211
230
  return true;
212
231
  if (a === null || b === null)
@@ -298,6 +317,8 @@ export function partialEquals(actual, expected) {
298
317
  function partial(actual, expected, seen) {
299
318
  if (Object.is(actual, expected))
300
319
  return true;
320
+ if (isAsymmetric(expected))
321
+ return expected.asymmetricMatch(actual);
301
322
  if (expected === null || expected === undefined) {
302
323
  return actual === expected;
303
324
  }
@@ -1 +1 @@
1
- {"version":3,"file":"equals.js","sourceRoot":"","sources":["../../src/runtime/equals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"equals.js","sourceRoot":"","sources":["../../src/runtime/equals.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * - `.resolves.<matcher>()` / `.rejects.<matcher>()` — async awaits on received
8
8
  * - All four combinations: `.resolves.not`, `.rejects.not`, `.not.resolves`, `.not.rejects`
9
9
  */
10
+ import { type AsymmetricMatcher, type Constructor } from "./asymmetric.js";
10
11
  import { type MatcherName, matchers } from "./matchers.js";
11
12
  type MatcherArgs<Name extends MatcherName> = (typeof matchers)[Name] extends (received: unknown, ...args: infer A) => unknown ? A : never;
12
13
  type SyncChain = {
@@ -27,6 +28,26 @@ export type Assertion = SyncChain & {
27
28
  not: AsyncChain;
28
29
  };
29
30
  };
30
- export declare function expect(received: unknown): Assertion;
31
+ /** The callable `expect(...)` plus its static asymmetric matchers + assertion controls. */
32
+ export interface ExpectStatic {
33
+ (received: unknown): Assertion;
34
+ /** Matches an object that contains (superset of) `subset`. */
35
+ objectContaining(subset: Record<string, unknown>): AsymmetricMatcher;
36
+ /** Matches an array that contains every item in `items`. */
37
+ arrayContaining(items: readonly unknown[]): AsymmetricMatcher;
38
+ /** Matches a string containing `sub`. */
39
+ stringContaining(sub: string): AsymmetricMatcher;
40
+ /** Matches a string against a substring or regexp. */
41
+ stringMatching(pattern: string | RegExp): AsymmetricMatcher;
42
+ /** Matches any value of the given type/constructor. */
43
+ any(ctor: Constructor): AsymmetricMatcher;
44
+ /** Matches any value except `null`/`undefined`. */
45
+ anything(): AsymmetricMatcher;
46
+ /** Require the current test to make exactly `n` assertions. */
47
+ assertions(n: number): void;
48
+ /** Require the current test to make at least one assertion. */
49
+ hasAssertions(): void;
50
+ }
51
+ export declare const expect: ExpectStatic;
31
52
  export {};
32
53
  //# sourceMappingURL=expect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/runtime/expect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE3D,KAAK,WAAW,CAAC,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAC5E,QAAQ,EAAE,OAAO,EACjB,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,OAAO,GACT,CAAC,GACD,KAAK,CAAC;AAET,KAAK,SAAS,GAAG;KACf,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI;CACrD,CAAC;AAEF,KAAK,UAAU,GAAG;KAChB,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IACnC,GAAG,EAAE,SAAS,GAAG;QAChB,QAAQ,EAAE,UAAU,CAAC;QACrB,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;IAC3C,OAAO,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1C,CAAC;AAkHF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAuBnD"}
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/runtime/expect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACN,KAAK,iBAAiB,EAItB,KAAK,WAAW,EAIhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO3D,KAAK,WAAW,CAAC,IAAI,SAAS,WAAW,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAC5E,QAAQ,EAAE,OAAO,EACjB,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,OAAO,GACT,CAAC,GACD,KAAK,CAAC;AAET,KAAK,SAAS,GAAG;KACf,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI;CACrD,CAAC;AAEF,KAAK,UAAU,GAAG;KAChB,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IACnC,GAAG,EAAE,SAAS,GAAG;QAChB,QAAQ,EAAE,UAAU,CAAC;QACrB,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;IAC3C,OAAO,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1C,CAAC;AAoHF,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC5B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,8DAA8D;IAC9D,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC;IACrE,4DAA4D;IAC5D,eAAe,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,iBAAiB,CAAC;IAC9D,yCAAyC;IACzC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACjD,sDAAsD;IACtD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC;IAC5D,uDAAuD;IACvD,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,+DAA+D;IAC/D,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+DAA+D;IAC/D,aAAa,IAAI,IAAI,CAAC;CACtB;AA2BD,eAAO,MAAM,MAAM,EAAE,YASnB,CAAC"}
@@ -8,8 +8,12 @@
8
8
  * - All four combinations: `.resolves.not`, `.rejects.not`, `.not.resolves`, `.not.rejects`
9
9
  */
10
10
  import { AssertionError } from "./assertion-error.js";
11
+ import { any, anything, arrayContaining, objectContaining, stringContaining, stringMatching, } from "./asymmetric.js";
11
12
  import { matchers } from "./matchers.js";
13
+ import { recordAssertion, setExpectedAssertions, setHasAssertions, } from "./test-context.js";
12
14
  function evaluate(ctx, name, args) {
15
+ // Every matcher invocation is one assertion (drives `expect.assertions`).
16
+ recordAssertion();
13
17
  const matcher = matchers[name];
14
18
  let result;
15
19
  try {
@@ -97,7 +101,7 @@ function buildAsync(received, mode, negate) {
97
101
  }
98
102
  return api;
99
103
  }
100
- export function expect(received) {
104
+ function expectImpl(received) {
101
105
  const base = buildSync(received, false);
102
106
  // `.not` returns a chain that negates every matcher. It also exposes
103
107
  // `.resolves` / `.rejects` so `expect(p).not.resolves.toBe(x)` works, matching
@@ -118,4 +122,14 @@ export function expect(received) {
118
122
  rejects,
119
123
  });
120
124
  }
125
+ export const expect = Object.assign(expectImpl, {
126
+ objectContaining,
127
+ arrayContaining,
128
+ stringContaining,
129
+ stringMatching,
130
+ any,
131
+ anything,
132
+ assertions: (n) => setExpectedAssertions(n),
133
+ hasAssertions: () => setHasAssertions(),
134
+ });
121
135
  //# sourceMappingURL=expect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/runtime/expect.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAoB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAuC3D,SAAS,QAAQ,CAAC,GAAgB,EAAE,IAAiB,EAAE,IAAe;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAmB,CAAC;IACjD,IAAI,MAA4C,CAAC;IACjD,IAAI,CAAC;QACJ,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,sEAAsE;QACtE,qEAAqE;QACrE,gDAAgD;QAChD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,WAAW,IAAI,WAAW,GAAG,EAAE;YACxC,MAAM,EAAE,GAAG,CAAC,QAAQ;YACpB,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;SAC3C,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACrD,IAAI,IAAI;QAAE,OAAO;IACjB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,IAAI,cAAc,CAAC;QACxB,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,CAAC,QAAQ;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAkB,CAAC;AAE5D,SAAS,SAAS,CAAC,QAAiB,EAAE,MAAe;IACpD,MAAM,GAAG,GAAG,EAAe,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CACjC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAID,SAAS,UAAU,CAClB,QAAiB,EACjB,IAAiB,EACjB,MAAe;IAEf,MAAM,GAAG,GAAG,EAAgB,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YACvC,IACC,CAAC,QAAQ;gBACT,OAAQ,QAA+B,CAAC,IAAI,KAAK,UAAU,EAC1D,CAAC;gBACF,MAAM,IAAI,cAAc,CAAC;oBACxB,OAAO,EAAE,4BAA4B,IAAI,UAAU,OAAO,QAAQ,EAAE;oBACpE,QAAQ,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;iBAC3B,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,QAAiB,CAAC;YACtB,IAAI,QAAiB,CAAC;YACtB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC;gBACJ,QAAQ,GAAG,MAAO,QAAiC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,QAAQ,GAAG,GAAG,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzB,IAAI,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,cAAc,CAAC;wBACxB,OAAO,EAAE,qDAAqD,MAAM,CAAC,QAAQ,CAAC,EAAE;wBAChF,QAAQ,EAAE,YAAY,IAAI,EAAE;qBAC5B,CAAC,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrD,OAAO;YACR,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,IAAI,cAAc,CAAC;oBACxB,OAAO,EAAE,oDAAoD,MAAM,CAAC,QAAQ,CAAC,EAAE;oBAC/E,QAAQ,EAAE,WAAW,IAAI,EAAE;iBAC3B,CAAC,CAAC;YACJ,CAAC;YACD,6DAA6D;YAC7D,iEAAiE;YACjE,MAAM,MAAM,GACX,IAAI,KAAK,SAAS;gBACjB,CAAC,CAAC,GAAG,EAAE;oBACL,MAAM,QAAQ,CAAC;gBAChB,CAAC;gBACF,CAAC,CAAC,QAAQ,CAAC;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAiB;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAExC,qEAAqE;IACrE,+EAA+E;IAC/E,yBAAyB;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;QACxD,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC;QAChD,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;QACvE,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC;KAC3C,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QACrE,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;KAC1C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAC1B,GAAG,EAAE,OAAO;QACZ,QAAQ;QACR,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/runtime/expect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `runnerHooks` — run ONCE for the whole run, where Japa runs them.
3
+ *
4
+ * These were running per worker process, which meant a migration in
5
+ * `runnerHooks.setup` ran once per FILE. The reason given was that a resource
6
+ * opened in the CLI process would not exist in the workers — true of an
7
+ * in-memory one, and false of everything these hooks actually do: migrate a
8
+ * database, seed it, start a server on a port, create a directory. Those cross
9
+ * processes, and running them N times is wrong, not merely wasteful.
10
+ *
11
+ * So they run here, in the process that spawns the workers, and the workers are
12
+ * told to skip them. What genuinely has to exist INSIDE a worker — a context
13
+ * macro, anything held in memory — is what `plugins` are for, and those still
14
+ * run per worker because they have to.
15
+ */
16
+ /** Set for the workers, so they do not run what the parent already ran. */
17
+ export declare const GLOBAL_HOOKS_ENV = "HELIX_GLOBAL_HOOKS";
18
+ /** Whether this process should skip `runnerHooks` because a parent ran them. */
19
+ export declare function globalHooksHandledByParent(): boolean;
20
+ /**
21
+ * Run the bootstrap's `runnerHooks.setup` once and return the teardown for the
22
+ * end of the run. Undos a setup hook resolved to unwind first, then the
23
+ * declared teardowns — both in reverse order, as everywhere else.
24
+ *
25
+ * A no-op returning a no-op when the project has no bootstrap: there is then
26
+ * nothing to run once, and the workers have nothing to skip.
27
+ */
28
+ export declare function runGlobalHooks(bootstrap: string | undefined, options?: {
29
+ japaPlugins?: boolean;
30
+ }): Promise<() => Promise<void>>;
31
+ //# sourceMappingURL=global-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-hooks.d.ts","sourceRoot":"","sources":["../../src/runtime/global-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAErD,gFAAgF;AAChF,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AASD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAyD9B"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * `runnerHooks` — run ONCE for the whole run, where Japa runs them.
3
+ *
4
+ * These were running per worker process, which meant a migration in
5
+ * `runnerHooks.setup` ran once per FILE. The reason given was that a resource
6
+ * opened in the CLI process would not exist in the workers — true of an
7
+ * in-memory one, and false of everything these hooks actually do: migrate a
8
+ * database, seed it, start a server on a port, create a directory. Those cross
9
+ * processes, and running them N times is wrong, not merely wasteful.
10
+ *
11
+ * So they run here, in the process that spawns the workers, and the workers are
12
+ * told to skip them. What genuinely has to exist INSIDE a worker — a context
13
+ * macro, anything held in memory — is what `plugins` are for, and those still
14
+ * run per worker because they have to.
15
+ */
16
+ import { pathToFileURL } from "node:url";
17
+ import { emitter } from "./emitter.js";
18
+ import { Runner } from "./runner.js";
19
+ /** Set for the workers, so they do not run what the parent already ran. */
20
+ export const GLOBAL_HOOKS_ENV = "HELIX_GLOBAL_HOOKS";
21
+ /** Whether this process should skip `runnerHooks` because a parent ran them. */
22
+ export function globalHooksHandledByParent() {
23
+ return process.env[GLOBAL_HOOKS_ENV] === "1";
24
+ }
25
+ function hookList(source, key) {
26
+ if (source === null || typeof source !== "object")
27
+ return [];
28
+ const value = Reflect.get(source, key);
29
+ if (!Array.isArray(value))
30
+ return [];
31
+ return value.filter((fn) => typeof fn === "function");
32
+ }
33
+ /**
34
+ * Run the bootstrap's `runnerHooks.setup` once and return the teardown for the
35
+ * end of the run. Undos a setup hook resolved to unwind first, then the
36
+ * declared teardowns — both in reverse order, as everywhere else.
37
+ *
38
+ * A no-op returning a no-op when the project has no bootstrap: there is then
39
+ * nothing to run once, and the workers have nothing to skip.
40
+ */
41
+ export async function runGlobalHooks(bootstrap, options = {}) {
42
+ if (bootstrap === undefined || bootstrap === "") {
43
+ return async () => { };
44
+ }
45
+ // The parent imports the bootstrap too, so it needs the same alias the
46
+ // workers get. Without it the two processes resolve `@japa/runner/core`
47
+ // differently — the parent to the real Japa, the workers to the shim — and a
48
+ // bootstrap that registers at the top level registers on a class nothing
49
+ // reads. When `@japa/runner` is not installed at all, the parent simply
50
+ // cannot import the file.
51
+ let dropAlias;
52
+ if (options.japaPlugins === true) {
53
+ const { setJapaAlias } = await import("../japa/japa-alias.mjs");
54
+ setJapaAlias(true);
55
+ // Turned off with the teardown: `register()` cannot be undone, so a host
56
+ // running twice in one process would otherwise keep resolving
57
+ // `@japa/runner/core` to the shim after asking for the real one.
58
+ dropAlias = () => setJapaAlias(false);
59
+ }
60
+ // Everything past the alias needs unwinding if it throws: the import can
61
+ // fail, and so can a setup hook — half-way through, with earlier hooks
62
+ // already having opened something. Leaving the alias on and the undos
63
+ // pending is the failure mode this whole file exists to avoid.
64
+ const previous = process.env[GLOBAL_HOOKS_ENV];
65
+ const runner = new Runner(emitter);
66
+ const undos = [];
67
+ let teardown = [];
68
+ try {
69
+ const module = await import(pathToFileURL(bootstrap).href);
70
+ const hooks = Reflect.get(Object(module), "runnerHooks");
71
+ const setup = hookList(hooks, "setup");
72
+ teardown = hookList(hooks, "teardown");
73
+ for (const fn of setup) {
74
+ const undo = await fn(runner);
75
+ if (typeof undo === "function")
76
+ undos.push(undo);
77
+ }
78
+ if (setup.length > 0 || teardown.length > 0) {
79
+ process.env[GLOBAL_HOOKS_ENV] = "1";
80
+ }
81
+ }
82
+ catch (err) {
83
+ // Unwind what did run, then hand the failure on: a run that could not set
84
+ // itself up must not start, and must not leave the process changed.
85
+ await unwind(undos, [], runner);
86
+ dropAlias?.();
87
+ restoreEnv(previous);
88
+ throw err;
89
+ }
90
+ return async () => {
91
+ dropAlias?.();
92
+ restoreEnv(previous);
93
+ await unwind(undos, teardown, runner);
94
+ };
95
+ }
96
+ /** Put `HELIX_GLOBAL_HOOKS` back the way it was found. */
97
+ function restoreEnv(previous) {
98
+ if (previous === undefined)
99
+ delete process.env[GLOBAL_HOOKS_ENV];
100
+ else
101
+ process.env[GLOBAL_HOOKS_ENV] = previous;
102
+ }
103
+ /**
104
+ * Unwind what a setup opened: the undos it resolved to, then the declared
105
+ * teardowns, both in reverse. Failures are reported rather than thrown — one
106
+ * broken teardown must not hide the rest, nor turn a finished run red.
107
+ */
108
+ async function unwind(undos, teardown, runner) {
109
+ for (let i = undos.length - 1; i >= 0; i -= 1) {
110
+ try {
111
+ await undos[i](null, runner);
112
+ }
113
+ catch (err) {
114
+ console.error("[helix] global cleanup failed:", err);
115
+ }
116
+ }
117
+ for (let i = teardown.length - 1; i >= 0; i -= 1) {
118
+ try {
119
+ await teardown[i](runner);
120
+ }
121
+ catch (err) {
122
+ console.error("[helix] global teardown failed:", err);
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=global-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-hooks.js","sourceRoot":"","sources":["../../src/runtime/global-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,gFAAgF;AAChF,MAAM,UAAU,0BAA0B;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,GAAW;IAC7C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,SAA6B,EAC7B,UAAqC,EAAE;IAEvC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACjD,OAAO,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IACvB,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,6EAA6E;IAC7E,yEAAyE;IACzE,wEAAwE;IACxE,0BAA0B;IAC1B,IAAI,SAAmC,CAAC;IACxC,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,yEAAyE;QACzE,8DAA8D;QAC9D,iEAAiE;QACjE,SAAS,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAgB,EAAE,CAAC;IAE/B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEvC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;QACrC,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAChC,SAAS,EAAE,EAAE,CAAC;QACd,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,GAAG,CAAC;IACX,CAAC;IAED,OAAO,KAAK,IAAI,EAAE;QACjB,SAAS,EAAE,EAAE,CAAC;QACd,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,SAAS,UAAU,CAAC,QAA4B;IAC/C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;;QAC5D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CACpB,KAAyB,EACzB,QAAqB,EACrB,MAAc;IAEd,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACJ,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC;YACJ,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;AACF,CAAC"}