|
1 | | -type ActionHandler<Action, ActionType> = ( |
| 1 | +export type ActionHandler<Action, ActionType> = ( |
2 | 2 | ...args: ExtractActionParameters<Action, ActionType> |
3 | 3 | ) => ExtractActionResponse<Action, ActionType>; |
4 | | -type ExtractActionParameters<Action, T> = Action extends { |
| 4 | +export type ExtractActionParameters<Action, T> = Action extends { |
5 | 5 | type: T; |
6 | 6 | handler: (...args: infer H) => any; |
7 | 7 | } |
8 | 8 | ? H |
9 | 9 | : never; |
10 | | -type ExtractActionResponse<Action, T> = Action extends { |
| 10 | +export type ExtractActionResponse<Action, T> = Action extends { |
11 | 11 | type: T; |
12 | 12 | handler: (...args: any) => infer H; |
13 | 13 | } |
14 | 14 | ? H |
15 | 15 | : never; |
16 | 16 |
|
17 | | -type ExtractEventHandler<Event, T> = Event extends { type: T; payload: infer P } |
| 17 | +export type ExtractEventHandler<Event, T> = Event extends { |
| 18 | + type: T; |
| 19 | + payload: infer P; |
| 20 | +} |
18 | 21 | ? P extends unknown[] |
19 | 22 | ? (...payload: P) => void |
20 | 23 | : never |
21 | 24 | : never; |
22 | | -type ExtractEventPayload<Event, T> = Event extends { type: T; payload: infer P } |
| 25 | +export type ExtractEventPayload<Event, T> = Event extends { |
| 26 | + type: T; |
| 27 | + payload: infer P; |
| 28 | +} |
23 | 29 | ? P |
24 | 30 | : never; |
25 | 31 |
|
26 | | -type GenericEventHandler = (...args: unknown[]) => void; |
| 32 | +export type GenericEventHandler = (...args: unknown[]) => void; |
27 | 33 |
|
28 | | -type SelectorFunction<Args extends unknown[], ReturnValue> = ( |
| 34 | +export type SelectorFunction<Args extends unknown[], ReturnValue> = ( |
29 | 35 | ...args: Args |
30 | 36 | ) => ReturnValue; |
31 | | -type SelectorEventHandler<SelectorReturnValue> = ( |
| 37 | +export type SelectorEventHandler<SelectorReturnValue> = ( |
32 | 38 | newValue: SelectorReturnValue, |
33 | 39 | previousValue: SelectorReturnValue | undefined, |
34 | 40 | ) => void; |
|
0 commit comments