@akala/json-rpc-ws
Version:
json-rpc websocket transport
27 lines (26 loc) • 1.82 kB
TypeScript
import ws from 'ws';
import type { SocketAdapter, SocketAdapterAkalaEventMap } from '@akala/core';
import { AsyncTeardownManager, IsomorphicBuffer } from '@akala/core';
import { type AllEventKeys, type AllEvents, type EventArgs, type EventListener, type EventOptions, type EventReturnType, type Subscription } from '@akala/core';
/**
* json-rpc-ws connection
*
* @constructor
* @param {Socket} socket - web socket for this connection
* @param {Object} parent - parent that controls this connection
*/
export default class WsSocketAdapter extends AsyncTeardownManager implements SocketAdapter {
private socket;
constructor(socket: ws);
hasListener<const TKey extends AllEventKeys<SocketAdapterAkalaEventMap>>(name: TKey): boolean;
get definedEvents(): AllEventKeys<SocketAdapterAkalaEventMap>[];
emit<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, ...args: EventArgs<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): false | EventReturnType<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>;
pipe(socket: SocketAdapter): void;
get open(): boolean;
close(): Promise<void>;
send(data: string | IsomorphicBuffer): Promise<void>;
off<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): boolean;
private readonly messageListeners;
on<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>, options?: EventOptions<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): Subscription;
once<const TEvent extends AllEventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, handler: EventListener<AllEvents<SocketAdapterAkalaEventMap>[TEvent]>): Subscription;
}