UNPKG

@botol/dipo

Version:

## Simple Composite controller

16 lines (15 loc) 727 B
import { Context } from './context'; import { Handler } from './handler'; export declare type DipoEvent<T extends Context, C extends Context = Context> = (handler: Handler<T>) => Handler<C>; export declare function CreateEvent<T extends Context, C extends Context = Context>(event: DipoEvent<T, C>): DipoEvent<T, C>; export declare function CreateEvents<C extends Context, T extends { [key: string]: DipoEvent<Context, C>; }>(events: { [key in keyof T]: DipoEvent<T[key], C>; }): { [key in keyof T]: DipoEvent<T[key], C>; }; export declare type ExtractContext<E> = E extends DipoEvent<infer T, any> ? T : never; export declare type ExtractContexts<T> = { [P in keyof T]: ExtractContext<T[P]>; };