@overkill-dev/run 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engine/execution-result.js +77 -0
- package/engine/execution-result.js.map +1 -0
- package/engine/execution.d.ts +6 -2
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +68 -108
- package/engine/execution.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +16 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -0
- package/engine/reporter-dispatcher.js +244 -0
- package/engine/reporter-dispatcher.js.map +1 -0
- package/engine/reporter-event-queue.js +2 -2
- package/engine/reporter-event-queue.js.map +1 -1
- package/engine/reporter-output.d.ts +24 -0
- package/engine/reporter-output.d.ts.map +1 -0
- package/engine/reporter-output.js +8 -0
- package/engine/reporter-output.js.map +1 -0
- package/engine/reporter.d.ts +86 -21
- package/engine/reporter.d.ts.map +1 -1
- package/engine/reporter.js +51 -145
- package/engine/reporter.js.map +1 -1
- package/engine/run-result.d.ts +22 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.js.map +1 -1
- package/package.json +2 -2
- package/packages/run/command-line.entry-point.d.ts +1 -1
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.d.ts +1 -1
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/readme.md +18 -2
- package/reporters/line-failure-rendering.js +1 -0
- package/reporters/line-failure-rendering.js.map +1 -1
- package/reporters/line-reporter.js +1 -1
- package/reporters/line-reporter.js.map +1 -1
- package/reporters/source-location-rendering.js +1 -0
- package/reporters/source-location-rendering.js.map +1 -0
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +3 -1
- package/run/command-line-runner.js.map +1 -1
- package/run/resource-usage.d.ts +15 -0
- package/run/resource-usage.d.ts.map +1 -0
- package/run/resource-usage.js +107 -0
- package/run/resource-usage.js.map +1 -0
- package/run/run-config.d.ts +32 -4
- package/run/run-config.d.ts.map +1 -1
- package/run/run-config.js +70 -0
- package/run/run-config.js.map +1 -1
- package/run/run.d.ts +35 -4
- package/run/run.d.ts.map +1 -1
- package/run/run.js +150 -2
- package/run/run.js.map +1 -1
- package/sbom.cdx.json +10 -10
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
const callbackTimeoutMs = 100;
|
|
2
|
+
function formatReporterError(reporter, cause) {
|
|
3
|
+
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
4
|
+
return {
|
|
5
|
+
attributedTo: null,
|
|
6
|
+
cause,
|
|
7
|
+
message: `${reporter.name}: ${reason}`,
|
|
8
|
+
subtype: 'reporter'
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function timeoutError(reporter) {
|
|
12
|
+
return new Error(`${reporter.name} reporter callback timed out after ${callbackTimeoutMs} ms.`);
|
|
13
|
+
}
|
|
14
|
+
function createReporterTimeout(dependencies, reporter) {
|
|
15
|
+
const { promise, reject } = Promise.withResolvers();
|
|
16
|
+
const timeout = dependencies.wallClock.setTimeout(function rejectTimedOutCallback() {
|
|
17
|
+
reject(timeoutError(reporter));
|
|
18
|
+
}, callbackTimeoutMs);
|
|
19
|
+
return {
|
|
20
|
+
cancel() {
|
|
21
|
+
dependencies.wallClock.clearTimeout(timeout);
|
|
22
|
+
},
|
|
23
|
+
promise
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function isObject(value) {
|
|
27
|
+
return typeof value === 'object' && value !== null;
|
|
28
|
+
}
|
|
29
|
+
function isOutputLineKind(value) {
|
|
30
|
+
return value === 'stdout-line' || value === 'stderr-line';
|
|
31
|
+
}
|
|
32
|
+
function isOutputLineRole(value) {
|
|
33
|
+
return value === 'primary' || value === 'supplemental';
|
|
34
|
+
}
|
|
35
|
+
function isOutputLineIntent(value) {
|
|
36
|
+
return isObject(value) &&
|
|
37
|
+
isOutputLineKind(value.kind) &&
|
|
38
|
+
isOutputLineRole(value.role) &&
|
|
39
|
+
typeof value.text === 'string' &&
|
|
40
|
+
Object.hasOwn(value, 'annotation');
|
|
41
|
+
}
|
|
42
|
+
function normalizeReporterOutput(output) {
|
|
43
|
+
if (output === undefined) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(output) && output.every(isOutputLineIntent)) {
|
|
47
|
+
return output;
|
|
48
|
+
}
|
|
49
|
+
throw new Error('Reporter returned invalid managed output.');
|
|
50
|
+
}
|
|
51
|
+
async function awaitReporterCallback(dependencies, reporter, callback) {
|
|
52
|
+
const reporterTimeout = createReporterTimeout(dependencies, reporter);
|
|
53
|
+
try {
|
|
54
|
+
const output = await Promise.race([callback(), reporterTimeout.promise]);
|
|
55
|
+
return { kind: 'success', output: normalizeReporterOutput(output), reporter };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
return { error: formatReporterError(reporter, error), kind: 'failure', reporter };
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
reporterTimeout.cancel();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function awaitReporterDispose(dependencies, reporter, dispose) {
|
|
65
|
+
const reporterTimeout = createReporterTimeout(dependencies, reporter);
|
|
66
|
+
try {
|
|
67
|
+
await Promise.race([dispose(), reporterTimeout.promise]);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return { error: formatReporterError(reporter, error), kind: 'failure', reporter };
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
reporterTimeout.cancel();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function outputIntentStream(intent) {
|
|
78
|
+
return intent.kind === 'stderr-line' ? 'stderr' : 'stdout';
|
|
79
|
+
}
|
|
80
|
+
function expectedSinkKind(intent) {
|
|
81
|
+
return `${outputIntentStream(intent)}-managed-${intent.role}`;
|
|
82
|
+
}
|
|
83
|
+
function reporterDeclaresOutputIntent(reporter, intent) {
|
|
84
|
+
return reporter.sinks.some(function sinkMatchesIntent(sink) {
|
|
85
|
+
return sink.kind === expectedSinkKind(intent);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function validateRenderedLine(line) {
|
|
89
|
+
if (line.includes('\n') || line.includes('\r')) {
|
|
90
|
+
throw new Error('Managed output renderer returned a line containing a newline.');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function outputWriterForIntent(dependencies, intent) {
|
|
94
|
+
return outputIntentStream(intent) === 'stdout' ? dependencies.stdout : dependencies.stderr;
|
|
95
|
+
}
|
|
96
|
+
function reporterFailures(results) {
|
|
97
|
+
return results.flatMap(function collectFailure(result) {
|
|
98
|
+
return result.kind === 'failure' ? [result] : [];
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function reporterSuccesses(results) {
|
|
102
|
+
return results.flatMap(function collectSuccess(result) {
|
|
103
|
+
return result.kind === 'success' ? [result] : [];
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function assertReporterDeclaresOutputIntent(reporter, intent) {
|
|
107
|
+
if (!reporterDeclaresOutputIntent(reporter, intent)) {
|
|
108
|
+
throw new Error(`Reporter returned undeclared managed ${outputIntentStream(intent)} output.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function writeReporterOutput(dependencies, reporter, intent, outputRenderer) {
|
|
112
|
+
try {
|
|
113
|
+
assertReporterDeclaresOutputIntent(reporter, intent);
|
|
114
|
+
const line = outputRenderer.render(intent);
|
|
115
|
+
validateRenderedLine(line);
|
|
116
|
+
outputWriterForIntent(dependencies, intent).writeLine(line);
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
return { error: formatReporterError(reporter, error), kind: 'failure', reporter };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function writeReporterOutputs(dependencies, outputs, outputRenderer) {
|
|
124
|
+
const failures = [];
|
|
125
|
+
for (const output of outputs) {
|
|
126
|
+
for (const intent of output.output) {
|
|
127
|
+
const failure = writeReporterOutput(dependencies, output.reporter, intent, outputRenderer);
|
|
128
|
+
if (failure !== null) {
|
|
129
|
+
failures.push(failure);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return failures;
|
|
134
|
+
}
|
|
135
|
+
async function reportEventToReporter(dependencies, reporter, event) {
|
|
136
|
+
return await awaitReporterCallback(dependencies, reporter, function sendReporterEvent() {
|
|
137
|
+
return reporter.onEvent(event);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
async function reportRunnerErrorToOtherReporters(context, failedReporter, error) {
|
|
141
|
+
const event = { error, kind: 'runner-error' };
|
|
142
|
+
const failures = await Promise.all(context.reporters.map(async function reportRunnerError(reporter) {
|
|
143
|
+
if (reporter.kind !== 'real-time' || reporter === failedReporter) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
return reportEventToReporter(context.dependencies, reporter, event);
|
|
147
|
+
}));
|
|
148
|
+
const results = failures.flatMap(function collectResult(result) {
|
|
149
|
+
return result === null ? [] : [result];
|
|
150
|
+
});
|
|
151
|
+
const outputFailures = writeReporterOutputs(context.dependencies, reporterSuccesses(results), context.outputRenderer);
|
|
152
|
+
return [
|
|
153
|
+
...reporterFailures(results).map(function toError(failure) {
|
|
154
|
+
return failure.error;
|
|
155
|
+
}),
|
|
156
|
+
...outputFailures.map(function toError(failure) {
|
|
157
|
+
return failure.error;
|
|
158
|
+
})
|
|
159
|
+
];
|
|
160
|
+
}
|
|
161
|
+
async function collectReporterErrorsWithNotifications(context, reporterErrors) {
|
|
162
|
+
const notificationErrors = await Promise.all(reporterErrors.map(async function reportError(failure) {
|
|
163
|
+
return reportRunnerErrorToOtherReporters(context, failure.reporter, failure.error);
|
|
164
|
+
}));
|
|
165
|
+
return [
|
|
166
|
+
...reporterErrors.map(function toError(failure) {
|
|
167
|
+
return failure.error;
|
|
168
|
+
}),
|
|
169
|
+
...notificationErrors.flat()
|
|
170
|
+
];
|
|
171
|
+
}
|
|
172
|
+
async function reportEvent(context, event) {
|
|
173
|
+
const results = await Promise.all(context.reporters.map(async function reportRealTimeEvent(reporter) {
|
|
174
|
+
if (reporter.kind !== 'real-time') {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
return reportEventToReporter(context.dependencies, reporter, event);
|
|
178
|
+
}));
|
|
179
|
+
const callbackResults = results.flatMap(function collectResult(result) {
|
|
180
|
+
return result === null ? [] : [result];
|
|
181
|
+
});
|
|
182
|
+
const outputErrors = writeReporterOutputs(context.dependencies, reporterSuccesses(callbackResults), context.outputRenderer);
|
|
183
|
+
const reporterErrors = [...reporterFailures(callbackResults), ...outputErrors];
|
|
184
|
+
if (event.kind === 'runner-error') {
|
|
185
|
+
return reporterErrors.map(function toError(failure) {
|
|
186
|
+
return failure.error;
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return collectReporterErrorsWithNotifications(context, reporterErrors);
|
|
190
|
+
}
|
|
191
|
+
async function reportResult(context, result) {
|
|
192
|
+
const results = await Promise.all(context.reporters.map(async function reportFinalResult(reporter) {
|
|
193
|
+
if (reporter.kind === 'final-result') {
|
|
194
|
+
return await awaitReporterCallback(context.dependencies, reporter, function reportResultToFinalReporter() {
|
|
195
|
+
return reporter.onResult(result);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (reporter.onFinish === null) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
const { onFinish } = reporter;
|
|
202
|
+
return await awaitReporterCallback(context.dependencies, reporter, function reportResultToRealTimeReporter() {
|
|
203
|
+
return onFinish(result);
|
|
204
|
+
});
|
|
205
|
+
}));
|
|
206
|
+
const callbackResults = results.flatMap(function collectResult(callbackResult) {
|
|
207
|
+
return callbackResult === null ? [] : [callbackResult];
|
|
208
|
+
});
|
|
209
|
+
const outputErrors = writeReporterOutputs(context.dependencies, reporterSuccesses(callbackResults), context.outputRenderer);
|
|
210
|
+
const reporterErrors = [...reporterFailures(callbackResults), ...outputErrors];
|
|
211
|
+
return collectReporterErrorsWithNotifications(context, reporterErrors);
|
|
212
|
+
}
|
|
213
|
+
async function disposeReporters(dependencies, reporters) {
|
|
214
|
+
const failures = await Promise.all(reporters.map(async function disposeReporter(reporter) {
|
|
215
|
+
if (reporter.dispose === null) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
return await awaitReporterDispose(dependencies, reporter, reporter.dispose);
|
|
219
|
+
}));
|
|
220
|
+
return failures.flatMap(function collectFailure(failure) {
|
|
221
|
+
return failure === null ? [] : [failure.error];
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function createReporterDispatchContext(dependencies, reporters, outputRenderer) {
|
|
225
|
+
return {
|
|
226
|
+
dependencies,
|
|
227
|
+
outputRenderer,
|
|
228
|
+
reporters
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
export function createReporterDispatcher(dependencies) {
|
|
232
|
+
return {
|
|
233
|
+
async disposeReporters(reporters) {
|
|
234
|
+
return await disposeReporters(dependencies, reporters);
|
|
235
|
+
},
|
|
236
|
+
async reportEvent(reporters, event, outputRenderer) {
|
|
237
|
+
return await reportEvent(createReporterDispatchContext(dependencies, reporters, outputRenderer), event);
|
|
238
|
+
},
|
|
239
|
+
async reportResult(reporters, result, outputRenderer) {
|
|
240
|
+
return await reportResult(createReporterDispatchContext(dependencies, reporters, outputRenderer), result);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=reporter-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-dispatcher.js","sourceRoot":"","sources":["../../../../source/engine/reporter-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,13 @@ async function waitForPreviousReport(previousReport) {
|
|
|
7
7
|
}
|
|
8
8
|
return undefined;
|
|
9
9
|
}
|
|
10
|
-
export function createReporterEventQueue(reporters, dependencies) {
|
|
10
|
+
export function createReporterEventQueue(reporters, outputRenderer, dependencies) {
|
|
11
11
|
let previousReport = Promise.resolve([]);
|
|
12
12
|
return {
|
|
13
13
|
async report(event) {
|
|
14
14
|
const report = (async function reportEventAfterPreviousReport() {
|
|
15
15
|
await waitForPreviousReport(previousReport);
|
|
16
|
-
return await dependencies.reporterDispatcher.reportEvent(reporters, event);
|
|
16
|
+
return await dependencies.reporterDispatcher.reportEvent(reporters, event, outputRenderer);
|
|
17
17
|
})();
|
|
18
18
|
previousReport = report;
|
|
19
19
|
return await report;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter-event-queue.js","sourceRoot":"","sources":["../../../../source/engine/reporter-event-queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reporter-event-queue.js","sourceRoot":"","sources":["../../../../source/engine/reporter-event-queue.ts"],"names":[],"mappings":"AAaA,KAAK,UAAU,qBAAqB,CAAC,cAA+C;IAChF,IAAI,CAAC;QACD,MAAM,cAAc,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,SAA8B,EAC9B,cAA8B,EAC9B,YAA4C;IAE5C,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAyB,EAAE,CAAC,CAAC;IAEjE,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,KAAK;YACd,MAAM,MAAM,GAAG,CAAC,KAAK,UAAU,8BAA8B;gBACzD,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;gBAE5C,OAAO,MAAM,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;YACL,cAAc,GAAG,MAAM,CAAC;YAExB,OAAO,MAAM,MAAM,CAAC;QACxB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SourceLocation } from '../assertion-protocol/assertion-node-shape.ts';
|
|
2
|
+
export type OutputIntentRole = 'primary' | 'supplemental';
|
|
3
|
+
export type OutputIntentSeverity = 'error' | 'notice' | 'warning';
|
|
4
|
+
export type OutputIntentAnnotation = {
|
|
5
|
+
readonly location: SourceLocation | null;
|
|
6
|
+
readonly severity: OutputIntentSeverity;
|
|
7
|
+
readonly title: string | null;
|
|
8
|
+
};
|
|
9
|
+
export type OutputLineIntent = {
|
|
10
|
+
readonly annotation: OutputIntentAnnotation | null;
|
|
11
|
+
readonly kind: 'stderr-line' | 'stdout-line';
|
|
12
|
+
readonly role: OutputIntentRole;
|
|
13
|
+
readonly text: string;
|
|
14
|
+
};
|
|
15
|
+
export type ReporterOutput = readonly OutputLineIntent[];
|
|
16
|
+
export type OptionalReporterOutput = ReporterOutput | undefined;
|
|
17
|
+
export type OutputRenderer = {
|
|
18
|
+
readonly render: (intent: OutputLineIntent) => string;
|
|
19
|
+
};
|
|
20
|
+
export type OutputLineWriter = {
|
|
21
|
+
readonly writeLine: (line: string) => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function createPlainOutputRenderer(): OutputRenderer;
|
|
24
|
+
//# sourceMappingURL=reporter-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-output.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAEpF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,cAAc,CAAC;AAC1D,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,gBAAgB,EAAE,CAAC;AACzD,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,yBAAyB,IAAI,cAAc,CAM1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-output.js","sourceRoot":"","sources":["../../../../source/engine/reporter-output.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,yBAAyB;IACrC,OAAO;QACH,MAAM,CAAC,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC;QACvB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/engine/reporter.d.ts
CHANGED
|
@@ -1,35 +1,76 @@
|
|
|
1
|
-
import type { WallClock } from '@enormora/wall-clock';
|
|
2
1
|
import type { CaseId } from './identity.ts';
|
|
2
|
+
import type { OptionalReporterOutput } from './reporter-output.ts';
|
|
3
3
|
import type { RunResult, RunnerError, TestOutcome } from './run-result.ts';
|
|
4
4
|
import type { Metadata } from './test-node.ts';
|
|
5
5
|
export type RunFacts = Readonly<Record<string, unknown>>;
|
|
6
|
-
export type
|
|
7
|
-
readonly
|
|
8
|
-
|
|
6
|
+
export type RawStandardOutputSinkDeclaration = {
|
|
7
|
+
readonly kind: 'stderr-raw' | 'stdout-raw';
|
|
8
|
+
};
|
|
9
|
+
declare const managedStandardOutputSinkKinds: readonly ["stderr-managed-primary", "stderr-managed-supplemental", "stdout-managed-primary", "stdout-managed-supplemental"];
|
|
10
|
+
type ManagedStandardOutputSinkKind = typeof managedStandardOutputSinkKinds[number];
|
|
11
|
+
export type ManagedStandardOutputSinkDeclaration = {
|
|
12
|
+
readonly kind: ManagedStandardOutputSinkKind;
|
|
9
13
|
};
|
|
10
14
|
export type FileSinkDeclaration = {
|
|
11
|
-
readonly conflictPolicy: 'exclusive';
|
|
12
15
|
readonly kind: 'file';
|
|
13
16
|
readonly path: string;
|
|
14
17
|
};
|
|
15
18
|
export type DirectorySinkDeclaration = {
|
|
16
|
-
readonly conflictPolicy: 'exclusive';
|
|
17
19
|
readonly kind: 'directory';
|
|
18
20
|
readonly path: string;
|
|
19
21
|
};
|
|
20
22
|
export type MemorySinkDeclaration = {
|
|
21
|
-
readonly conflictPolicy: 'shared';
|
|
22
23
|
readonly kind: 'memory';
|
|
23
24
|
};
|
|
24
25
|
export type StreamSinkDeclaration = {
|
|
25
|
-
readonly conflictPolicy: 'exclusive';
|
|
26
26
|
readonly kind: 'stream';
|
|
27
27
|
readonly provided: WritableStream<unknown>;
|
|
28
28
|
};
|
|
29
29
|
type FileSystemSinkDeclaration = DirectorySinkDeclaration | FileSinkDeclaration;
|
|
30
30
|
type PrivateSinkDeclaration = MemorySinkDeclaration | StreamSinkDeclaration;
|
|
31
|
+
export type StandardOutputSinkDeclaration = ManagedStandardOutputSinkDeclaration | RawStandardOutputSinkDeclaration;
|
|
31
32
|
type ReporterSinkDeclaration = FileSystemSinkDeclaration | StandardOutputSinkDeclaration;
|
|
32
33
|
export type SinkDeclaration = PrivateSinkDeclaration | ReporterSinkDeclaration;
|
|
34
|
+
type NonManagedSinkDeclaration = Exclude<SinkDeclaration, ManagedStandardOutputSinkDeclaration>;
|
|
35
|
+
type ManagedSinkAt1 = readonly [ManagedStandardOutputSinkDeclaration, ...SinkDeclaration[]];
|
|
36
|
+
type ManagedSinkAt2 = readonly [
|
|
37
|
+
NonManagedSinkDeclaration,
|
|
38
|
+
ManagedStandardOutputSinkDeclaration,
|
|
39
|
+
...SinkDeclaration[]
|
|
40
|
+
];
|
|
41
|
+
type ManagedSinkAt3 = readonly [
|
|
42
|
+
NonManagedSinkDeclaration,
|
|
43
|
+
NonManagedSinkDeclaration,
|
|
44
|
+
ManagedStandardOutputSinkDeclaration,
|
|
45
|
+
...SinkDeclaration[]
|
|
46
|
+
];
|
|
47
|
+
type ManagedSinkAt4 = readonly [
|
|
48
|
+
NonManagedSinkDeclaration,
|
|
49
|
+
NonManagedSinkDeclaration,
|
|
50
|
+
NonManagedSinkDeclaration,
|
|
51
|
+
ManagedStandardOutputSinkDeclaration,
|
|
52
|
+
...SinkDeclaration[]
|
|
53
|
+
];
|
|
54
|
+
type ManagedSinkAt5 = readonly [
|
|
55
|
+
NonManagedSinkDeclaration,
|
|
56
|
+
NonManagedSinkDeclaration,
|
|
57
|
+
NonManagedSinkDeclaration,
|
|
58
|
+
NonManagedSinkDeclaration,
|
|
59
|
+
ManagedStandardOutputSinkDeclaration,
|
|
60
|
+
...SinkDeclaration[]
|
|
61
|
+
];
|
|
62
|
+
type ManagedSinkAt6 = readonly [
|
|
63
|
+
NonManagedSinkDeclaration,
|
|
64
|
+
NonManagedSinkDeclaration,
|
|
65
|
+
NonManagedSinkDeclaration,
|
|
66
|
+
NonManagedSinkDeclaration,
|
|
67
|
+
NonManagedSinkDeclaration,
|
|
68
|
+
ManagedStandardOutputSinkDeclaration,
|
|
69
|
+
...SinkDeclaration[]
|
|
70
|
+
];
|
|
71
|
+
type ManagedSinkAt1To3 = ManagedSinkAt1 | ManagedSinkAt2 | ManagedSinkAt3;
|
|
72
|
+
type ManagedSinkAt4To6 = ManagedSinkAt4 | ManagedSinkAt5 | ManagedSinkAt6;
|
|
73
|
+
type ManagedStandardOutputSinkTuple = ManagedSinkAt1To3 | ManagedSinkAt4To6;
|
|
33
74
|
export declare class ReporterSinkConflictError extends Error {
|
|
34
75
|
constructor(message: string, options?: Readonly<ErrorOptions>);
|
|
35
76
|
}
|
|
@@ -81,31 +122,55 @@ type RunReporterEvent = RunEndReporterEvent | RunnerErrorReporterEvent | RunStar
|
|
|
81
122
|
type SuiteReporterEvent = SuiteEndReporterEvent | SuiteStartReporterEvent;
|
|
82
123
|
type TestReporterEvent = TestEndReporterEvent | TestProgressReporterEvent | TestStartReporterEvent;
|
|
83
124
|
export type ReporterEvent = RunReporterEvent | SuiteReporterEvent | TestReporterEvent;
|
|
84
|
-
|
|
125
|
+
type ManagedStandardOutputSinkPresence<FirstSink extends SinkDeclaration, RemainingSinks extends readonly SinkDeclaration[]> = FirstSink extends ManagedStandardOutputSinkDeclaration ? true : TupleIncludesManagedStandardOutputSink<RemainingSinks>;
|
|
126
|
+
type FirstDeclaredSink<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [
|
|
127
|
+
infer FirstSink extends SinkDeclaration,
|
|
128
|
+
...SinkDeclaration[]
|
|
129
|
+
] ? FirstSink : never;
|
|
130
|
+
type RemainingDeclaredSinks<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [
|
|
131
|
+
SinkDeclaration,
|
|
132
|
+
...infer RemainingSinks extends readonly SinkDeclaration[]
|
|
133
|
+
] ? RemainingSinks : never;
|
|
134
|
+
type TupleIncludesManagedStandardOutputSink<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [] ? false : ManagedStandardOutputSinkPresence<FirstDeclaredSink<Sinks>, RemainingDeclaredSinks<Sinks>>;
|
|
135
|
+
type HasManagedStandardOutputSink<Sinks extends readonly SinkDeclaration[]> = number extends Sinks['length'] ? false : TupleIncludesManagedStandardOutputSink<Sinks>;
|
|
136
|
+
type BaseRealTimeReporter<Sinks extends readonly SinkDeclaration[]> = {
|
|
85
137
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
86
138
|
readonly kind: 'real-time';
|
|
87
139
|
readonly name: string;
|
|
88
|
-
readonly sinks:
|
|
140
|
+
readonly sinks: Sinks;
|
|
141
|
+
};
|
|
142
|
+
type ManagedOutputEventCallback = (event: ReporterEvent) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
143
|
+
type ManagedOutputFinishCallback = (result: RunResult) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
144
|
+
type RealTimeReporterWithOutput<Sinks extends readonly SinkDeclaration[]> = BaseRealTimeReporter<Sinks> & {
|
|
145
|
+
readonly onEvent: ManagedOutputEventCallback;
|
|
146
|
+
readonly onFinish: ManagedOutputFinishCallback | null;
|
|
147
|
+
};
|
|
148
|
+
type RealTimeReporterWithoutOutput<Sinks extends readonly SinkDeclaration[]> = BaseRealTimeReporter<Sinks> & {
|
|
89
149
|
readonly onEvent: (event: ReporterEvent) => Promise<void> | void;
|
|
90
150
|
readonly onFinish: ((result: RunResult) => Promise<void> | void) | null;
|
|
91
151
|
};
|
|
92
|
-
|
|
152
|
+
type BaseFinalResultReporter<Sinks extends readonly SinkDeclaration[]> = {
|
|
93
153
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
94
154
|
readonly kind: 'final-result';
|
|
95
155
|
readonly name: string;
|
|
96
|
-
readonly sinks:
|
|
97
|
-
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
156
|
+
readonly sinks: Sinks;
|
|
98
157
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
readonly
|
|
102
|
-
readonly reportEvent: (reporters: readonly Reporter[], event: ReporterEvent) => Promise<readonly RunnerError[]>;
|
|
103
|
-
readonly reportResult: (reporters: readonly Reporter[], result: RunResult) => Promise<readonly RunnerError[]>;
|
|
158
|
+
type ManagedOutputResultCallback = (result: RunResult) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
159
|
+
type FinalResultReporterWithOutput<Sinks extends readonly SinkDeclaration[]> = BaseFinalResultReporter<Sinks> & {
|
|
160
|
+
readonly onResult: ManagedOutputResultCallback;
|
|
104
161
|
};
|
|
105
|
-
|
|
106
|
-
readonly
|
|
162
|
+
type FinalResultReporterWithoutOutput<Sinks extends readonly SinkDeclaration[]> = BaseFinalResultReporter<Sinks> & {
|
|
163
|
+
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
107
164
|
};
|
|
165
|
+
export type RealTimeReporter<Sinks extends readonly SinkDeclaration[] = readonly SinkDeclaration[]> = HasManagedStandardOutputSink<Sinks> extends true ? RealTimeReporterWithOutput<Sinks> : RealTimeReporterWithoutOutput<Sinks>;
|
|
166
|
+
export type FinalResultReporter<Sinks extends readonly SinkDeclaration[] = readonly SinkDeclaration[]> = HasManagedStandardOutputSink<Sinks> extends true ? FinalResultReporterWithOutput<Sinks> : FinalResultReporterWithoutOutput<Sinks>;
|
|
167
|
+
type OutputFinalReporter = FinalResultReporterWithOutput<ManagedStandardOutputSinkTuple>;
|
|
168
|
+
type OutputRealTimeReporter = RealTimeReporterWithOutput<ManagedStandardOutputSinkTuple>;
|
|
169
|
+
type SideEffectFinalReporter = FinalResultReporterWithoutOutput<readonly SinkDeclaration[]>;
|
|
170
|
+
type SideEffectRealTimeReporter = RealTimeReporterWithoutOutput<readonly SinkDeclaration[]>;
|
|
171
|
+
type OutputReporter = OutputFinalReporter | OutputRealTimeReporter;
|
|
172
|
+
type SideEffectReporter = SideEffectFinalReporter | SideEffectRealTimeReporter;
|
|
173
|
+
export type Reporter = OutputReporter | SideEffectReporter;
|
|
108
174
|
export declare function validateReporterSinks(reporters: readonly Reporter[]): void;
|
|
109
|
-
export declare function createReporterDispatcher(dependencies: ReporterDispatcherDependencies): ReporterDispatcher;
|
|
110
175
|
export {};
|
|
111
176
|
//# sourceMappingURL=reporter.d.ts.map
|
package/engine/reporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
|