Pattern for handling connection state with events Useful for WebSocket connections, plugin loading, etc.

interface ConnectionStateManager<T> {
    state: "disconnected" | "connecting" | "connected" | "error";
    waitForConnection(timeout?): Promise<T>;
    subscribe(callback): (() => void);
    reconnect(): Promise<void>;
    data?: T;
}

Type Parameters

  • T = any

Methods

  • Wait for connection to be established

    Parameters

    • Optional timeout: number

    Returns Promise<T>

  • Subscribe to state changes

    Parameters

    Returns (() => void)

      • (): void
      • Returns void

  • Manually trigger reconnection

    Returns Promise<void>

Properties

state: "disconnected" | "connecting" | "connected" | "error"

Current connection state

data?: T

Current data (if connected)