UNPKG

pulsar_sdk_js

Version:

A convenient way for you to interact with Pulsar's Third Party APIs, using typified classes.

43 lines (42 loc) 1.61 kB
/// <reference types="ws" /> import { APIError } from "../types/errors"; import WebSocket, { MessageEvent } from 'isomorphic-ws'; import { BalancesMessage, TimeseriesMessage, MessageResponse } from "../types/websocket_types"; interface MessagePromise<T> { promise: Promise<T>; resolve: (value: T | null) => void; reject: (reason?: APIError) => void; } declare class WebsocketClient { base_url: string; callbackHandlers: { [requestID: string]: (response: MessageEvent) => void; }; messagePromises: { [requestID: string]: MessagePromise<any | null>[]; }; websocketIsOpening: boolean; websocketIsClosing: boolean; websocket_conn: WebSocket | null; api_key: string; constructor(api_key: string, base_url: string, use_ssl: boolean); transitionToOpen(): Promise<void>; transitionToClosed(): Promise<void>; createNewWebSocketConnection(attempt?: number): Promise<WebSocket>; private handleWebSocketClosure; private closeWebsocket; private sendMessage; handleResponse<T extends BalancesMessage | TimeseriesMessage>(requestID: string, msg: T, finishedEventType: string): AsyncGenerator<MessageResponse<T>>; private setupCallbackHandler; private sendMessageAndProcessMessages; private waitForMessageOrTimeout; private performFinalCleanup; private processPayload; private getEventDict; private createMessagePromise; private cleanupRequest; private waitForState; private waitForWebSocketClosureCompletion; private waitForWebSocketOpeningCompletion; } export default WebsocketClient;