UNPKG

vue-websocket-handler

Version:
61 lines (57 loc) 1.63 kB
import { InjectionKey } from 'vue'; /** * emitter type function */ type HandlerEmitter = (emitFlag: string, arg?: any) => any; /** * emitter type class */ type HandlerEmitterIntra = { emitFlag: string; effect: (arg?: any) => any; }; /** * union of emitter types */ type HandlerEmitterType = HandlerEmitter | HandlerEmitterIntra; /** * config type of webSocket */ interface WebSocketConfig { host?: string; port?: string | number; url?: string; emitters?: HandlerEmitter | HandlerEmitter[]; timeout?: number; } interface WebSocketHandlerType { client: WebSocket; protocol: string; logVersion: () => void; emitters: HandlerEmitterType | HandlerEmitterType[]; addHandlers?: () => void; reCreateWebSocketInstance?: () => void; onclose?: () => void; onerror?: () => void; onopen?: () => void; onmessage?: (event?: MessageEvent) => void; onreconnect?: () => void; sendMessage?: (data: string | ArrayBufferLike | Blob | ArrayBufferView) => void; } /** * for inject to get websocket handler in vue.use() */ declare const WsKey: InjectionKey<WebSocketHandlerType>; /** * this plugin used for vue.use() */ declare const useWebSocketPlugin: { install(app: any, options?: WebSocketConfig): void; }; declare const useInjectWebSocket: () => WebSocketHandlerType; /** * create ws handler * @param {WebSocketConfig} config */ declare const useWebSocket: (config?: WebSocketConfig) => WebSocketHandlerType; export { WebSocketConfig, WsKey, useInjectWebSocket, useWebSocket, useWebSocketPlugin };