@vireocodedev/ui · 0.3.2

@vireocodedev/ui/event-source

7 public exports generated from the shipped declaration graph.

Showing all 7 exports

export type UseVireoEventSourceOptions<TEventName extends string = string> = {
    url: string | URL;
    enabled?: boolean;
    withCredentials?: boolean;
    listeners?: VireoEventSourceListeners<TEventName>;
    onOpen?: (event: Event) => void;
    onError?: (event: Event) => void;
    onMessage?: VireoEventSourceListener;
    onListenerError?: (failure: VireoEventSourceListenerError<TEventName>) => void;
};
export type UseVireoEventSourceResult = Readonly<{
    status: VireoEventSourceStatus;
    reconnect: () => void;
}>;
export type VireoEventSourceListener = (event: MessageEvent<string>) => Promise<void> | void;
export type VireoEventSourceListenerError<TEventName extends string = string> = Readonly<{
    error: unknown;
    eventName: TEventName | null;
    event: MessageEvent<string>;
}>;
export type VireoEventSourceListeners<TEventName extends string = string> = Partial<Record<TEventName, VireoEventSourceListener>>;
export type VireoEventSourceStatus = "connecting" | "open" | "reconnecting" | "closed";

Owns one native EventSource connection without imposing application event, decoding, authentication, visibility, or connectivity policy.

/**
 * Owns one native EventSource connection without imposing application event,
 * decoding, authentication, visibility, or connectivity policy.
 */
export declare function useVireoEventSource<TEventName extends string = string>({ url, enabled, withCredentials, listeners, onOpen, onError, onMessage, onListenerError, }: UseVireoEventSourceOptions<TEventName>): UseVireoEventSourceResult;