UNPKG

@triplit/client

Version:
41 lines (40 loc) 1.76 kB
import { ClientSyncMessage, CloseReason } from '../../@triplit/types/sync.js'; /** * Possible values reflect the WebSocket readyState: https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState * * - CONNECTING: An attempt to connect is being made * - OPEN: The connection is open and ready to communicate * - CLOSING: The connection is in the process of closing * - CLOSED: The connection is closed or couldn't be opened */ export type ConnectionStatus = 'UNINITIALIZED' | 'CONNECTING' | 'OPEN' | 'CLOSING' | 'CLOSED'; export interface SyncTransport { isOpen: boolean; connectionStatus: ConnectionStatus; /** * Sends a message to the server. If the message could not be sent, this should return false. If successfully sent, this should return true. */ sendMessage(message: ClientSyncMessage): boolean; /** * Connect to the server with the given parameters. If this transport is already connected, it should close the existing connection and open a new one. */ connect(params: TransportConnectParams): void; /** * Closes the connection to the server. If the transport is not connected, this should be a no op. */ close(reason?: CloseReason): void; onClose(callback: (ev: any) => void): void; /** * @deprecated Triplit Client now manages its own connection state, so this is no longer needed. */ onConnectionChange(callback: (state: ConnectionStatus) => void): void; onError(callback: (ev: any) => void): void; onMessage(callback: (message: any) => void): void; onOpen(callback: (ev: any) => void): void; } export type TransportConnectParams = { server: string; token: string; schema: number | undefined; syncSchema?: boolean; };