plug-n-play-ws
Version:
A plug-and-play WebSocket layer on top of Socket.IO with full TypeScript support, zero manual wiring, and production-ready features
47 lines (44 loc) • 1.87 kB
TypeScript
import { f as ClientConfig, S as SessionMetadata, C as ConnectionStatus, E as EventMap, a as SearchQuery, c as SearchResponse } from '../types-BQpUMSaB.js';
import 'zod';
interface UsePlugNPlayWsOptions extends Omit<ClientConfig, 'autoConnect'> {
autoConnect?: boolean;
onConnect?: (data: {
sessionId: string;
metadata: SessionMetadata;
}) => void;
onDisconnect?: (data: {
sessionId: string;
reason: string;
}) => void;
onError?: (error: Error) => void;
onStatusChange?: (status: ConnectionStatus) => void;
}
interface UsePlugNPlayWsReturn<T extends Record<string, unknown> = EventMap> {
status: ConnectionStatus;
isConnected: boolean;
sessionId?: string;
sessionMetadata?: SessionMetadata;
connect: () => Promise<void>;
disconnect: () => void;
send: <K extends keyof T>(event: K, data: T[K]) => boolean;
search: (query: SearchQuery) => Promise<SearchResponse | null>;
on: <K extends keyof T>(event: K, listener: (data: T[K]) => void) => void;
off: <K extends keyof T>(event: K, listener: (data: T[K]) => void) => void;
stats: {
status: ConnectionStatus;
sessionId?: string;
reconnectAttempts: number;
lastPongTime: number;
connected: boolean;
};
}
declare function usePlugNPlayWs<T extends Record<string, unknown> = EventMap>(options: UsePlugNPlayWsOptions): UsePlugNPlayWsReturn<T>;
declare function usePlugNPlaySearch<T extends Record<string, unknown> = EventMap>(client: UsePlugNPlayWsReturn<T>): {
search: (query: SearchQuery) => Promise<void>;
clearResults: () => void;
isSearching: boolean;
results: SearchResponse<unknown> | null;
streamingResults: unknown[];
error: string | null;
};
export { type UsePlugNPlayWsOptions, type UsePlugNPlayWsReturn, usePlugNPlaySearch, usePlugNPlayWs };