11/// <reference types="node" />
22import { IncomingMessage , ServerResponse , Server } from 'http' ;
3- import { FastifyRequest , FastifyPluginCallback , RawServerBase , RawServerDefault , RawRequestDefaultExpression , RawReplyDefaultExpression , RequestGenericInterface , ContextConfigDefault , FastifyInstance } from 'fastify' ;
3+ import { FastifyRequest , FastifyPluginCallback , RawServerBase , RawServerDefault , RawRequestDefaultExpression , RawReplyDefaultExpression , RequestGenericInterface , ContextConfigDefault , FastifyInstance , FastifySchema , FastifyTypeProvider , FastifyTypeProviderDefault , FastifyBaseLogger } from 'fastify' ;
44import * as fastify from 'fastify' ;
55import * as WebSocket from 'ws' ;
66import { Duplex , DuplexOptions } from 'stream' ;
77import { FastifyReply } from 'fastify/types/reply' ;
88import { RouteGenericInterface } from 'fastify/types/route' ;
99
10- interface WebsocketRouteOptions < RawServer extends RawServerBase = RawServerDefault , RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > , RequestGeneric extends RequestGenericInterface = RequestGenericInterface > {
11- wsHandler ?: WebsocketHandler < RawServer , RawRequest , RequestGeneric > ;
10+ interface WebsocketRouteOptions <
11+ RawServer extends RawServerBase = RawServerDefault ,
12+ RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > ,
13+ RequestGeneric extends RequestGenericInterface = RequestGenericInterface ,
14+ ContextConfig = ContextConfigDefault ,
15+ SchemaCompiler extends FastifySchema = FastifySchema ,
16+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault ,
17+ Logger extends FastifyBaseLogger = FastifyBaseLogger
18+ > {
19+ wsHandler ?: WebsocketHandler < RawServer , RawRequest , RequestGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger > ;
1220}
1321
1422declare module 'fastify' {
@@ -31,29 +39,43 @@ declare module 'fastify' {
3139 RawServer extends RawServerBase = RawServerDefault ,
3240 RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > ,
3341 RawReply extends RawReplyDefaultExpression < RawServer > = RawReplyDefaultExpression < RawServer > ,
42+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault ,
3443 > {
35- < RequestGeneric extends RequestGenericInterface = RequestGenericInterface , ContextConfig = ContextConfigDefault > (
44+ < RequestGeneric extends RequestGenericInterface = RequestGenericInterface , ContextConfig = ContextConfigDefault , SchemaCompiler extends FastifySchema = FastifySchema , Logger extends FastifyBaseLogger = FastifyBaseLogger > (
3645 path : string ,
37- opts : RouteShorthandOptions < RawServer , RawRequest , RawReply , RequestGeneric , ContextConfig > & { websocket : true } , // this creates an overload that only applies these different types if the handler is for websockets
38- handler ?: WebsocketHandler < RawServer , RawRequest , RequestGeneric >
39- ) : FastifyInstance < RawServer , RawRequest , RawReply > ;
46+ opts : RouteShorthandOptions < RawServer , RawRequest , RawReply , RequestGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger > & { websocket : true } , // this creates an overload that only applies these different types if the handler is for websockets
47+ handler ?: WebsocketHandler < RawServer , RawRequest , RequestGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger >
48+ ) : FastifyInstance < RawServer , RawRequest , RawReply , Logger , TypeProvider > ;
4049 }
4150
42- interface RouteOptions < RawServer extends RawServerBase = RawServerDefault , RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > , RawReply extends RawReplyDefaultExpression < RawServer > = RawReplyDefaultExpression < RawServer > , RouteGeneric extends RouteGenericInterface = RouteGenericInterface , ContextConfig = ContextConfigDefault , SchemaCompiler = fastify . FastifySchema > extends WebsocketRouteOptions < RawServer , RawRequest , RouteGeneric > { }
51+ interface RouteOptions <
52+ RawServer extends RawServerBase = RawServerDefault ,
53+ RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > ,
54+ RawReply extends RawReplyDefaultExpression < RawServer > = RawReplyDefaultExpression < RawServer > ,
55+ RouteGeneric extends RouteGenericInterface = RouteGenericInterface ,
56+ ContextConfig = ContextConfigDefault ,
57+ SchemaCompiler = fastify . FastifySchema ,
58+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault ,
59+ Logger extends FastifyBaseLogger = FastifyBaseLogger
60+ > extends WebsocketRouteOptions < RawServer , RawRequest , RouteGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger > { }
4361}
4462
4563declare const websocketPlugin : FastifyPluginCallback < WebsocketPluginOptions > ;
4664
47- interface WebSocketServerOptions extends Omit < WebSocket . ServerOptions , "path" > { }
65+ interface WebSocketServerOptions extends Omit < WebSocket . ServerOptions , "path" > { }
4866
4967export type WebsocketHandler <
5068 RawServer extends RawServerBase = RawServerDefault ,
5169 RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > ,
52- RequestGeneric extends RequestGenericInterface = RequestGenericInterface
70+ RequestGeneric extends RequestGenericInterface = RequestGenericInterface ,
71+ ContextConfig = ContextConfigDefault ,
72+ SchemaCompiler extends FastifySchema = FastifySchema ,
73+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault ,
74+ Logger extends FastifyBaseLogger = FastifyBaseLogger
5375> = (
5476 this : FastifyInstance < Server , IncomingMessage , ServerResponse > ,
5577 connection : SocketStream ,
56- request : FastifyRequest < RequestGeneric , RawServer , RawRequest > ,
78+ request : FastifyRequest < RequestGeneric , RawServer , RawRequest , SchemaCompiler , TypeProvider , ContextConfig , Logger >
5779) => void | Promise < any > ;
5880
5981export interface SocketStream extends Duplex {
@@ -66,6 +88,15 @@ export interface WebsocketPluginOptions {
6688 connectionOptions ?: DuplexOptions ;
6789}
6890
69- export interface RouteOptions < RawServer extends RawServerBase = RawServerDefault , RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > , RawReply extends RawReplyDefaultExpression < RawServer > = RawReplyDefaultExpression < RawServer > , RouteGeneric extends RouteGenericInterface = RouteGenericInterface , ContextConfig = ContextConfigDefault , SchemaCompiler extends fastify . FastifySchema = fastify . FastifySchema > extends fastify . RouteOptions < RawServer , RawRequest , RawReply , RouteGeneric , ContextConfig , SchemaCompiler > , WebsocketRouteOptions < RawServer , RawRequest , RouteGeneric > { }
91+ export interface RouteOptions <
92+ RawServer extends RawServerBase = RawServerDefault ,
93+ RawRequest extends RawRequestDefaultExpression < RawServer > = RawRequestDefaultExpression < RawServer > ,
94+ RawReply extends RawReplyDefaultExpression < RawServer > = RawReplyDefaultExpression < RawServer > ,
95+ RouteGeneric extends RouteGenericInterface = RouteGenericInterface ,
96+ ContextConfig = ContextConfigDefault ,
97+ SchemaCompiler extends fastify . FastifySchema = fastify . FastifySchema ,
98+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault ,
99+ Logger extends FastifyBaseLogger = FastifyBaseLogger
100+ > extends fastify . RouteOptions < RawServer , RawRequest , RawReply , RouteGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger > , WebsocketRouteOptions < RawServer , RawRequest , RouteGeneric , ContextConfig , SchemaCompiler , TypeProvider , Logger > { }
70101
71102export default websocketPlugin ;
0 commit comments