@botol/dipo
Version:
## Simple Composite controller
21 lines (20 loc) • 743 B
TypeScript
import { Context } from './context';
import { DipoEvent } from './event';
import { Handler, HandlerReturn } from './handler';
export declare class Dipo<E extends {
[key: string]: Context;
}, D extends Context> {
private events;
private handlers;
constructor(events: {
[P in keyof E]: DipoEvent<E[P], D>;
});
addEvent<T extends keyof E>(event: T, handler: DipoEvent<E[T], D>): void;
middleware<T extends Context = Context>(handler: Handler<Partial<T> & D>): Dipo<{
[P in keyof E]: T & E[P];
}, T & D>;
on<T extends keyof E>(event: T, handler: Handler<E[T]>): Dipo<E, D>;
use(handler: Handler<D>): Dipo<E, D>;
handle(context: D): HandlerReturn;
private next;
}