create-pubsub
Version:
A tiny Event Emitter and Observable Store.
19 lines (17 loc) • 851 B
TypeScript
declare function createPubSub<T = void>(): [
publish: PublishFunction<T>,
subscribe: SubscribeFunction<T>,
getStoredData: GetFunctionPossiblyUndefined<T>
];
declare function createPubSub<T>(storedData: T): [
publish: PublishFunction<T>,
subscribe: SubscribeFunction<T>,
getStoredData: GetFunction<T>
];
type SubscriptionHandler<T = void> = (data: T, previousData: T) => void;
type PublishFunction<T = void> = (data: T) => void;
type UnsubscribeFunction = () => void;
type GetFunction<T> = () => T;
type GetFunctionPossiblyUndefined<T = void> = () => T extends void ? undefined : T | undefined;
type SubscribeFunction<T> = (handler: SubscriptionHandler<T>) => UnsubscribeFunction;
export { GetFunction, GetFunctionPossiblyUndefined, PublishFunction, SubscribeFunction, SubscriptionHandler, UnsubscribeFunction, createPubSub };