evently-react
Version:
A Hook-Based Framework for Event-Driven React Apps
26 lines (25 loc) • 1.02 kB
TypeScript
import { Events } from '../types';
import { Logger } from '../utils';
type EventCallback<E extends keyof Events> = (payload?: Events[E]) => void;
type Middleware<E extends keyof Events> = (event: E, payload: Events[E]) => Events[E];
interface EventBusOptions {
cacheTTL?: number;
cacheEnabled?: boolean;
logger?: typeof Logger;
}
export declare class EventBus {
private events;
private globalMiddlewares;
private eventSpecificMiddlewares;
private cache;
private cacheTTL;
private cacheEnabled;
private logger;
constructor(options?: EventBusOptions);
emit<E extends keyof Events>(event: E, payload?: Events[E]): void;
subscribe<E extends keyof Events>(event: E, callback: EventCallback<E>, priority?: number): () => void;
unsubscribe<E extends keyof Events>(event: E, callback: EventCallback<E>): void;
use<E extends keyof Events>(middleware: Middleware<E>): void;
useForEvent<E extends keyof Events>(event: E, middleware: Middleware<E>): void;
}
export {};