UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

61 lines 2.05 kB
import type Client from "@tai-kun/surrealdb/basic-client"; import type { EngineEventMap } from "@tai-kun/surrealdb/engine"; import { TaskEmitter } from "@tai-kun/surrealdb/utils"; export type AutoReconnectEventMap = { enqueue: [endpoint: URL]; pending: [endpoint: URL, duration: number]; connect: [endpoint: URL]; success: [endpoint: URL]; failure: [endpoint: URL, error: unknown]; error: [error: unknown]; }; export interface AutoReconnectOptions { readonly backoffLimit?: number | undefined; readonly initialDelay?: number | undefined; readonly maxDelay?: number | undefined; readonly shouldReconnect?: { readonly ping?: { readonly threshold: number; readonly perMillis: number; } | undefined; } | ((...args: EngineEventMap["error"]) => boolean) | undefined; } export type ReconnectionInfo = { state: "waiting"; phase: "waiting" | "pending"; } | { state: "running"; phase: "closing" | "connecting"; } | { state: "success"; phase: "pending" | "succeeded"; } | { state: "failure"; phase: "pending" | "failed"; }; export type ReconnectionState = ReconnectionInfo["state"]; export type ReconnectionPhase = ReconnectionInfo["phase"]; declare class AutoReconnect extends TaskEmitter<AutoReconnectEventMap> { readonly db: Client; readonly maxDelay: number; readonly backoffLimit: number; readonly initialDelay: number; readonly shouldReconnect: (...args: EngineEventMap["error"]) => boolean; private _enabled; private _counter; private _info; constructor(db: Client, options?: AutoReconnectOptions | undefined); getReconnectionInfo(): ReconnectionInfo; get state(): ReconnectionState; get phase(): ReconnectionPhase; get enabled(): boolean; enable(): void; disable(): void; reset(): void; } /** * @experimental */ export default function autoReconnect(...args: ConstructorParameters<typeof AutoReconnect>): AutoReconnect; export {}; //# sourceMappingURL=auto-reconnect.d.ts.map