-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.d.ts
67 lines (61 loc) · 2.34 KB
/
index.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
import { BlackAndWhite } from './experiments/black-and-white'
import { DoubleClicks } from './experiments/double-clicks'
import { Gremlins } from './experiments/gremlins'
import { HistorySwitch } from './experiments/history-switch'
import { PseudoLocalization } from './experiments/pseudo-localization'
import { RequestDelaying } from './experiments/request-delaying'
import { RequestDenylist } from './experiments/request-denylist'
import { RequestFailing } from './experiments/request-failing'
import { TimerThrottling } from './experiments/timer-throttling'
type Experiment =
| BlackAndWhite
| DoubleClicks
| Gremlins
| HistorySwitch
| PseudoLocalization
| RequestDelaying
| RequestDenylist
| RequestFailing
| TimerThrottling
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never
type OptionsOf<T extends Experiment> = true | Parameters<T['start']>[0]
type StatusOf<T extends Experiment> = ReturnType<T['getStatus']>
interface ChaosFrontendToolkit {
start(options?: {
blackAndWhite?: Expand<OptionsOf<BlackAndWhite>>
doubleClicks?: Expand<OptionsOf<DoubleClicks>>
gremlins?: Expand<OptionsOf<Gremlins>>
historySwitch?: Expand<OptionsOf<HistorySwitch>>
pseudoLocalization?: Expand<OptionsOf<PseudoLocalization>>
requestDelaying?: Expand<OptionsOf<RequestDelaying>>
requestDenylist?: Expand<OptionsOf<RequestDenylist>>
requestFailing?: Expand<OptionsOf<RequestFailing>>
timerThrottling?: Expand<OptionsOf<TimerThrottling>>
}): void
stop(): void
getStatus(): {
running: boolean
experiments: {
blackAndWhite: StatusOf<BlackAndWhite>
doubleClicks: StatusOf<DoubleClicks>
gremlins: StatusOf<Gremlins>
historySwitch: StatusOf<HistorySwitch>
pseudoLocalization: StatusOf<PseudoLocalization>
requestDelaying: StatusOf<RequestDelaying>
requestDenylist: StatusOf<RequestDenylist>
requestFailing: StatusOf<RequestFailing>
timerThrottling: StatusOf<TimerThrottling>
}
}
blackAndWhite: BlackAndWhite
doubleClicks: DoubleClicks
gremlins: Gremlins
historySwitch: HistorySwitch
pseudoLocalization: PseudoLocalization
requestDelaying: RequestDelaying
requestDenylist: RequestDenylist
requestFailing: RequestFailing
timerThrottling: TimerThrottling
}
declare const chaosFrontendToolkit: ChaosFrontendToolkit
export default chaosFrontendToolkit