movex-core-util
Version:
Movex Core Util is the library of utilities for Movex
24 lines (23 loc) • 1.54 kB
TypeScript
import type { Socket as ServerSocket } from 'socket.io';
import type { Socket as ClientSocket } from 'socket.io-client';
import type { EventMap } from 'typed-emitter';
import type { EventEmitter } from './EventEmitter';
import type { UnsubscribeFn } from '../core-types';
export type SocketIO = ServerSocket | ClientSocket;
export declare class SocketIOEmitter<TEventMap extends EventMap, TSocketIO extends SocketIO = ServerSocket | ClientSocket> implements EventEmitter<TEventMap> {
protected socket: TSocketIO;
protected config: {
waitForResponseMs: number;
};
constructor(socket: TSocketIO, config?: {
waitForResponseMs?: number;
});
on<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): this;
off<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): this;
subscribe<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): UnsubscribeFn;
emit<E extends keyof TEventMap>(event: E, request: Parameters<TEventMap[E]>[0], acknowledgeCb?: (response: ReturnType<TEventMap[E]>) => void): boolean;
emitAndAcknowledge<E extends keyof TEventMap>(event: E, request: Parameters<TEventMap[E]>[0]): Promise<ReturnType<TEventMap[E]>>;
onConnect(fn: () => void): () => void;
onDisconnect(fn: () => void): () => void;
disconnect(): void;
}