Skip to content
This repository was archived by the owner on Dec 3, 2021. It is now read-only.

Commit 598e858

Browse files
author
Tony Lee
committed
Added TypeScript type definition, Added missing constants to make it FULLY complies to websocket standard
1 parent 5a8f5d6 commit 598e858

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

index.d.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
declare module 'robust-websocket' {
2+
3+
type Listener<K extends keyof WebSocketEventMap> = (this: WebSocket, ev: WebSocketEventMap[K]) => any;
4+
type ShouldReconnectFunc = (event: Event, websocket: RobustWebSocket) => number;
5+
6+
interface UserOptions {
7+
timeout: number;
8+
shouldReconnect: ShouldReconnectFunc;
9+
automaticOpen: true;
10+
}
11+
12+
interface RobustWebSocket {
13+
binaryType: string;
14+
15+
readonly bufferedAmount: number;
16+
readonly extensions: string;
17+
readonly protocol: string;
18+
readonly readyState: number;
19+
readonly url: string;
20+
readonly CLOSED: number;
21+
readonly CLOSING: number;
22+
readonly CONNECTING: number;
23+
readonly OPEN: number;
24+
25+
onclose: (this: WebSocket, ev: CloseEvent) => any;
26+
onerror: (this: WebSocket, ev: Event) => any;
27+
onmessage: (this: WebSocket, ev: MessageEvent) => any;
28+
onopen: (this: WebSocket, ev: Event) => any;
29+
30+
close(code?: number, reason?: string): void;
31+
open(): void;
32+
send(data: any): void;
33+
34+
// Copied and modified from lib.es6.d.ts
35+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: Listener<K>): void;
36+
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: Listener<K>): void;
37+
dispatchEvent(evt: Event): boolean;
38+
39+
}
40+
41+
const RobustWebSocket: {
42+
prototype: RobustWebSocket;
43+
44+
new(url: string,
45+
protocols?: string | string[],
46+
userOptions?: UserOptions | ShouldReconnectFunc): RobustWebSocket;
47+
};
48+
49+
export = RobustWebSocket;
50+
51+
}
52+

robust-websocket.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,12 @@
175175
})
176176
})
177177

178+
;['CLOSED', 'CLOSING', 'CONNECTING', 'OPEN'].forEach(function (name) {
179+
Object.defineProperty(self, name, {
180+
value: WebSocket[name]
181+
});
182+
})
183+
178184
attachConnectivityEvents()
179185
}
180186

0 commit comments

Comments
 (0)