@small-web/kitten-types 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +136 -0
- package/global.d.ts +288 -0
- package/index.d.ts +43 -0
- package/package.json +54 -0
- package/polka/index.d.ts +111 -0
- package/slugify/index.d.ts +246 -0
- package/types.d.ts +596 -0
- package/ws/index.d.ts +458 -0
package/ws/index.d.ts
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
Copied from the ws 8.18.1 type definitions at
|
|
5
|
+
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ws
|
|
6
|
+
|
|
7
|
+
The only alteration is the export of BufferLike type so we can expose it on the Kitten global.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { EventEmitter } from "events";
|
|
11
|
+
import {
|
|
12
|
+
Agent,
|
|
13
|
+
ClientRequest,
|
|
14
|
+
ClientRequestArgs,
|
|
15
|
+
IncomingMessage,
|
|
16
|
+
OutgoingHttpHeaders,
|
|
17
|
+
Server as HTTPServer,
|
|
18
|
+
} from "http";
|
|
19
|
+
import { Server as HTTPSServer } from "https";
|
|
20
|
+
import { createConnection } from "net";
|
|
21
|
+
import { Duplex, DuplexOptions } from "stream";
|
|
22
|
+
import { SecureContextOptions } from "tls";
|
|
23
|
+
import { URL } from "url";
|
|
24
|
+
import { ZlibOptions } from "zlib";
|
|
25
|
+
|
|
26
|
+
// can not get all overload of BufferConstructor['from'], need to copy all it's first arguments here
|
|
27
|
+
// https://github.com/microsoft/TypeScript/issues/32164
|
|
28
|
+
export type BufferLike =
|
|
29
|
+
| string
|
|
30
|
+
| Buffer
|
|
31
|
+
| DataView
|
|
32
|
+
| number
|
|
33
|
+
| ArrayBufferView
|
|
34
|
+
| Uint8Array
|
|
35
|
+
| ArrayBuffer
|
|
36
|
+
| SharedArrayBuffer
|
|
37
|
+
| Blob
|
|
38
|
+
| readonly any[]
|
|
39
|
+
| readonly number[]
|
|
40
|
+
| { valueOf(): ArrayBuffer }
|
|
41
|
+
| { valueOf(): SharedArrayBuffer }
|
|
42
|
+
| { valueOf(): Uint8Array }
|
|
43
|
+
| { valueOf(): readonly number[] }
|
|
44
|
+
| { valueOf(): string }
|
|
45
|
+
| { [Symbol.toPrimitive](hint: string): string };
|
|
46
|
+
|
|
47
|
+
// WebSocket socket.
|
|
48
|
+
declare class WebSocket extends EventEmitter {
|
|
49
|
+
/** The connection is not yet open. */
|
|
50
|
+
static readonly CONNECTING: 0;
|
|
51
|
+
/** The connection is open and ready to communicate. */
|
|
52
|
+
static readonly OPEN: 1;
|
|
53
|
+
/** The connection is in the process of closing. */
|
|
54
|
+
static readonly CLOSING: 2;
|
|
55
|
+
/** The connection is closed. */
|
|
56
|
+
static readonly CLOSED: 3;
|
|
57
|
+
|
|
58
|
+
binaryType: "nodebuffer" | "arraybuffer" | "fragments";
|
|
59
|
+
readonly bufferedAmount: number;
|
|
60
|
+
readonly extensions: string;
|
|
61
|
+
/** Indicates whether the websocket is paused */
|
|
62
|
+
readonly isPaused: boolean;
|
|
63
|
+
readonly protocol: string;
|
|
64
|
+
/** The current state of the connection */
|
|
65
|
+
readonly readyState:
|
|
66
|
+
| typeof WebSocket.CONNECTING
|
|
67
|
+
| typeof WebSocket.OPEN
|
|
68
|
+
| typeof WebSocket.CLOSING
|
|
69
|
+
| typeof WebSocket.CLOSED;
|
|
70
|
+
readonly url: string;
|
|
71
|
+
|
|
72
|
+
/** The connection is not yet open. */
|
|
73
|
+
readonly CONNECTING: 0;
|
|
74
|
+
/** The connection is open and ready to communicate. */
|
|
75
|
+
readonly OPEN: 1;
|
|
76
|
+
/** The connection is in the process of closing. */
|
|
77
|
+
readonly CLOSING: 2;
|
|
78
|
+
/** The connection is closed. */
|
|
79
|
+
readonly CLOSED: 3;
|
|
80
|
+
|
|
81
|
+
onopen: ((event: WebSocket.Event) => void) | null;
|
|
82
|
+
onerror: ((event: WebSocket.ErrorEvent) => void) | null;
|
|
83
|
+
onclose: ((event: WebSocket.CloseEvent) => void) | null;
|
|
84
|
+
onmessage: ((event: WebSocket.MessageEvent) => void) | null;
|
|
85
|
+
|
|
86
|
+
constructor(address: null);
|
|
87
|
+
constructor(address: string | URL, options?: WebSocket.ClientOptions | ClientRequestArgs);
|
|
88
|
+
constructor(
|
|
89
|
+
address: string | URL,
|
|
90
|
+
protocols?: string | string[],
|
|
91
|
+
options?: WebSocket.ClientOptions | ClientRequestArgs,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
close(code?: number, data?: string | Buffer): void;
|
|
95
|
+
ping(data?: any, mask?: boolean, cb?: (err: Error) => void): void;
|
|
96
|
+
pong(data?: any, mask?: boolean, cb?: (err: Error) => void): void;
|
|
97
|
+
// https://github.com/websockets/ws/issues/2076#issuecomment-1250354722
|
|
98
|
+
send(data: BufferLike, cb?: (err?: Error) => void): void;
|
|
99
|
+
send(
|
|
100
|
+
data: BufferLike,
|
|
101
|
+
options: {
|
|
102
|
+
mask?: boolean | undefined;
|
|
103
|
+
binary?: boolean | undefined;
|
|
104
|
+
compress?: boolean | undefined;
|
|
105
|
+
fin?: boolean | undefined;
|
|
106
|
+
},
|
|
107
|
+
cb?: (err?: Error) => void,
|
|
108
|
+
): void;
|
|
109
|
+
terminate(): void;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Pause the websocket causing it to stop emitting events. Some events can still be
|
|
113
|
+
* emitted after this is called, until all buffered data is consumed. This method
|
|
114
|
+
* is a noop if the ready state is `CONNECTING` or `CLOSED`.
|
|
115
|
+
*/
|
|
116
|
+
pause(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Make a paused socket resume emitting events. This method is a noop if the ready
|
|
119
|
+
* state is `CONNECTING` or `CLOSED`.
|
|
120
|
+
*/
|
|
121
|
+
resume(): void;
|
|
122
|
+
|
|
123
|
+
// HTML5 WebSocket events
|
|
124
|
+
addEventListener<K extends keyof WebSocket.WebSocketEventMap>(
|
|
125
|
+
type: K,
|
|
126
|
+
listener:
|
|
127
|
+
| ((event: WebSocket.WebSocketEventMap[K]) => void)
|
|
128
|
+
| { handleEvent(event: WebSocket.WebSocketEventMap[K]): void },
|
|
129
|
+
options?: WebSocket.EventListenerOptions,
|
|
130
|
+
): void;
|
|
131
|
+
removeEventListener<K extends keyof WebSocket.WebSocketEventMap>(
|
|
132
|
+
type: K,
|
|
133
|
+
listener:
|
|
134
|
+
| ((event: WebSocket.WebSocketEventMap[K]) => void)
|
|
135
|
+
| { handleEvent(event: WebSocket.WebSocketEventMap[K]): void },
|
|
136
|
+
): void;
|
|
137
|
+
|
|
138
|
+
// Events
|
|
139
|
+
on(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
|
|
140
|
+
on(event: "error", listener: (this: WebSocket, error: Error) => void): this;
|
|
141
|
+
on(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
|
|
142
|
+
on(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
|
|
143
|
+
on(event: "open", listener: (this: WebSocket) => void): this;
|
|
144
|
+
on(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
|
|
145
|
+
on(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
|
|
146
|
+
on(
|
|
147
|
+
event: "unexpected-response",
|
|
148
|
+
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
|
|
149
|
+
): this;
|
|
150
|
+
on(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
|
|
151
|
+
|
|
152
|
+
once(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
|
|
153
|
+
once(event: "error", listener: (this: WebSocket, error: Error) => void): this;
|
|
154
|
+
once(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
|
|
155
|
+
once(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
|
|
156
|
+
once(event: "open", listener: (this: WebSocket) => void): this;
|
|
157
|
+
once(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
|
|
158
|
+
once(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
|
|
159
|
+
once(
|
|
160
|
+
event: "unexpected-response",
|
|
161
|
+
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
|
|
162
|
+
): this;
|
|
163
|
+
once(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
|
|
164
|
+
|
|
165
|
+
off(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
|
|
166
|
+
off(event: "error", listener: (this: WebSocket, error: Error) => void): this;
|
|
167
|
+
off(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
|
|
168
|
+
off(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
|
|
169
|
+
off(event: "open", listener: (this: WebSocket) => void): this;
|
|
170
|
+
off(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
|
|
171
|
+
off(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
|
|
172
|
+
off(
|
|
173
|
+
event: "unexpected-response",
|
|
174
|
+
listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void,
|
|
175
|
+
): this;
|
|
176
|
+
off(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
|
|
177
|
+
|
|
178
|
+
addListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
|
|
179
|
+
addListener(event: "error", listener: (error: Error) => void): this;
|
|
180
|
+
addListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
|
|
181
|
+
addListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
|
|
182
|
+
addListener(event: "open", listener: () => void): this;
|
|
183
|
+
addListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
|
|
184
|
+
addListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
|
|
185
|
+
addListener(
|
|
186
|
+
event: "unexpected-response",
|
|
187
|
+
listener: (request: ClientRequest, response: IncomingMessage) => void,
|
|
188
|
+
): this;
|
|
189
|
+
addListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
|
190
|
+
|
|
191
|
+
removeListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
|
|
192
|
+
removeListener(event: "error", listener: (error: Error) => void): this;
|
|
193
|
+
removeListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
|
|
194
|
+
removeListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
|
|
195
|
+
removeListener(event: "open", listener: () => void): this;
|
|
196
|
+
removeListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
|
|
197
|
+
removeListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
|
|
198
|
+
removeListener(
|
|
199
|
+
event: "unexpected-response",
|
|
200
|
+
listener: (request: ClientRequest, response: IncomingMessage) => void,
|
|
201
|
+
): this;
|
|
202
|
+
removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
declare namespace WebSocket {
|
|
206
|
+
/**
|
|
207
|
+
* Data represents the raw message payload received over the WebSocket.
|
|
208
|
+
*/
|
|
209
|
+
type RawData = Buffer | ArrayBuffer | Buffer[];
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Data represents the message payload received over the WebSocket.
|
|
213
|
+
*/
|
|
214
|
+
type Data = string | Buffer | ArrayBuffer | Buffer[];
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* CertMeta represents the accepted types for certificate & key data.
|
|
218
|
+
*/
|
|
219
|
+
type CertMeta = string | string[] | Buffer | Buffer[];
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* VerifyClientCallbackSync is a synchronous callback used to inspect the
|
|
223
|
+
* incoming message. The return value (boolean) of the function determines
|
|
224
|
+
* whether or not to accept the handshake.
|
|
225
|
+
*/
|
|
226
|
+
type VerifyClientCallbackSync<Request extends IncomingMessage = IncomingMessage> = (info: {
|
|
227
|
+
origin: string;
|
|
228
|
+
secure: boolean;
|
|
229
|
+
req: Request;
|
|
230
|
+
}) => boolean;
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* VerifyClientCallbackAsync is an asynchronous callback used to inspect the
|
|
234
|
+
* incoming message. The return value (boolean) of the function determines
|
|
235
|
+
* whether or not to accept the handshake.
|
|
236
|
+
*/
|
|
237
|
+
type VerifyClientCallbackAsync<Request extends IncomingMessage = IncomingMessage> = (
|
|
238
|
+
info: { origin: string; secure: boolean; req: Request },
|
|
239
|
+
callback: (res: boolean, code?: number, message?: string, headers?: OutgoingHttpHeaders) => void,
|
|
240
|
+
) => void;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* FinishRequestCallback is a callback for last minute customization of the
|
|
244
|
+
* headers. If finishRequest is set, then it has the responsibility to call
|
|
245
|
+
* request.end() once it is done setting request headers.
|
|
246
|
+
*/
|
|
247
|
+
type FinishRequestCallback = (request: ClientRequest, websocket: WebSocket) => void;
|
|
248
|
+
|
|
249
|
+
interface ClientOptions extends SecureContextOptions {
|
|
250
|
+
protocol?: string | undefined;
|
|
251
|
+
followRedirects?: boolean | undefined;
|
|
252
|
+
generateMask?(mask: Buffer): void;
|
|
253
|
+
handshakeTimeout?: number | undefined;
|
|
254
|
+
maxRedirects?: number | undefined;
|
|
255
|
+
perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
|
|
256
|
+
localAddress?: string | undefined;
|
|
257
|
+
protocolVersion?: number | undefined;
|
|
258
|
+
headers?: { [key: string]: string } | undefined;
|
|
259
|
+
origin?: string | undefined;
|
|
260
|
+
agent?: Agent | undefined;
|
|
261
|
+
host?: string | undefined;
|
|
262
|
+
family?: number | undefined;
|
|
263
|
+
checkServerIdentity?(servername: string, cert: CertMeta): boolean;
|
|
264
|
+
rejectUnauthorized?: boolean | undefined;
|
|
265
|
+
allowSynchronousEvents?: boolean | undefined;
|
|
266
|
+
autoPong?: boolean | undefined;
|
|
267
|
+
maxPayload?: number | undefined;
|
|
268
|
+
skipUTF8Validation?: boolean | undefined;
|
|
269
|
+
createConnection?: typeof createConnection | undefined;
|
|
270
|
+
finishRequest?: FinishRequestCallback | undefined;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
interface PerMessageDeflateOptions {
|
|
274
|
+
serverNoContextTakeover?: boolean | undefined;
|
|
275
|
+
clientNoContextTakeover?: boolean | undefined;
|
|
276
|
+
serverMaxWindowBits?: number | undefined;
|
|
277
|
+
clientMaxWindowBits?: number | undefined;
|
|
278
|
+
zlibDeflateOptions?:
|
|
279
|
+
| {
|
|
280
|
+
flush?: number | undefined;
|
|
281
|
+
finishFlush?: number | undefined;
|
|
282
|
+
chunkSize?: number | undefined;
|
|
283
|
+
windowBits?: number | undefined;
|
|
284
|
+
level?: number | undefined;
|
|
285
|
+
memLevel?: number | undefined;
|
|
286
|
+
strategy?: number | undefined;
|
|
287
|
+
dictionary?: Buffer | Buffer[] | DataView | undefined;
|
|
288
|
+
info?: boolean | undefined;
|
|
289
|
+
}
|
|
290
|
+
| undefined;
|
|
291
|
+
zlibInflateOptions?: ZlibOptions | undefined;
|
|
292
|
+
threshold?: number | undefined;
|
|
293
|
+
concurrencyLimit?: number | undefined;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
interface Event {
|
|
297
|
+
type: string;
|
|
298
|
+
target: WebSocket;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
interface ErrorEvent {
|
|
302
|
+
error: any;
|
|
303
|
+
message: string;
|
|
304
|
+
type: string;
|
|
305
|
+
target: WebSocket;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
interface CloseEvent {
|
|
309
|
+
wasClean: boolean;
|
|
310
|
+
code: number;
|
|
311
|
+
reason: string;
|
|
312
|
+
type: string;
|
|
313
|
+
target: WebSocket;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
interface MessageEvent {
|
|
317
|
+
data: Data;
|
|
318
|
+
type: string;
|
|
319
|
+
target: WebSocket;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
interface WebSocketEventMap {
|
|
323
|
+
open: Event;
|
|
324
|
+
error: ErrorEvent;
|
|
325
|
+
close: CloseEvent;
|
|
326
|
+
message: MessageEvent;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
interface EventListenerOptions {
|
|
330
|
+
once?: boolean | undefined;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
interface ServerOptions<
|
|
334
|
+
U extends typeof WebSocket = typeof WebSocket,
|
|
335
|
+
V extends typeof IncomingMessage = typeof IncomingMessage,
|
|
336
|
+
> {
|
|
337
|
+
host?: string | undefined;
|
|
338
|
+
port?: number | undefined;
|
|
339
|
+
backlog?: number | undefined;
|
|
340
|
+
server?: HTTPServer<V> | HTTPSServer<V> | undefined;
|
|
341
|
+
verifyClient?:
|
|
342
|
+
| VerifyClientCallbackAsync<InstanceType<V>>
|
|
343
|
+
| VerifyClientCallbackSync<InstanceType<V>>
|
|
344
|
+
| undefined;
|
|
345
|
+
handleProtocols?: (protocols: Set<string>, request: InstanceType<V>) => string | false;
|
|
346
|
+
path?: string | undefined;
|
|
347
|
+
noServer?: boolean | undefined;
|
|
348
|
+
allowSynchronousEvents?: boolean | undefined;
|
|
349
|
+
autoPong?: boolean | undefined;
|
|
350
|
+
clientTracking?: boolean | undefined;
|
|
351
|
+
perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
|
|
352
|
+
maxPayload?: number | undefined;
|
|
353
|
+
skipUTF8Validation?: boolean | undefined;
|
|
354
|
+
WebSocket?: U | undefined;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
interface AddressInfo {
|
|
358
|
+
address: string;
|
|
359
|
+
family: string;
|
|
360
|
+
port: number;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
export import AddressInfo = WebSocket.AddressInfo;
|
|
365
|
+
export import CertMeta = WebSocket.CertMeta;
|
|
366
|
+
export import ClientOptions = WebSocket.ClientOptions;
|
|
367
|
+
export import CloseEvent = WebSocket.CloseEvent;
|
|
368
|
+
export import Data = WebSocket.Data;
|
|
369
|
+
export import ErrorEvent = WebSocket.ErrorEvent;
|
|
370
|
+
export import Event = WebSocket.Event;
|
|
371
|
+
export import EventListenerOptions = WebSocket.EventListenerOptions;
|
|
372
|
+
export import FinishRequestCallback = WebSocket.FinishRequestCallback;
|
|
373
|
+
export import MessageEvent = WebSocket.MessageEvent;
|
|
374
|
+
export import PerMessageDeflateOptions = WebSocket.PerMessageDeflateOptions;
|
|
375
|
+
export import RawData = WebSocket.RawData;
|
|
376
|
+
export import ServerOptions = WebSocket.ServerOptions;
|
|
377
|
+
export import VerifyClientCallbackAsync = WebSocket.VerifyClientCallbackAsync;
|
|
378
|
+
export import VerifyClientCallbackSync = WebSocket.VerifyClientCallbackSync;
|
|
379
|
+
|
|
380
|
+
// WebSocket Server
|
|
381
|
+
declare class Server<
|
|
382
|
+
T extends typeof WebSocket = typeof WebSocket,
|
|
383
|
+
U extends typeof IncomingMessage = typeof IncomingMessage,
|
|
384
|
+
> extends EventEmitter {
|
|
385
|
+
options: WebSocket.ServerOptions<T, U>;
|
|
386
|
+
path: string;
|
|
387
|
+
clients: Set<InstanceType<T>>;
|
|
388
|
+
|
|
389
|
+
constructor(options?: WebSocket.ServerOptions<T, U>, callback?: () => void);
|
|
390
|
+
|
|
391
|
+
address(): WebSocket.AddressInfo | string | null;
|
|
392
|
+
close(cb?: (err?: Error) => void): void;
|
|
393
|
+
handleUpgrade(
|
|
394
|
+
request: InstanceType<U>,
|
|
395
|
+
socket: Duplex,
|
|
396
|
+
upgradeHead: Buffer,
|
|
397
|
+
callback: (client: InstanceType<T>, request: InstanceType<U>) => void,
|
|
398
|
+
): void;
|
|
399
|
+
shouldHandle(request: InstanceType<U>): boolean | Promise<boolean>;
|
|
400
|
+
|
|
401
|
+
// Events
|
|
402
|
+
on(event: "connection", cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
|
|
403
|
+
on(event: "error", cb: (this: Server<T>, error: Error) => void): this;
|
|
404
|
+
on(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
|
|
405
|
+
on(event: "close" | "listening", cb: (this: Server<T>) => void): this;
|
|
406
|
+
on(
|
|
407
|
+
event: "wsClientError",
|
|
408
|
+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
|
|
409
|
+
): this;
|
|
410
|
+
on(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
|
|
411
|
+
|
|
412
|
+
once(
|
|
413
|
+
event: "connection",
|
|
414
|
+
cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void,
|
|
415
|
+
): this;
|
|
416
|
+
once(event: "error", cb: (this: Server<T>, error: Error) => void): this;
|
|
417
|
+
once(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
|
|
418
|
+
once(event: "close" | "listening", cb: (this: Server<T>) => void): this;
|
|
419
|
+
once(
|
|
420
|
+
event: "wsClientError",
|
|
421
|
+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
|
|
422
|
+
): this;
|
|
423
|
+
once(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
|
|
424
|
+
|
|
425
|
+
off(event: "connection", cb: (this: Server<T>, websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
|
|
426
|
+
off(event: "error", cb: (this: Server<T>, error: Error) => void): this;
|
|
427
|
+
off(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
|
|
428
|
+
off(event: "close" | "listening", cb: (this: Server<T>) => void): this;
|
|
429
|
+
off(
|
|
430
|
+
event: "wsClientError",
|
|
431
|
+
cb: (this: Server<T>, error: Error, socket: Duplex, request: InstanceType<U>) => void,
|
|
432
|
+
): this;
|
|
433
|
+
off(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
|
|
434
|
+
|
|
435
|
+
addListener(event: "connection", cb: (websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
|
|
436
|
+
addListener(event: "error", cb: (error: Error) => void): this;
|
|
437
|
+
addListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
|
|
438
|
+
addListener(event: "close" | "listening", cb: () => void): this;
|
|
439
|
+
addListener(event: "wsClientError", cb: (error: Error, socket: Duplex, request: InstanceType<U>) => void): this;
|
|
440
|
+
addListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
|
441
|
+
|
|
442
|
+
removeListener(event: "connection", cb: (websocket: InstanceType<T>, request: InstanceType<U>) => void): this;
|
|
443
|
+
removeListener(event: "error", cb: (error: Error) => void): this;
|
|
444
|
+
removeListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
|
|
445
|
+
removeListener(event: "close" | "listening", cb: () => void): this;
|
|
446
|
+
removeListener(event: "wsClientError", cb: (error: Error, socket: Duplex, request: InstanceType<U>) => void): this;
|
|
447
|
+
removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
|
|
448
|
+
}
|
|
449
|
+
export { type Server };
|
|
450
|
+
|
|
451
|
+
export const WebSocketServer: typeof Server;
|
|
452
|
+
export interface WebSocketServer extends Server {} // eslint-disable-line @typescript-eslint/no-empty-interface
|
|
453
|
+
|
|
454
|
+
// WebSocket stream
|
|
455
|
+
export function createWebSocketStream(websocket: WebSocket, options?: DuplexOptions): Duplex;
|
|
456
|
+
|
|
457
|
+
export default WebSocket;
|
|
458
|
+
export { WebSocket };
|