UNPKG

@leancodepl/hook-pipe-client

Version:

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

28 lines (27 loc) 1.07 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 }: UseSubscriptionOptions<TNotifications>): { data: NotificationsUnion<TNotifications> | undefined; }; topic(topic: TTopic): import("rxjs").Observable<NotificationsUnion<TNotifications>>; }; }; export type UseSubscriptionOptions<TNotifications extends Record<string, unknown>> = { onData?: (data: NotificationsUnion<TNotifications>) => void; };