11import { EventEmitter } from "./event-emitter" ;
22import { Socket } from "./socket" ;
33import { Polling } from "./transports/polling" ;
4- import { WS , type BunWebSocket } from "./transports/websocket" ;
4+ import {
5+ WS ,
6+ type BunWebSocket ,
7+ type WebSocketData ,
8+ } from "./transports/websocket" ;
59import { addCorsHeaders , type CorsOptions } from "./cors" ;
610import { Transport } from "./transport" ;
711import { generateId } from "./util" ;
@@ -42,7 +46,10 @@ export interface ServerOptions {
4246 * A function that receives a given handshake or upgrade request as its first parameter,
4347 * and can decide whether to continue or not.
4448 */
45- allowRequest ?: ( req : Request , server : Bun . Server ) => Promise < void > ;
49+ allowRequest ?: (
50+ req : Request ,
51+ server : Bun . Server < WebSocketData > ,
52+ ) => Promise < void > ;
4653 /**
4754 * The options related to Cross-Origin Resource Sharing (CORS)
4855 */
@@ -53,15 +60,15 @@ export interface ServerOptions {
5360 editHandshakeHeaders ?: (
5461 responseHeaders : Headers ,
5562 req : Request ,
56- server : Bun . Server ,
63+ server : Bun . Server < WebSocketData > ,
5764 ) => void | Promise < void > ;
5865 /**
5966 * A function that allows to edit the response headers of all requests
6067 */
6168 editResponseHeaders ?: (
6269 responseHeaders : Headers ,
6370 req : Request ,
64- server : Bun . Server ,
71+ server : Bun . Server < WebSocketData > ,
6572 ) => void | Promise < void > ;
6673}
6774
@@ -73,7 +80,11 @@ interface ConnectionError {
7380}
7481
7582interface ServerReservedEvents {
76- connection : ( socket : Socket , request : Request , server : Bun . Server ) => void ;
83+ connection : (
84+ socket : Socket ,
85+ request : Request ,
86+ server : Bun . Server < WebSocketData > ,
87+ ) => void ;
7788 connection_error : ( err : ConnectionError ) => void ;
7889}
7990
@@ -127,7 +138,7 @@ export class Server extends EventEmitter<
127138 */
128139 public async handleRequest (
129140 req : Request ,
130- server : Bun . Server ,
141+ server : Bun . Server < WebSocketData > ,
131142 ) : Promise < Response > {
132143 const url = new URL ( req . url ) ;
133144
@@ -321,7 +332,7 @@ export class Server extends EventEmitter<
321332 */
322333 private async handshake (
323334 req : Request ,
324- server : Bun . Server ,
335+ server : Bun . Server < WebSocketData > ,
325336 responseHeaders : Headers ,
326337 ) : Promise < Response > {
327338 const id = generateId ( ) ;
@@ -338,7 +349,7 @@ export class Server extends EventEmitter<
338349 const isSuccess = server . upgrade ( req , {
339350 headers : responseHeaders ,
340351 data : {
341- transport,
352+ transport : transport as WS ,
342353 } ,
343354 } ) ;
344355
@@ -415,7 +426,7 @@ export class Server extends EventEmitter<
415426 const idleTimeoutInSeconds = Math . ceil ( ( 2 * this . opts . pingInterval ) / 1000 ) ;
416427
417428 return {
418- fetch : ( req : Request , server : Bun . Server ) => {
429+ fetch : ( req : Request , server : Bun . Server < WebSocketData > ) => {
419430 const url = new URL ( req . url ) ;
420431
421432 if ( url . pathname === this . opts . path ) {
0 commit comments