UNPKG

@wiko/subscribable

Version:

Helpers for creating subscription-based event emitters

12 lines 799 B
import { TypedEventEmitter, TypedEventTarget } from './event-emitter'; type UnsubscribeFn = () => void; export interface DataPublisher<TDataByChannelName extends Record<string, unknown> = Record<string, unknown>> { on<const TChannelName extends keyof TDataByChannelName>(channelName: TChannelName, subscriber: (data: TDataByChannelName[TChannelName]) => void, options?: { signal: AbortSignal; }): UnsubscribeFn; } export declare function getDataPublisherFromEventEmitter<TEventMap extends Record<string, Event>>(eventEmitter: TypedEventEmitter<TEventMap> | TypedEventTarget<TEventMap>): DataPublisher<{ [TEventType in keyof TEventMap]: TEventMap[TEventType] extends CustomEvent ? TEventMap[TEventType]['detail'] : null; }>; export {}; //# sourceMappingURL=data-publisher.d.ts.map