1
0

Merge pull request #14 from connormckelvey/main

Add websocket support
This commit is contained in:
Toby Schneider
2022-06-01 20:39:16 +02:00
committed by GitHub
3 changed files with 19 additions and 7 deletions

View File

@@ -152,10 +152,11 @@ Key | Type | Description
### `res`-Object ### `res`-Object
Key | Type | Description Key | Type | Description
--------- | ------------------- | ----------- ----------- | ------------------- | -----------
`body` | `object` / `string` | Either set an `object` (will be converted to JSON) or a string `body` | `object` / `string` | Either set an `object` (will be converted to JSON) or a string
`headers` | `Headers` | Response [Headers Object](https://developer.mozilla.org/en-US/docs/Web/API/Headers) `headers` | `Headers` | Response [Headers Object](https://developer.mozilla.org/en-US/docs/Web/API/Headers)
`status` | `integer` | Return status code (default: `204`) `status` | `integer` | Return status code (default: `204`)
`webSocket` | `WebSocket` | Upgraded websocket connection
## Setup ## Setup

4
index.d.ts vendored
View File

@@ -321,6 +321,10 @@ type RouterResponse = {
body: { body: {
[key: string]: string [key: string]: string
} | string } | string
/**
* Upgraded websocket connection
*/
webSocket?: WebSocket
} }
/** /**
* Next Function * Next Function

View File

@@ -384,10 +384,17 @@ class Router {
if (res.raw) { if (res.raw) {
return res.raw return res.raw
} }
return new Response(res.body, {
const resInit = {
status: res.status || (res.body ? 200 : 204), status: res.status || (res.body ? 200 : 204),
headers: res.headers headers: res.headers
}) }
if (res.webSocket) {
resInit.webSocket = res.webSocket
}
return new Response(res.body, resInit)
} catch(err) { } catch(err) {
console.error(err) console.error(err)
return new Response(this.debugMode ? err.stack : '', { status: 500 }) return new Response(this.debugMode ? err.stack : '', { status: 500 })