@donverduyn/react-runtime
Version:
effect-ts react integration
18 lines (17 loc) • 550 B
TypeScript
export declare class EventEmitter<T extends unknown[], A> {
private listeners;
private resolvers;
private eventQueue;
emit: (...args: T) => Promise<A>;
subscribe(listener: (data: T, eventId: string) => void): void;
private notifyListeners;
resolve(eventId: string): (result: A) => void;
waitForEvent(): Promise<{
data: T;
eventId: string;
}>;
}
export declare function createAsyncIterator<T extends unknown[], A>(emitter: EventEmitter<T, A>): AsyncGenerator<{
data: T;
eventId: string;
}>;