leafx
Version:
WebSocket Client & Utilities
37 lines (34 loc) • 1.06 kB
TypeScript
import * as mitt from 'mitt';
import WebSocket from 'isomorphic-ws';
import { CloseEvent, Event, ErrorEvent } from 'ws';
declare type LeafOptions = {
debug?: boolean;
onMessage?: <T>(event: T) => void;
onClose?: (event: CloseEvent) => void;
onOpen?: (event: Event) => void;
matchTypeOn: string;
};
declare type Events = {
open?: Event;
close?: CloseEvent;
message: unknown;
error?: ErrorEvent;
};
declare function create<E extends Events = any>(url: string, options?: LeafOptions): {
raw: WebSocket;
isConnected(): boolean;
messageCount(): number;
close(): void;
on: {
<Key extends keyof E>(type: Key, handler: mitt.Handler<E[Key]>): void;
(type: "*", handler: mitt.WildcardHandler<E>): void;
};
off: {
<Key_1 extends keyof E>(type: Key_1, handler?: mitt.Handler<E[Key_1]> | undefined): void;
(type: "*", handler: mitt.WildcardHandler<E>): void;
};
clear: () => void;
handleNotSent(): void;
send<T>(data: T): void;
};
export { LeafOptions, create };