diff --git a/docs/2.adapters/deno.md b/docs/2.adapters/deno.md index 5b7e3b4..1488adf 100644 --- a/docs/2.adapters/deno.md +++ b/docs/2.adapters/deno.md @@ -17,9 +17,9 @@ const { handleUpgrade } = wsAdapter({ }, }); -Deno.serve({ port: 3000 }, (request) => { +Deno.serve({ port: 3000 }, (request, info) => { if (request.headers.get("upgrade") === "websocket") { - return handleUpgrade(request); + return handleUpgrade(request, info); } return new Response( ``, diff --git a/playground/deno.ts b/playground/deno.ts index 303726a..26d1d5c 100644 --- a/playground/deno.ts +++ b/playground/deno.ts @@ -9,9 +9,9 @@ import { createDemo, getIndexHTML } from "./_shared.ts"; const adapter = createDemo(denoAdapter); -Deno.serve({ port: 3001 }, async (req) => { +Deno.serve({ port: 3001 }, async (req, info) => { if (req.headers.get("upgrade") === "websocket") { - return adapter.handleUpgrade(req); + return adapter.handleUpgrade(req, info); } return new Response(await getIndexHTML(), { diff --git a/src/adapters/deno.ts b/src/adapters/deno.ts index 71271d7..34806af 100644 --- a/src/adapters/deno.ts +++ b/src/adapters/deno.ts @@ -10,7 +10,7 @@ import { createCrossWS } from "../crossws"; import { toBufferLike } from "../_utils"; export interface DenoAdapter { - handleUpgrade(req: Request): Promise; + handleUpgrade(req: Request, info: ServeHandlerInfo): Promise; } export interface DenoOptions extends AdapterOptions {} @@ -20,12 +20,13 @@ declare global { } type WebSocketUpgrade = import("@deno/types").Deno.WebSocketUpgrade; +type ServeHandlerInfo = any; // TODO export default defineWebSocketAdapter( (options = {}) => { const crossws = createCrossWS(options); - const handleUpgrade = async (req: Request) => { + const handleUpgrade = async (req: Request, info: ServeHandlerInfo) => { const { headers } = await crossws.upgrade({ url: req.url, headers: req.headers, @@ -37,7 +38,7 @@ export default defineWebSocketAdapter( }); const peer = new DenoPeer({ - deno: { ws: upgrade.socket, req }, + deno: { ws: upgrade.socket, req, info }, }); upgrade.socket.addEventListener("open", () => { @@ -66,7 +67,11 @@ export default defineWebSocketAdapter( ); class DenoPeer extends Peer<{ - deno: { ws: WebSocketUpgrade["socket"]; req: Request }; + deno: { + ws: WebSocketUpgrade["socket"]; + req: Request; + info: ServeHandlerInfo; + }; }> { get id() { // @ts-expect-error types missing