@overkill-dev/run 0.0.7 → 0.0.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.
- package/engine/execution.d.ts +4 -1
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +45 -32
- 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 +89 -21
- package/engine/reporter.d.ts.map +1 -1
- package/engine/reporter.js +57 -145
- package/engine/reporter.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +6 -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-command.d.ts.map +1 -1
- package/run/command-line-command.js +51 -6
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +2 -1
- package/run/command-line-runner.js.map +1 -1
- package/run/run-config.d.ts +3 -0
- package/run/run-config.d.ts.map +1 -1
- package/run/run-config.js +9 -0
- package/run/run-config.js.map +1 -1
- package/run/run.d.ts +7 -3
- package/run/run.d.ts.map +1 -1
- package/run/run.js +14 -2
- package/run/run.js.map +1 -1
- package/sbom.cdx.json +10 -10
package/engine/reporter.d.ts
CHANGED
|
@@ -1,35 +1,79 @@
|
|
|
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;
|
|
74
|
+
export declare class ReporterSinkConflictError extends Error {
|
|
75
|
+
constructor(message: string, options?: Readonly<ErrorOptions>);
|
|
76
|
+
}
|
|
33
77
|
type RunStartReporterEvent = {
|
|
34
78
|
readonly facts: RunFacts;
|
|
35
79
|
readonly kind: 'run-start';
|
|
@@ -78,31 +122,55 @@ type RunReporterEvent = RunEndReporterEvent | RunnerErrorReporterEvent | RunStar
|
|
|
78
122
|
type SuiteReporterEvent = SuiteEndReporterEvent | SuiteStartReporterEvent;
|
|
79
123
|
type TestReporterEvent = TestEndReporterEvent | TestProgressReporterEvent | TestStartReporterEvent;
|
|
80
124
|
export type ReporterEvent = RunReporterEvent | SuiteReporterEvent | TestReporterEvent;
|
|
81
|
-
|
|
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[]> = {
|
|
82
137
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
83
138
|
readonly kind: 'real-time';
|
|
84
139
|
readonly name: string;
|
|
85
|
-
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> & {
|
|
86
149
|
readonly onEvent: (event: ReporterEvent) => Promise<void> | void;
|
|
87
150
|
readonly onFinish: ((result: RunResult) => Promise<void> | void) | null;
|
|
88
151
|
};
|
|
89
|
-
|
|
152
|
+
type BaseFinalResultReporter<Sinks extends readonly SinkDeclaration[]> = {
|
|
90
153
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
91
154
|
readonly kind: 'final-result';
|
|
92
155
|
readonly name: string;
|
|
93
|
-
readonly sinks:
|
|
94
|
-
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
156
|
+
readonly sinks: Sinks;
|
|
95
157
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
readonly
|
|
99
|
-
readonly reportEvent: (reporters: readonly Reporter[], event: ReporterEvent) => Promise<readonly RunnerError[]>;
|
|
100
|
-
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;
|
|
101
161
|
};
|
|
102
|
-
|
|
103
|
-
readonly
|
|
162
|
+
type FinalResultReporterWithoutOutput<Sinks extends readonly SinkDeclaration[]> = BaseFinalResultReporter<Sinks> & {
|
|
163
|
+
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
104
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;
|
|
105
174
|
export declare function validateReporterSinks(reporters: readonly Reporter[]): void;
|
|
106
|
-
export declare function createReporterDispatcher(dependencies: ReporterDispatcherDependencies): ReporterDispatcher;
|
|
107
175
|
export {};
|
|
108
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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"}
|
package/engine/reporter.js
CHANGED
|
@@ -1,35 +1,77 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const managedStandardOutputSinkKinds = [
|
|
2
|
+
'stderr-managed-primary',
|
|
3
|
+
'stderr-managed-supplemental',
|
|
4
|
+
'stdout-managed-primary',
|
|
5
|
+
'stdout-managed-supplemental'
|
|
6
|
+
];
|
|
7
|
+
const managedStandardOutputSinkKindNames = managedStandardOutputSinkKinds;
|
|
8
|
+
export class ReporterSinkConflictError extends Error {
|
|
9
|
+
constructor(message, options) {
|
|
10
|
+
super(message, options);
|
|
11
|
+
this.name = 'ReporterSinkConflictError';
|
|
12
|
+
}
|
|
4
13
|
}
|
|
5
14
|
function pathSinkKey(sink) {
|
|
6
15
|
return `path:${sink.path}`;
|
|
7
16
|
}
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
function standardOutputStream(sink) {
|
|
18
|
+
return sink.kind.startsWith('stderr') ? 'stderr' : 'stdout';
|
|
19
|
+
}
|
|
20
|
+
function isManagedStandardOutputSink(sink) {
|
|
21
|
+
return managedStandardOutputSinkKindNames.includes(sink.kind);
|
|
22
|
+
}
|
|
23
|
+
function standardOutputRole(sink) {
|
|
24
|
+
if (sink.kind.endsWith('primary')) {
|
|
25
|
+
return 'primary';
|
|
14
26
|
}
|
|
27
|
+
return 'supplemental';
|
|
28
|
+
}
|
|
29
|
+
function standardOutputSinkConflictMessage(stream) {
|
|
30
|
+
return `Reporter sink conflict: ${stream} is claimed by incompatible reporters.`;
|
|
31
|
+
}
|
|
32
|
+
function nextClaimedStandardOutputRole(existingSink, sink) {
|
|
33
|
+
return existingSink?.role === 'primary' ? 'primary' : standardOutputRole(sink);
|
|
34
|
+
}
|
|
35
|
+
function claimStandardOutputSink(claimedSinks, key, sink) {
|
|
15
36
|
const updatedSinks = new Map(claimedSinks);
|
|
16
|
-
return updatedSinks.set(key,
|
|
17
|
-
|
|
37
|
+
return updatedSinks.set(key, sink);
|
|
38
|
+
}
|
|
39
|
+
function validateRawStandardOutputSink(claimedSinks, sink) {
|
|
40
|
+
const key = standardOutputStream(sink);
|
|
41
|
+
if (claimedSinks.has(key)) {
|
|
42
|
+
throw new ReporterSinkConflictError(standardOutputSinkConflictMessage(key));
|
|
43
|
+
}
|
|
44
|
+
return claimStandardOutputSink(claimedSinks, key, { mode: 'raw', role: null });
|
|
45
|
+
}
|
|
46
|
+
function validateManagedStandardOutputSink(claimedSinks, sink) {
|
|
47
|
+
const key = standardOutputStream(sink);
|
|
48
|
+
const existingSink = claimedSinks.get(key);
|
|
49
|
+
const sinkRole = standardOutputRole(sink);
|
|
50
|
+
if (existingSink?.mode === 'raw' || existingSink?.role === 'primary' && sinkRole === 'primary') {
|
|
51
|
+
throw new ReporterSinkConflictError(standardOutputSinkConflictMessage(key));
|
|
52
|
+
}
|
|
53
|
+
return claimStandardOutputSink(claimedSinks, key, {
|
|
54
|
+
mode: 'managed',
|
|
55
|
+
role: nextClaimedStandardOutputRole(existingSink, sink)
|
|
18
56
|
});
|
|
19
57
|
}
|
|
20
58
|
function validatePathSink(claimedSinks, sink) {
|
|
21
59
|
const key = pathSinkKey(sink);
|
|
22
60
|
if (claimedSinks.has(key)) {
|
|
23
|
-
throw new
|
|
61
|
+
throw new ReporterSinkConflictError(`Reporter sink conflict: path "${sink.path}" is claimed by multiple reporters.`);
|
|
24
62
|
}
|
|
25
63
|
const updatedSinks = new Map(claimedSinks);
|
|
26
64
|
return updatedSinks.set(key, {
|
|
27
|
-
|
|
65
|
+
mode: 'raw',
|
|
66
|
+
role: null
|
|
28
67
|
});
|
|
29
68
|
}
|
|
30
69
|
function validateReporterSink(claimedSinks, sink) {
|
|
31
|
-
if (sink.kind === 'stdout' || sink.kind === 'stderr') {
|
|
32
|
-
return
|
|
70
|
+
if (sink.kind === 'stdout-raw' || sink.kind === 'stderr-raw') {
|
|
71
|
+
return validateRawStandardOutputSink(claimedSinks, sink);
|
|
72
|
+
}
|
|
73
|
+
if (isManagedStandardOutputSink(sink)) {
|
|
74
|
+
return validateManagedStandardOutputSink(claimedSinks, sink);
|
|
33
75
|
}
|
|
34
76
|
if (sink.kind === 'file' || sink.kind === 'directory') {
|
|
35
77
|
return validatePathSink(claimedSinks, sink);
|
|
@@ -44,134 +86,4 @@ export function validateReporterSinks(reporters) {
|
|
|
44
86
|
}
|
|
45
87
|
}
|
|
46
88
|
}
|
|
47
|
-
function formatReporterError(reporter, cause) {
|
|
48
|
-
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
49
|
-
return {
|
|
50
|
-
attributedTo: null,
|
|
51
|
-
cause,
|
|
52
|
-
message: `${reporter.name}: ${reason}`,
|
|
53
|
-
subtype: 'reporter'
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function timeoutError(reporter) {
|
|
57
|
-
return new Error(`${reporter.name} reporter callback timed out after ${callbackTimeoutMs} ms.`);
|
|
58
|
-
}
|
|
59
|
-
async function runReporterCallback(callback) {
|
|
60
|
-
await callback();
|
|
61
|
-
}
|
|
62
|
-
export function createReporterDispatcher(dependencies) {
|
|
63
|
-
const { wallClock } = dependencies;
|
|
64
|
-
function createReporterTimeout(reporter) {
|
|
65
|
-
const { promise, reject } = Promise.withResolvers();
|
|
66
|
-
const timeout = wallClock.setTimeout(function rejectTimedOutCallback() {
|
|
67
|
-
reject(timeoutError(reporter));
|
|
68
|
-
}, callbackTimeoutMs);
|
|
69
|
-
return {
|
|
70
|
-
cancel() {
|
|
71
|
-
wallClock.clearTimeout(timeout);
|
|
72
|
-
},
|
|
73
|
-
promise
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
async function awaitReporterCallback(reporter, callback) {
|
|
77
|
-
const reporterTimeout = createReporterTimeout(reporter);
|
|
78
|
-
try {
|
|
79
|
-
await Promise.race([runReporterCallback(callback), reporterTimeout.promise]);
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
return formatReporterError(reporter, error);
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
reporterTimeout.cancel();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async function reportEventToReporter(reporter, event) {
|
|
90
|
-
const error = await awaitReporterCallback(reporter, function sendReporterEvent() {
|
|
91
|
-
return reporter.onEvent(event);
|
|
92
|
-
});
|
|
93
|
-
if (error === null) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
return { error, reporter };
|
|
97
|
-
}
|
|
98
|
-
async function reportRunnerErrorToOtherReporters(reporters, failedReporter, error) {
|
|
99
|
-
const event = { error, kind: 'runner-error' };
|
|
100
|
-
const failures = await Promise.all(reporters.map(async function reportRunnerError(reporter) {
|
|
101
|
-
if (reporter.kind !== 'real-time' || reporter === failedReporter) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
return reportEventToReporter(reporter, event);
|
|
105
|
-
}));
|
|
106
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
107
|
-
return failure === null ? [] : [failure.error];
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
async function collectReporterErrorsWithNotifications(reporters, reporterErrors) {
|
|
111
|
-
const notificationErrors = await Promise.all(reporterErrors.map(async function reportError(failure) {
|
|
112
|
-
return reportRunnerErrorToOtherReporters(reporters, failure.reporter, failure.error);
|
|
113
|
-
}));
|
|
114
|
-
return [
|
|
115
|
-
...reporterErrors.map(function toError(failure) {
|
|
116
|
-
return failure.error;
|
|
117
|
-
}),
|
|
118
|
-
...notificationErrors.flat()
|
|
119
|
-
];
|
|
120
|
-
}
|
|
121
|
-
async function reportEvent(reporters, event) {
|
|
122
|
-
const failures = await Promise.all(reporters.map(async function reportRealTimeEvent(reporter) {
|
|
123
|
-
if (reporter.kind !== 'real-time') {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return reportEventToReporter(reporter, event);
|
|
127
|
-
}));
|
|
128
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
129
|
-
return failure === null ? [] : [failure];
|
|
130
|
-
});
|
|
131
|
-
if (event.kind === 'runner-error') {
|
|
132
|
-
return reporterErrors.map(function toError(failure) {
|
|
133
|
-
return failure.error;
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
137
|
-
}
|
|
138
|
-
async function reportResult(reporters, result) {
|
|
139
|
-
const failures = await Promise.all(reporters.map(async function reportFinalResult(reporter) {
|
|
140
|
-
if (reporter.kind === 'final-result') {
|
|
141
|
-
const error = await awaitReporterCallback(reporter, function reportResultToFinalReporter() {
|
|
142
|
-
return reporter.onResult(result);
|
|
143
|
-
});
|
|
144
|
-
return error === null ? null : { error, reporter };
|
|
145
|
-
}
|
|
146
|
-
if (reporter.onFinish === null) {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
const { onFinish } = reporter;
|
|
150
|
-
const error = await awaitReporterCallback(reporter, function reportResultToRealTimeReporter() {
|
|
151
|
-
return onFinish(result);
|
|
152
|
-
});
|
|
153
|
-
return error === null ? null : { error, reporter };
|
|
154
|
-
}));
|
|
155
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
156
|
-
return failure === null ? [] : [failure];
|
|
157
|
-
});
|
|
158
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
159
|
-
}
|
|
160
|
-
async function disposeReporters(reporters) {
|
|
161
|
-
const failures = await Promise.all(reporters.map(async function disposeReporter(reporter) {
|
|
162
|
-
if (reporter.dispose === null) {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const { dispose } = reporter;
|
|
166
|
-
const error = await awaitReporterCallback(reporter, function disposeReporterResources() {
|
|
167
|
-
return dispose();
|
|
168
|
-
});
|
|
169
|
-
return error === null ? null : { error, reporter };
|
|
170
|
-
}));
|
|
171
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
172
|
-
return failure === null ? [] : [failure.error];
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
return { disposeReporters, reportEvent, reportResult };
|
|
176
|
-
}
|
|
177
89
|
//# sourceMappingURL=reporter.js.map
|
package/engine/reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@enormora/wall-clock": "0.0.3",
|
|
8
|
-
"@schema-hub/zod-error-formatter": "0.0.
|
|
8
|
+
"@schema-hub/zod-error-formatter": "0.0.16",
|
|
9
9
|
"ansi-escapes": "7.3.0",
|
|
10
10
|
"diff": "9.0.0",
|
|
11
11
|
"figures": "6.1.0",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"./run/run.js"
|
|
50
50
|
],
|
|
51
51
|
"type": "module",
|
|
52
|
-
"version": "0.0.
|
|
52
|
+
"version": "0.0.9"
|
|
53
53
|
}
|
package/readme.md
CHANGED
|
@@ -40,7 +40,11 @@ until their command implementations land.
|
|
|
40
40
|
|
|
41
41
|
Config loading is common command-line infrastructure, not plugin discovery.
|
|
42
42
|
The command-line runner loads native Node config files, selects the default
|
|
43
|
-
line reporter when project config omits reporters,
|
|
44
|
-
|
|
43
|
+
line reporter when project config omits reporters, defaults managed reporter
|
|
44
|
+
output to the plain renderer, returns fallback diagnostics for the binary
|
|
45
|
+
wrapper to write, and maps run outcomes to stable exit codes.
|
|
45
46
|
Installing a package does not add commands, and there is no installed-package
|
|
46
47
|
scan, dynamic command registry, or command plugin lifecycle.
|
|
48
|
+
|
|
49
|
+
Project config may set `outputRenderer` to adapt managed line intents, for
|
|
50
|
+
example to render GitHub Actions annotations from a brief stdout reporter.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-failure-rendering.js","sourceRoot":"","sources":["../../../../source/reporters/line-failure-rendering.ts"],"names":[],"mappings":"AAAA,OAAmB,aAAa,CAAC;AAYjC,OAA+C,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"line-failure-rendering.js","sourceRoot":"","sources":["../../../../source/reporters/line-failure-rendering.ts"],"names":[],"mappings":"AAAA,OAAmB,aAAa,CAAC;AAYjC,OAA+C,iCAAiC,CAAC;AACjF,OAAqC,gCAAgC,CAAC;AA4D3D"}
|
|
@@ -98,7 +98,7 @@ export function createLineReporter(dependencies) {
|
|
|
98
98
|
dispose: null,
|
|
99
99
|
kind: 'real-time',
|
|
100
100
|
name: 'line',
|
|
101
|
-
sinks: [{
|
|
101
|
+
sinks: [{ kind: 'stdout-raw' }],
|
|
102
102
|
async onEvent(event) {
|
|
103
103
|
if (event.kind === 'run-start') {
|
|
104
104
|
terminal.line(infoSymbol, `Test run started: ${event.root.name}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-reporter.js","sourceRoot":"","sources":["../../../../source/reporters/line-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,aAAa,CAAC;AAIjC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAA2B,MAAM,eAAe,CAAC;AAElF,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAM7C,SAAS,MAAM,CAAC,KAAa;IACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAC9B,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB;IACvC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACtC,OAAO,GAAG,UAAU,KAAK,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,OAAoB,EAAE,UAAkB;IAC1E,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;IAEjF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAE,WAAW,EAAE,OAAO,CAAE,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAE,aAAa,EAAE,OAAO,CAAE,CAAC;IACtC,CAAC;IAED,OAAO,CAAE,UAAU,EAAE,OAAO,CAAE,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,KAAgE;IACrF,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,mBAAmB,CAAC,SAAS,EAAE,SAAS;QAC3E,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB;IACtC,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;AAC5E,CAAC;AAED,SAAS,WAAW,CAChB,QAA4B,EAC5B,UAAkB,EAClB,OAAoB;IAEpB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,QAA4B,EAAE,MAAiB;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM;SACpB,YAAY;SACZ,MAAM,CAAC,SAAS,OAAO,CAAC,KAAK;QAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;IACrC,CAAC,CAAC;SACD,MAAM,CAAC;IACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC;IACvG,MAAM,QAAQ,GAAG;QACb,GAAG,OAAO,CAAC,MAAM,OAAO;QACxB,GAAG,OAAO,CAAC,MAAM,OAAO;QACxB,GAAG,OAAO,CAAC,OAAO,OAAO;QACzB,GAAG,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,GAAG,OAAO,CAAC,YAAY,eAAe,CAAE;QAC/E,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,GAAG,UAAU,QAAQ,CAAE;KACvD;SACI,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC;IAC/F,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,UAAU,gBAAgB,OAAO,CAAC,OAAO,aAAa,QAAQ,WAAW,CAAC;IAE1G,QAAQ,CAAC,IAAI,CACT,UAAU,EACV,GAAG,YAAY,KAAK,QAAQ,IAAI,aAAa,OAAO,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAC1F,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,QAA4B,EAAE,OAAgC;IAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACX,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,YAAsC;IACrE,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IACvC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAC7D,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,SAAS,UAAU,CAAC,KAA6D;QAC7E,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAE1F,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED,SAAS,aAAa,CAAC,KAAgE;QACnF,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5E,UAAU,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"line-reporter.js","sourceRoot":"","sources":["../../../../source/reporters/line-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=source-location-rendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-location-rendering.js","sourceRoot":"","sources":["../../../../source/reporters/source-location-rendering.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-command.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-line-command.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnG,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG;IAC5D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,GAAG;IAC3D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAE1G,MAAM,MAAM,2BAA2B,GAAG;IACtC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;CAC9C,CAAC;AAsEF,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,SAAS,EACjB,sBAAsB,EAAE,OAAO,GAChC,SAAS,MAAM,EAAE,CAOnB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,mBAAmB,CAchF;AAcD,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAgB/F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReporterSinkConflictError } from "../engine/reporter.js";
|
|
1
2
|
import { RunResolutionError } from "./run.js";
|
|
2
3
|
import { RunConfigError } from "./run-config.js";
|
|
3
4
|
export const commandLineExitCodes = Object.freeze({
|
|
@@ -18,6 +19,49 @@ function formatError(error) {
|
|
|
18
19
|
}
|
|
19
20
|
return String(error);
|
|
20
21
|
}
|
|
22
|
+
function isInspectableObject(value) {
|
|
23
|
+
return typeof value === 'object' && value !== null;
|
|
24
|
+
}
|
|
25
|
+
function isRunnerError(value) {
|
|
26
|
+
return isInspectableObject(value) &&
|
|
27
|
+
Object.hasOwn(value, 'message') &&
|
|
28
|
+
Object.hasOwn(value, 'subtype') &&
|
|
29
|
+
typeof value.message === 'string' &&
|
|
30
|
+
typeof value.subtype === 'string';
|
|
31
|
+
}
|
|
32
|
+
function aggregateEntries(error) {
|
|
33
|
+
return Array.isArray(error.errors) ? error.errors : [];
|
|
34
|
+
}
|
|
35
|
+
function primaryError(error) {
|
|
36
|
+
if (!(error instanceof AggregateError)) {
|
|
37
|
+
return error;
|
|
38
|
+
}
|
|
39
|
+
return error.cause ?? aggregateEntries(error)[0] ?? error;
|
|
40
|
+
}
|
|
41
|
+
function formatSupplementalError(error) {
|
|
42
|
+
if (isRunnerError(error)) {
|
|
43
|
+
return formatRunnerError(error);
|
|
44
|
+
}
|
|
45
|
+
return `Overkill internal error: ${formatError(error)}`;
|
|
46
|
+
}
|
|
47
|
+
function formatErrorDiagnostics(label, error) {
|
|
48
|
+
const primary = primaryError(error);
|
|
49
|
+
const diagnostics = [`Overkill ${label}: ${formatError(primary)}`];
|
|
50
|
+
if (!(error instanceof AggregateError)) {
|
|
51
|
+
return diagnostics;
|
|
52
|
+
}
|
|
53
|
+
let skippedPrimary = false;
|
|
54
|
+
return [
|
|
55
|
+
...diagnostics,
|
|
56
|
+
...aggregateEntries(error).flatMap(function formatAggregateEntry(entry) {
|
|
57
|
+
if (!skippedPrimary && entry === primary) {
|
|
58
|
+
skippedPrimary = true;
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
return [formatSupplementalError(entry)];
|
|
62
|
+
})
|
|
63
|
+
];
|
|
64
|
+
}
|
|
21
65
|
export function formatFallbackDiagnostics(result, reportersClaimTerminal) {
|
|
22
66
|
const reporterErrors = result.runnerErrors.filter(function isReporterError(error) {
|
|
23
67
|
return error.subtype === 'reporter';
|
|
@@ -40,20 +84,21 @@ export function readExitCodeFromRunResult(result) {
|
|
|
40
84
|
function createCommandLineErrorResult(exitCode, label, error) {
|
|
41
85
|
return {
|
|
42
86
|
exitCode,
|
|
43
|
-
fallbackDiagnostics:
|
|
87
|
+
fallbackDiagnostics: formatErrorDiagnostics(label, error),
|
|
44
88
|
runResult: null
|
|
45
89
|
};
|
|
46
90
|
}
|
|
47
91
|
export function createCommandLineErrorResultFromUnknown(error) {
|
|
48
|
-
|
|
92
|
+
const classifiedError = primaryError(error);
|
|
93
|
+
if (classifiedError instanceof RunConfigError) {
|
|
49
94
|
return createCommandLineErrorResult(commandLineExitCodes.argumentOrConfig, 'configuration error', error);
|
|
50
95
|
}
|
|
51
|
-
if (
|
|
52
|
-
return createCommandLineErrorResult(commandLineExitCodes.argumentOrConfig, 'argument error', error);
|
|
53
|
-
}
|
|
54
|
-
if (error instanceof TypeError && error.message.startsWith('Reporter sink conflict:')) {
|
|
96
|
+
if (classifiedError instanceof ReporterSinkConflictError) {
|
|
55
97
|
return createCommandLineErrorResult(commandLineExitCodes.argumentOrConfig, 'configuration error', error);
|
|
56
98
|
}
|
|
99
|
+
if (classifiedError instanceof RunResolutionError) {
|
|
100
|
+
return createCommandLineErrorResult(commandLineExitCodes.argumentOrConfig, 'argument error', error);
|
|
101
|
+
}
|
|
57
102
|
return createCommandLineErrorResult(commandLineExitCodes.internalCrash, 'internal error', error);
|
|
58
103
|
}
|
|
59
104
|
//# sourceMappingURL=command-line-command.js.map
|