UNPKG

@shockpkg/core

Version:
39 lines (38 loc) 782 B
/** * Event dispatcher. */ export declare class Dispatcher<T> { /** * Event context. */ protected readonly _context: unknown; /** * Event handlers. */ protected readonly _handlers: Set<(event: T) => unknown>; /** * Event dispatcher constructor. * * @param context Context object. */ constructor(context: unknown); /** * Add listener. * * @param handler Event handler. */ on(handler: (event: T) => unknown): void; /** * Remove listener. * * @param handler Event handler. */ off(handler: (event: T) => unknown): void; /** * Trigger handlers. * * @param event Event data. * @returns Handler count. */ trigger(event: T): number; }