redux-ws-middleware
Version:
This package makes web socket management much easier with redux
32 lines (31 loc) • 1.31 kB
TypeScript
import { Deserializer, Serializer } from '../Serializer/SerializerService.types';
import { SocketDispatch } from '../Redux/ReduxService.types';
export declare enum WebSocketEvent {
OPEN = "open",
ERROR = "error",
CLOSE = "close",
MESSAGE = "message"
}
export declare enum WebSocketClosingCode {
FORCE_CLOSE = 1005
}
export declare type ShouldReconnect = (event: CloseEvent) => boolean;
export declare type ShouldClose<DRes> = (res: DRes) => boolean;
export declare type ShouldOpen<Req> = (req: Req) => boolean;
declare type OnMessageCallback<Res> = (res: Res, dispatch: SocketDispatch) => void;
export declare type Options<Req, Res, SReq = Req, DRes = Res> = {
url: string;
onMessage: OnMessageCallback<DRes>;
autoConnect?: boolean;
shouldReconnect?: ShouldReconnect | boolean;
shouldClose?: ShouldClose<DRes>;
shouldOpen?: ShouldOpen<Req> | boolean;
reconnectionInterval?: number | number[];
debug?: boolean;
protocols?: string | string[];
serialize?: Serializer<Req, SReq>;
deserialize?: Deserializer<Res, DRes>;
};
declare type Short = 'shouldReconnect' | 'reconnectionInterval' | 'deserialize' | 'serialize' | 'debug';
export declare type OptionsShort<Req, Res, SReq = Req, DRes = Res> = Omit<Options<Req, Res, SReq, DRes>, Short>;
export {};