Add SocketRouteBuilder and make Route.socket(...) return it

This commit is contained in:
2022-08-06 13:10:51 -05:00
parent ef405093dc
commit 4aa33e8dd2
4 changed files with 66 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ import {Config} from '../../service/Config'
import {Application} from '../../lifecycle/Application'
import {Logging} from '../../service/Logging'
import {WebSocketBus} from '../../support/bus/WebSocketBus'
import {SocketRouteBuilder} from './SocketRouteBuilder'
/**
* Type alias for an item that is a valid response object, or lack thereof.
@@ -141,8 +142,16 @@ export class Route<TReturn extends ResponseObject, THandlerParams extends unknow
* Create a new WebSocket route on the given endpoint.
* @param endpoint
*/
public static socket(endpoint: string): Route<Awaitable<void>, [WebSocketBus]> {
return new Route<Awaitable<void>, [WebSocketBus]>('ws', endpoint)
public static socket(endpoint: string): SocketRouteBuilder {
const builder = SocketRouteBuilder.get()
;(new Route<Awaitable<void>, [WebSocketBus]>('ws', endpoint))
.passingRequest()
.handledBy(async (ws: WebSocketBus, request: Request) => {
await builder.build(request, ws)
})
return builder
}
/**