import * as dntShim from "../../_dnt.shims.js"; import * as WS from "ws" let wss: WS.WebSocketServer | undefined export function upgradeWebSocket(request: Request) { wss ??= new WS.WebSocketServer({ noServer: true }) // Set by http.node.ts const [req, socket, head] = (request as any)._upgrade return { socket: new Promise((resolve) => wss.handleUpgrade(req, socket, head, (ws: dntShim.WebSocket) => { resolve(ws) setTimeout(() => (ws as any).emit("open"), 0) }) ), response: new Promise(() => {}), } }