22
33import {
44 FastifyPluginCallback ,
5+ FastifyReply ,
56 FastifyRequest ,
67 preHandlerHookHandler ,
78 preValidationHookHandler ,
@@ -17,6 +18,28 @@ import {
1718import { ClientOptions , ServerOptions , WebSocket } from 'ws'
1819import { Logger } from 'pino'
1920
21+ type FastifyReplyWithFromParameters = FastifyReply & {
22+ fromParameters : (
23+ url : string ,
24+ params ?: unknown ,
25+ prefix ?: string
26+ ) => { url : string ; options : unknown } ;
27+ }
28+
29+ type ProxyPreHandlerHookHandler = (
30+ this : preHandlerHookHandler ,
31+ request : Parameters < preHandlerHookHandler > [ 0 ] ,
32+ reply : FastifyReplyWithFromParameters ,
33+ done : Parameters < preHandlerHookHandler > [ 2 ]
34+ ) => void
35+
36+ type ProxyPreValidationHookHandler = (
37+ this : preValidationHookHandler ,
38+ request : Parameters < preValidationHookHandler > [ 0 ] ,
39+ reply : FastifyReplyWithFromParameters ,
40+ done : Parameters < preValidationHookHandler > [ 2 ]
41+ ) => void
42+
2043interface WebSocketHooks {
2144 onConnect ?: ( context : { log : Logger } , source : WebSocket , target : WebSocket ) => void ;
2245 onDisconnect ?: ( context : { log : Logger } , source : WebSocket ) => void ;
@@ -42,6 +65,7 @@ interface FastifyHttpProxyWebsocketOptionsEnabled {
4265 wsHooks ?: WebSocketHooks ;
4366 wsReconnect ?: WebSocketReconnectOptions ;
4467}
68+
4569interface FastifyHttpProxyWebsocketOptionsDisabled {
4670 websocket ?: false | never ;
4771 wsUpstream ?: never ;
@@ -64,9 +88,9 @@ declare namespace fastifyHttpProxy {
6488 prefix ?: string ;
6589 rewritePrefix ?: string ;
6690 proxyPayloads ?: boolean ;
67- preHandler ?: preHandlerHookHandler ;
68- beforeHandler ?: preHandlerHookHandler ;
69- preValidation ?: preValidationHookHandler ;
91+ preHandler ?: ProxyPreHandlerHookHandler ;
92+ beforeHandler ?: ProxyPreHandlerHookHandler ;
93+ preValidation ?: ProxyPreValidationHookHandler ;
7094 config ?: Object ;
7195 replyOptions ?: FastifyReplyFromHooks ;
7296 wsClientOptions ?: ClientOptions & { queryString ?: { [ key : string ] : unknown } | QueryStringFunction ; } ;
0 commit comments