-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
general.ts
78 lines (66 loc) · 1.61 KB
/
general.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
export type Awaitable<T> = T | PromiseLike<T>
export type Nullable<T> = T | null | undefined
export type Arrayable<T> = T | Array<T>
export type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never
export type MergeInsertions<T> =
T extends object
? { [K in keyof T]: MergeInsertions<T[K]> }
: T
export type DeepMerge<F, S> = MergeInsertions<{
[K in keyof F | keyof S]: K extends keyof S & keyof F
? DeepMerge<F[K], S[K]>
: K extends keyof S
? S[K]
: K extends keyof F
? F[K]
: never;
}>
export type MutableArray<T extends readonly any[]> = { -readonly [k in keyof T]: T[k] }
export interface Constructable {
new (...args: any[]): any
}
export interface ModuleCache {
promise?: Promise<any>
exports?: any
code?: string
}
export interface EnvironmentReturn {
teardown: (global: any) => Awaitable<void>
}
export interface Environment {
name: string
setup(global: any, options: Record<string, any>): Awaitable<EnvironmentReturn>
}
export interface UserConsoleLog {
content: string
type: 'stdout' | 'stderr'
taskId?: string
time: number
}
export interface Position {
line: number
column: number
}
export interface ParsedStack {
method: string
file: string
line: number
column: number
sourcePos?: Position
}
export interface ErrorWithDiff extends Error {
name: string
nameStr?: string
stack?: string
stackStr?: string
stacks?: ParsedStack[]
showDiff?: boolean
actual?: any
expected?: any
operator?: string
}
export interface ModuleGraphData {
graph: Record<string, string[]>
externalized: string[]
inlined: string[]
}