UNPKG

@leancodepl/hook-pipe-client

Version:

React hooks for real-time data streaming and subscriptions using @leancodepl/pipe

30 lines 1.26 kB
import { NotificationsUnion, Pipe } from '@leancodepl/pipe'; /** * Creates React hooks for real-time data subscriptions using "@leancodepl/pipe". * * @param pipe - Pipe instance from "@leancodepl/pipe" * @returns Object containing `createTopic` method for creating typed hooks * @example * ```typescript * const pipe = createPipe({ url: 'wss://api.example.com/pipe' }); * const pipeClient = mkPipeClient({ pipe }); * * const useChatTopic = pipeClient.createTopic('chat'); * ``` */ export declare function mkPipeClient({ pipe }: { pipe: Pipe; }): { createTopic<TTopic, TNotifications extends Record<string, unknown>>(topicType: string): { (topic: TTopic, { onData, ...onDataByType }: UseSubscriptionOptions<TNotifications>): { data: NotificationsUnion<TNotifications> | undefined; }; topic(topic: TTopic): import('rxjs').Observable<NotificationsUnion<TNotifications>>; }; }; export type UseSubscriptionOptions<TNotifications extends Record<string, unknown>> = { [K in NotificationsUnion<TNotifications>[0]]?: (data: Extract<NotificationsUnion<TNotifications>, [K, any]>[1]) => void; } & { onData?: (data: NotificationsUnion<TNotifications>) => void; }; //# sourceMappingURL=mkPipeClient.d.ts.map