Skip to content

Commit b11fef1

Browse files
authored
🤖 Merge PR DefinitelyTyped#72094 [ws] Sync to v8.18 by @paescuj
1 parent 0936bfd commit b11fef1

File tree

5 files changed

+191
-48
lines changed

5 files changed

+191
-48
lines changed

types/ws/index.d.mts

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
Server as HTTPServer,
1111
} from "http";
1212
import { Server as HTTPSServer } from "https";
13+
import { createConnection } from "net";
1314
import { Duplex, DuplexOptions } from "stream";
1415
import { SecureContextOptions } from "tls";
1516
import { URL } from "url";
@@ -26,6 +27,7 @@ type BufferLike =
2627
| Uint8Array
2728
| ArrayBuffer
2829
| SharedArrayBuffer
30+
| Blob
2931
| readonly any[]
3032
| readonly number[]
3133
| { valueOf(): ArrayBuffer }
@@ -114,69 +116,78 @@ declare class WebSocket extends EventEmitter {
114116
// HTML5 WebSocket events
115117
addEventListener<K extends keyof WebSocket.WebSocketEventMap>(
116118
type: K,
117-
listener: (event: WebSocket.WebSocketEventMap[K]) => void,
119+
listener:
120+
| ((event: WebSocket.WebSocketEventMap[K]) => void)
121+
| { handleEvent(event: WebSocket.WebSocketEventMap[K]): void },
118122
options?: WebSocket.EventListenerOptions,
119123
): void;
120124
removeEventListener<K extends keyof WebSocket.WebSocketEventMap>(
121125
type: K,
122-
listener: (event: WebSocket.WebSocketEventMap[K]) => void,
126+
listener:
127+
| ((event: WebSocket.WebSocketEventMap[K]) => void)
128+
| { handleEvent(event: WebSocket.WebSocketEventMap[K]): void },
123129
): void;
124130

125131
// Events
126132
on(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
127-
on(event: "error", listener: (this: WebSocket, err: Error) => void): this;
133+
on(event: "error", listener: (this: WebSocket, error: Error) => void): this;
128134
on(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
129135
on(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
130136
on(event: "open", listener: (this: WebSocket) => void): this;
131137
on(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
138+
on(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
132139
on(
133140
event: "unexpected-response",
134141
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
135142
): this;
136143
on(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
137144

138145
once(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
139-
once(event: "error", listener: (this: WebSocket, err: Error) => void): this;
146+
once(event: "error", listener: (this: WebSocket, error: Error) => void): this;
140147
once(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
141148
once(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
142149
once(event: "open", listener: (this: WebSocket) => void): this;
143150
once(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
151+
once(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
144152
once(
145153
event: "unexpected-response",
146154
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
147155
): this;
148156
once(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
149157

150158
off(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
151-
off(event: "error", listener: (this: WebSocket, err: Error) => void): this;
159+
off(event: "error", listener: (this: WebSocket, error: Error) => void): this;
152160
off(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
153161
off(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
154162
off(event: "open", listener: (this: WebSocket) => void): this;
155163
off(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
164+
off(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
156165
off(
157166
event: "unexpected-response",
158167
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
159168
): this;
160169
off(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
161170

162171
addListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
163-
addListener(event: "error", listener: (err: Error) => void): this;
172+
addListener(event: "error", listener: (error: Error) => void): this;
164173
addListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
165174
addListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
166175
addListener(event: "open", listener: () => void): this;
167176
addListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
177+
addListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
168178
addListener(
169179
event: "unexpected-response",
170180
listener: (request: ClientRequest, response: IncomingMessage) => void,
171181
): this;
172182
addListener(event: string | symbol, listener: (...args: any[]) => void): this;
173183

174184
removeListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
175-
removeListener(event: "error", listener: (err: Error) => void): this;
185+
removeListener(event: "error", listener: (error: Error) => void): this;
176186
removeListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
177187
removeListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
178188
removeListener(event: "open", listener: () => void): this;
179189
removeListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
190+
removeListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
180191
removeListener(
181192
event: "unexpected-response",
182193
listener: (request: ClientRequest, response: IncomingMessage) => void,
@@ -244,8 +255,11 @@ declare namespace WebSocket {
244255
family?: number | undefined;
245256
checkServerIdentity?(servername: string, cert: CertMeta): boolean;
246257
rejectUnauthorized?: boolean | undefined;
258+
allowSynchronousEvents?: boolean | undefined;
259+
autoPong?: boolean | undefined;
247260
maxPayload?: number | undefined;
248261
skipUTF8Validation?: boolean | undefined;
262+
createConnection?: typeof createConnection | undefined;
249263
finishRequest?: FinishRequestCallback | undefined;
250264
}
251265

@@ -324,6 +338,8 @@ declare namespace WebSocket {
324338
handleProtocols?: (protocols: Set<string>, request: InstanceType<V>) => string | false;
325339
path?: string | undefined;
326340
noServer?: boolean | undefined;
341+
allowSynchronousEvents?: boolean | undefined;
342+
autoPong?: boolean | undefined;
327343
clientTracking?: boolean | undefined;
328344
perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
329345
maxPayload?: number | undefined;
@@ -376,34 +392,51 @@ declare class Server<
376392
shouldHandle(request: InstanceType<U>): boolean | Promise<boolean>;
377393

378394
// Events
379-
on(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
395+
on(event: "connection", cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
380396
on(event: "error", cb: (this: Server<T>, error: Error) => void): this;
381397
on(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
382398
on(event: "close" | "listening", cb: (this: Server<T>) => void): this;
399+
on(
400+
event: "wsClientError",
401+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
402+
): this;
383403
on(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
384404

385-
once(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
405+
once(
406+
event: "connection",
407+
cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void,
408+
): this;
386409
once(event: "error", cb: (this: Server<T>, error: Error) => void): this;
387410
once(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
388411
once(event: "close" | "listening", cb: (this: Server<T>) => void): this;
412+
once(
413+
event: "wsClientError",
414+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
415+
): this;
389416
once(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
390417

391-
off(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
418+
off(event: "connection", cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
392419
off(event: "error", cb: (this: Server<T>, error: Error) => void): this;
393420
off(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
394421
off(event: "close" | "listening", cb: (this: Server<T>) => void): this;
422+
off(
423+
event: "wsClientError",
424+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
425+
): this;
395426
off(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
396427

397-
addListener(event: "connection", cb: (client: InstanceType<T>, request: InstanceType<U>) => void): this;
398-
addListener(event: "error", cb: (err: Error) => void): this;
428+
addListener(event: "connection", cb: (websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
429+
addListener(event: "error", cb: (error: Error) => void): this;
399430
addListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
400431
addListener(event: "close" | "listening", cb: () => void): this;
432+
addListener(event: "wsClientError", cb: (error: Error, socket: Duplex, request: InstanceType<U>) => void): this;
401433
addListener(event: string | symbol, listener: (...args: any[]) => void): this;
402434

403-
removeListener(event: "connection", cb: (client: InstanceType<T>, request: InstanceType<U>) => void): this;
404-
removeListener(event: "error", cb: (err: Error) => void): this;
435+
removeListener(event: "connection", cb: (websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
436+
removeListener(event: "error", cb: (error: Error) => void): this;
405437
removeListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
406438
removeListener(event: "close" | "listening", cb: () => void): this;
439+
removeListener(event: "wsClientError", cb: (error: Error, socket: Duplex, request: InstanceType<U>) => void): this;
407440
removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
408441
}
409442
export { type Server };

0 commit comments

Comments
 (0)