UNPKG

@akala/json-rpc-ws

Version:

json-rpc websocket transport

26 lines (25 loc) 1.68 kB
import ws from 'ws'; import { SocketAdapter, SocketAdapterAkalaEventMap } from '../shared-connection.js'; import { AllEventKeys, AllEvents, EventArgs, EventKeys, EventListener, EventOptions, EventReturnType, Subscription, TeardownManager } 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 TeardownManager implements SocketAdapter { private socket; constructor(socket: ws); hasListener<const TKey extends AllEventKeys<SocketAdapterAkalaEventMap>>(name: TKey): boolean; get definedEvents(): AllEventKeys<SocketAdapterAkalaEventMap>[]; emit<const TEvent extends EventKeys<SocketAdapterAkalaEventMap>>(event: TEvent, ...args: EventArgs<SocketAdapterAkalaEventMap[TEvent]>): false | EventReturnType<SocketAdapterAkalaEventMap[TEvent]>; pipe(socket: SocketAdapter): void; get open(): boolean; close(): void; send(data: string): 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; }