UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

28 lines 1.4 kB
import { type CloseArgs, type ConnectArgs, EngineAbc, type EngineAbcConfig, type RpcArgs } from "@tai-kun/surrealdb/engine"; import type { BidirectionalRpcResponse } from "@tai-kun/surrealdb/types"; import { Serial } from "@tai-kun/surrealdb/utils"; import type { Promisable } from "type-fest"; import type { WebSocket as WsWebSocket } from "ws"; type InferWebSocket<T> = T extends { readonly WebSocket: new (...args: any) => infer W; } ? W : never; type NativeWebSocket = InferWebSocket<typeof global | typeof window | typeof self>; type WebSocket = WsWebSocket | NativeWebSocket; export type CreateWebSocket = (address: URL, protocols: string[]) => Promisable<WebSocket>; export interface WebSocketEngineConfig extends EngineAbcConfig { readonly createWebSocket: CreateWebSocket; readonly pingInterval?: number | (() => number) | undefined; } export default class WebSocketEngine extends EngineAbc { readonly name = "websocket"; protected ws: WebSocket | null; protected readonly id: Serial; protected readonly newWs: CreateWebSocket; protected readonly pingInterval: () => number; constructor(config: WebSocketEngineConfig); connect({ endpoint, signal }: ConnectArgs): Promise<void>; close({ signal }: CloseArgs): Promise<void>; rpc({ request, signal }: RpcArgs): Promise<BidirectionalRpcResponse>; } export {}; //# sourceMappingURL=engine.d.ts.map