UNPKG

@actyx/sdk

Version:
51 lines (50 loc) 1.61 kB
import { WebSocketSubjectConfig } from '../../node_modules/rxjs/webSocket'; import { Observable, Subject } from '../../node_modules/rxjs'; import * as t from 'io-ts'; /** * Unique request id to be chosen by the client. 53 bit integer. Reusing existing request id will cancel the current * request with that id. */ export declare const RequestId: t.NumberC; export declare type RequestId = t.TypeOf<typeof RequestId>; export declare const enum RequestMessageType { Request = "request", Cancel = "cancel" } export declare const RequestMessage: t.UnionC<[t.TypeC<{ type: t.LiteralC<RequestMessageType.Request>; requestId: t.NumberC; serviceId: t.StringC; payload: t.UnknownC; }>, t.TypeC<{ type: t.LiteralC<RequestMessageType.Cancel>; requestId: t.NumberC; }>]>; export declare type RequestMessage = t.TypeOf<typeof RequestMessage>; export declare const enum ResponseMessageType { Next = "next", Error = "error", Complete = "complete" } export declare class MultiplexedWebsocket<Res extends { requestId: number; type: ResponseMessageType; }> { private config; private redialAfter; private subject; private requestId; private lastDial; readonly errors: Subject<unknown>; private disconnected; private queue; constructor(config: WebSocketSubjectConfig<RequestMessage | Res>, redialAfter: number); private keepAlive; close(): void; private enqueue; private prune; private retryAll; request(serviceId: string, payload?: unknown): Observable<Res & { type: ResponseMessageType.Next; }>; }