UNPKG

create-pubsub

Version:

A tiny Event Emitter and Observable Store.

24 lines (19 loc) 887 B
import { Draft } from 'immer'; type SubscriptionHandler<T = void> = (data: T, previousData: T) => void; type PublishFunction<T = void> = (data: T) => void; type UnsubscribeFunction = () => void; type GetFunction<T> = () => T; type SubscribeFunction<T> = (handler: SubscriptionHandler<T>) => UnsubscribeFunction; type DraftFunction<T> = (draft: Draft<T>) => void; type PublishImmerFunction<T> = (draftFunction: DraftFunction<T>) => void; declare function usePubSub<T>([publish, subscribe, get]: [ publish: PublishFunction<T>, subscribe: SubscribeFunction<T>, getStoredData: GetFunction<T> ]): [data: T, publish: PublishFunction<T>]; declare function usePubSub<T>([publish, subscribe, get]: [ publish: PublishImmerFunction<T>, subscribe: SubscribeFunction<T>, getStoredData: GetFunction<T> ]): [data: T, publish: PublishImmerFunction<T>]; export { usePubSub };