-
-
Notifications
You must be signed in to change notification settings - Fork 203
/
result-main.test-d.ts
96 lines (91 loc) · 3.97 KB
/
result-main.test-d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import type {SignalConstants} from 'node:os';
import {expectType, expectAssignable} from 'tsd';
import {
execa,
execaSync,
ExecaError,
ExecaSyncError,
type Result,
type SyncResult,
} from '../../index.js';
type AnyChunk = string | Uint8Array | string[] | unknown[] | undefined;
expectType<AnyChunk>({} as Result['stdout']);
expectType<AnyChunk>({} as Result['stderr']);
expectType<AnyChunk>({} as Result['all']);
expectAssignable<[undefined, AnyChunk, AnyChunk, ...AnyChunk[]]>({} as Result['stdio']);
expectType<AnyChunk>({} as SyncResult['stdout']);
expectType<AnyChunk>({} as SyncResult['stderr']);
expectType<AnyChunk>({} as SyncResult['all']);
expectAssignable<[undefined, AnyChunk, AnyChunk, ...AnyChunk[]]>({} as SyncResult['stdio']);
const unicornsResult = await execa('unicorns', {all: true});
expectAssignable<Result>(unicornsResult);
expectType<string>(unicornsResult.command);
expectType<string>(unicornsResult.escapedCommand);
expectType<number | undefined>(unicornsResult.exitCode);
expectType<boolean>(unicornsResult.failed);
expectType<boolean>(unicornsResult.timedOut);
expectType<boolean>(unicornsResult.isCanceled);
expectType<boolean>(unicornsResult.isTerminated);
expectType<boolean>(unicornsResult.isMaxBuffer);
expectType<keyof SignalConstants | undefined>(unicornsResult.signal);
expectType<string | undefined>(unicornsResult.signalDescription);
expectType<string>(unicornsResult.cwd);
expectType<number>(unicornsResult.durationMs);
expectType<Result[]>(unicornsResult.pipedFrom);
const unicornsResultSync = execaSync('unicorns', {all: true});
expectAssignable<SyncResult>(unicornsResultSync);
expectType<string>(unicornsResultSync.command);
expectType<string>(unicornsResultSync.escapedCommand);
expectType<number | undefined>(unicornsResultSync.exitCode);
expectType<boolean>(unicornsResultSync.failed);
expectType<boolean>(unicornsResultSync.timedOut);
expectType<boolean>(unicornsResultSync.isCanceled);
expectType<boolean>(unicornsResultSync.isTerminated);
expectType<boolean>(unicornsResultSync.isMaxBuffer);
expectType<keyof SignalConstants | undefined>(unicornsResultSync.signal);
expectType<string | undefined>(unicornsResultSync.signalDescription);
expectType<string>(unicornsResultSync.cwd);
expectType<number>(unicornsResultSync.durationMs);
expectType<[]>(unicornsResultSync.pipedFrom);
const error = new Error('.');
if (error instanceof ExecaError) {
expectAssignable<ExecaError>(error);
expectType<'ExecaError'>(error.name);
expectType<string>(error.message);
expectType<number | undefined>(error.exitCode);
expectType<boolean>(error.failed);
expectType<boolean>(error.timedOut);
expectType<boolean>(error.isCanceled);
expectType<boolean>(error.isTerminated);
expectType<boolean>(error.isMaxBuffer);
expectType<keyof SignalConstants | undefined>(error.signal);
expectType<string | undefined>(error.signalDescription);
expectType<string>(error.cwd);
expectType<number>(error.durationMs);
expectType<string>(error.shortMessage);
expectType<string>(error.originalMessage);
expectType<string | undefined>(error.code);
expectType<unknown>(error.cause);
expectType<Result[]>(error.pipedFrom);
}
const errorSync = new Error('.');
if (errorSync instanceof ExecaSyncError) {
expectAssignable<ExecaSyncError>(errorSync);
expectType<'ExecaSyncError'>(errorSync.name);
expectType<string>(errorSync.message);
expectType<number | undefined>(errorSync.exitCode);
expectType<boolean>(errorSync.failed);
expectType<boolean>(errorSync.timedOut);
expectType<boolean>(errorSync.isCanceled);
expectType<boolean>(errorSync.isTerminated);
expectType<boolean>(errorSync.isMaxBuffer);
expectType<keyof SignalConstants | undefined>(errorSync.signal);
expectType<string | undefined>(errorSync.signalDescription);
expectType<string>(errorSync.cwd);
expectType<number>(errorSync.durationMs);
expectType<string>(errorSync.shortMessage);
expectType<string>(errorSync.originalMessage);
expectType<string | undefined>(errorSync.code);
expectType<unknown>(errorSync.cause);
expectType<[]>(errorSync.pipedFrom);
}