1- import WebSocket from "isomorphic-ws" ;
21import { Message } from "./jsonrpc.js" ;
32import { BaseTransport } from "./client.js" ;
43import { Emitter , EventsT } from "./util/emitter.js" ;
@@ -9,12 +8,19 @@ type WebsocketOptions = {
98 maxReconnectInterval : number ;
109} ;
1110
12- export type WebSocketErrorEvent = WebSocket . ErrorEvent ;
11+ type WSMessageEvent = Parameters <
12+ Exclude < typeof WebSocket . prototype . onmessage , null >
13+ > [ 0 ] ;
14+ type WSErrorEvent = Parameters <
15+ Exclude < typeof WebSocket . prototype . onerror , null >
16+ > [ 0 ] ;
17+
18+ export type WebSocketErrorEvent = WSErrorEvent ;
1319
1420export interface WebsocketEvents extends EventsT {
1521 connect : ( ) => void ;
1622 disconnect : ( ) => void ;
17- error : ( error : WebSocket . ErrorEvent ) => void ;
23+ error : ( error : WSErrorEvent ) => void ;
1824}
1925
2026export class WebsocketTransport extends BaseTransport < WebsocketEvents > {
@@ -27,15 +33,15 @@ export class WebsocketTransport extends BaseTransport<WebsocketEvents> {
2733 }
2834 constructor ( public url : string , options ?: WebsocketOptions ) {
2935 super ( ) ;
30- const onmessage = ( event : WebSocket . MessageEvent ) => {
36+ const onmessage = ( event : WSMessageEvent ) => {
3137 const message : Message = JSON . parse ( event . data as string ) ;
3238 this . _onmessage ( message ) ;
3339 } ;
3440 this . _socket = new ReconnectingWebsocket ( url , onmessage , options ) ;
3541
3642 this . _socket . on ( "connect" , ( ) => this . emit ( "connect" ) ) ;
3743 this . _socket . on ( "disconnect" , ( ) => this . emit ( "disconnect" ) ) ;
38- this . _socket . on ( "error" , ( error : WebSocket . ErrorEvent ) =>
44+ this . _socket . on ( "error" , ( error : WSErrorEvent ) =>
3945 this . emit ( "error" , error )
4046 ) ;
4147 }
@@ -59,12 +65,12 @@ class ReconnectingWebsocket extends Emitter<WebsocketEvents> {
5965 private _connected = false ;
6066 private _reconnectAttempts = 0 ;
6167
62- onmessage : ( event : WebSocket . MessageEvent ) => void ;
68+ onmessage : ( event : WSMessageEvent ) => void ;
6369 closed = false ;
6470
6571 constructor (
6672 public url : string ,
67- onmessage : ( event : WebSocket . MessageEvent ) => void ,
73+ onmessage : ( event : WSMessageEvent ) => void ,
6874 options ?: WebsocketOptions
6975 ) {
7076 super ( ) ;
0 commit comments