| 157 | }), middleware) |
| 158 | |
| 159 | function handler(request: Request, server: BunServer<WebSocketContext>) { |
| 160 | return new Promise<Response>((resolve, _reject) => { |
| 161 | const context = Context.add( |
| 162 | services, |
| 163 | ServerRequest.HttpServerRequest, |
| 164 | new BunServerRequest(request, resolve, removeHost(request.url), server) |
| 165 | ) |
| 166 | const fiber = Fiber.runIn(Effect.runForkWith(context)(httpEffect), scope) |
| 167 | request.signal.addEventListener("abort", () => { |
| 168 | fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation) |
| 169 | }, { once: true }) |
| 170 | }) |
| 171 | } |
| 172 | |
| 173 | yield* Scope.addFinalizerExit(serveScope, () => { |
| 174 | const index = handlerStack.indexOf(handler) |