| 402 | * @category conversions |
| 403 | */ |
| 404 | export const fromWeb = (response: Response): HttpServerResponse => { |
| 405 | const headers = new globalThis.Headers(response.headers) |
| 406 | const setCookieHeaders = headers.getSetCookie() |
| 407 | headers.delete("set-cookie") |
| 408 | let self = empty({ |
| 409 | status: response.status, |
| 410 | statusText: response.statusText, |
| 411 | headers: headers as any, |
| 412 | cookies: Cookies.fromSetCookie(setCookieHeaders) |
| 413 | }) |
| 414 | if (response.body) { |
| 415 | const contentType = headers.get("content-type") |
| 416 | self = setBody( |
| 417 | self, |
| 418 | Body.stream( |
| 419 | Stream.fromReadableStream({ |
| 420 | evaluate: () => response.body!, |
| 421 | onError: (e) => e |
| 422 | }), |
| 423 | contentType ?? undefined |
| 424 | ) |
| 425 | ) |
| 426 | } |
| 427 | return self |
| 428 | } |