@ryinner/web-socket-manager
Version:
simple ws manager
27 lines (26 loc) • 936 B
TypeScript
/// <reference types="node" />
export interface WebSocketManagerSettings {
url: string;
interval?: number;
additionalQueryParams?: Record<string, string>;
}
export interface WebSocketOperation<T = unknown> {
method: string;
request: OperationRequest;
handlers?: OperationsHandlers<T>;
}
export interface WebSocketSendIntervaled<T = unknown> extends WebSocketOperation<T> {
interval: true | number;
_interval?: number | NodeJS.Timer;
}
export type OperationRequest = () => object;
export type OperationsHandler<T = unknown> = (data: T) => void;
export type OperationsHandlers<T = unknown> = Array<OperationsHandler<T>>;
export type WebSocketSend<T = unknown> = WebSocketOperation<T> | WebSocketSendIntervaled<T>;
export type WebSocketParsedOperation<T = unknown> = WebSocketSend<T> & {
callback: () => void;
};
export interface WebSocketAnswerDecoded<T = unknown> {
method: string;
data: T;
}