diff --git a/types/ws/index.d.ts b/types/ws/index.d.ts index 75acbef87b..2a52883365 100644 --- a/types/ws/index.d.ts +++ b/types/ws/index.d.ts @@ -1,8 +1,9 @@ -// Type definitions for ws 3.2 +// Type definitions for ws 4.0 // Project: https://github.com/websockets/ws // Definitions by: Paul Loyd // Matt Silverlock // Margus Lamp +// Philippe D'Alva // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -21,10 +22,8 @@ declare class WebSocket extends events.EventEmitter { binaryType: string; bufferedAmount: number; - bytesReceived: number; - extensions: {}; + extensions: string; protocol: string; - protocolVersion: number; readyState: number; url: string; @@ -34,7 +33,7 @@ declare class WebSocket extends events.EventEmitter { CLOSED: number; onopen: (event: { target: WebSocket }) => void; - onerror: (err: Error) => void; + onerror: (event: {error: any, message: string, type: string, target: WebSocket }) => void; onclose: (event: { wasClean: boolean; code: number; reason: string; target: WebSocket }) => void; onmessage: (event: { data: WebSocket.Data; type: string; target: WebSocket }) => void; @@ -42,14 +41,10 @@ declare class WebSocket extends events.EventEmitter { constructor(address: string, protocols?: string | string[], options?: WebSocket.ClientOptions); close(code?: number, data?: string): void; - pause(): void; - resume(): void; - ping(data?: any, mask?: boolean, failSilently?: boolean): void; - pong(data?: any, mask?: boolean, failSilently?: boolean): void; + ping(data?: any, mask?: boolean, cb?: (err: Error) => void): void; + pong(data?: any, mask?: boolean, cb?: (err: Error) => void): void; send(data: any, cb?: (err: Error) => void): void; - send(data: any, options: { mask?: boolean; binary?: boolean }, cb?: (err: Error) => void): void; - stream(options: { mask?: boolean; binary?: boolean }, cb?: (err: Error, final: boolean) => void): void; - stream(cb?: (err: Error, final: boolean) => void): void; + send(data: any, options: { mask?: boolean; binary?: boolean; compress?: boolean; fin?: boolean }, cb?: (err: Error) => void): void; terminate(): void; // HTML5 WebSocket events @@ -58,7 +53,7 @@ declare class WebSocket extends events.EventEmitter { wasClean: boolean; code: number; reason: string; target: WebSocket }) => void): void; - addEventListener(method: 'error', cb?: (err: Error) => void): void; + addEventListener(method: 'error', cb?: (event: {error: any, message: any, type: string, target: WebSocket }) => void): void; addEventListener(method: 'open', cb?: (event: { target: WebSocket }) => void): void; addEventListener(method: string, listener?: () => void): void; @@ -67,14 +62,14 @@ declare class WebSocket extends events.EventEmitter { wasClean: boolean; code: number; reason: string; target: WebSocket }) => void): void; - removeEventListener(method: 'error', cb?: (err: Error) => void): void; + removeEventListener(method: 'error', cb?: (event: {error: any, message: any, type: string, target: WebSocket }) => void): void; removeEventListener(method: 'open', cb?: (event: { target: WebSocket }) => void): void; removeEventListener(method: string, listener?: () => void): void; // Events on(event: 'close', listener: (code: number, reason: string) => void): this; - on(event: 'error', listener: (err: Error) => void): this; - on(event: 'headers', listener: (headers: {}, request: http.IncomingMessage) => void): this; + on(event: 'error', listener: (event: {error: any, message: any, type: string, target: WebSocket }) => void): this; + on(event: 'upgrade', listener: (request: http.IncomingMessage) => void): this; on(event: 'message', listener: (data: WebSocket.Data) => void): this; on(event: 'open' , listener: () => void): this; on(event: 'ping' | 'pong', listener: (data: Buffer) => void): this; @@ -83,7 +78,7 @@ declare class WebSocket extends events.EventEmitter { addListener(event: 'close', listener: (code: number, message: string) => void): this; addListener(event: 'error', listener: (err: Error) => void): this; - addListener(event: 'headers', listener: (headers: {}, request: http.IncomingMessage) => void): this; + addListener(event: 'upgrade', listener: (request: http.IncomingMessage) => void): this; addListener(event: 'message', listener: (data: WebSocket.Data) => void): this; addListener(event: 'open' , listener: () => void): this; addListener(event: 'ping' | 'pong', listener: (data: Buffer) => void): this; @@ -92,7 +87,7 @@ declare class WebSocket extends events.EventEmitter { removeListener(event: 'close', listener: (code: number, message: string) => void): this; removeListener(event: 'error', listener: (err: Error) => void): this; - removeListener(event: 'headers', listener: (headers: {}, request: http.IncomingMessage) => void): this; + removeListener(event: 'upgrade', listener: (request: http.IncomingMessage) => void): this; removeListener(event: 'message', listener: (data: WebSocket.Data) => void): this; removeListener(event: 'open' , listener: () => void): this; removeListener(event: 'ping' | 'pong', listener: (data: Buffer) => void): this; diff --git a/types/ws/ws-tests.ts b/types/ws/ws-tests.ts index 27b75703ba..29334a647f 100644 --- a/types/ws/ws-tests.ts +++ b/types/ws/ws-tests.ts @@ -24,9 +24,8 @@ import * as https from 'https'; ws.send('something'); }); - wss.on('headers', (headers, req) => { - console.log(`received headers: ${headers}`); - console.log(`received request: ${Object.keys(req)}`); + wss.on('upgrade', (res) => { + console.log(`response: ${Object.keys(res)}`); }); }