diff --git a/test/types/hooks.test-d.ts b/test/types/hooks.test-d.ts index 7b16bc9c0f..61656a38d0 100644 --- a/test/types/hooks.test-d.ts +++ b/test/types/hooks.test-d.ts @@ -10,7 +10,7 @@ import fastify, { RouteOptions, RegisterOptions, FastifyPluginOptions, - FastifyContextConfig + FastifyContextConfig, RawServerDefault } from '../../fastify' import { preHandlerAsyncHookHandler, RequestPayload } from '../../types/hooks' import { RouteGenericInterface } from '../../types/route' @@ -215,7 +215,7 @@ server.addHook('onClose', async (instance) => { // Use case to monitor any regression on issue #3620 // ref.: https://github.com/fastify/fastify/issues/3620 const customTypedHook: preHandlerAsyncHookHandler< -RawServerBase, +RawServerDefault, RawRequestDefaultExpression, RawReplyDefaultExpression, Record diff --git a/test/types/request.test-d.ts b/test/types/request.test-d.ts index c5f1a2ffdc..aa016737b9 100644 --- a/test/types/request.test-d.ts +++ b/test/types/request.test-d.ts @@ -1,10 +1,23 @@ import { expectType } from 'tsd' -import fastify, { RouteHandler, RawRequestDefaultExpression, RequestBodyDefault, RequestGenericInterface, FastifyContext, ContextConfigDefault, FastifyContextConfig } from '../../fastify' +import fastify, { + RouteHandler, + RawRequestDefaultExpression, + RequestBodyDefault, + RequestGenericInterface, + FastifyContext, + ContextConfigDefault, + FastifyContextConfig, + FastifyLogFn, + RawServerDefault, + RawReplyDefaultExpression, + RouteHandlerMethod +} from '../../fastify' import { RequestParamsDefault, RequestHeadersDefault, RequestQuerystringDefault } from '../../types/utils' import { FastifyLoggerInstance } from '../../types/logger' import { FastifyRequest } from '../../types/request' import { FastifyReply } from '../../types/reply' import { FastifyInstance } from '../../types/instance' +import { RouteGenericInterface } from '../../types/route' interface RequestBody { content: string; @@ -38,6 +51,10 @@ type CustomRequest = FastifyRequest<{ Headers: RequestHeaders; }> +interface CustomLoggerInterface extends FastifyLoggerInstance { + foo: FastifyLogFn; // custom severity logger method +} + const getHandler: RouteHandler = function (request, _reply) { expectType(request.url) expectType(request.method) @@ -64,6 +81,10 @@ const getHandler: RouteHandler = function (request, _reply) { expectType(request.server) } +const getHandlerWithCustomLogger: RouteHandlerMethod = function (request, _reply) { + expectType(request.log) +} + const postHandler: Handler = function (request) { expectType(request.body) expectType(request.params) @@ -96,3 +117,22 @@ const server = fastify() server.get('/get', getHandler) server.post('/post', postHandler) server.put('/put', putHandler) + +const customLogger: CustomLoggerInterface = { + info: () => { }, + warn: () => { }, + error: () => { }, + fatal: () => { }, + trace: () => { }, + debug: () => { }, + foo: () => { }, // custom severity logger method + child: () => customLogger +} + +const serverWithCustomLogger = fastify({ logger: customLogger }) +expectType< +FastifyInstance +& PromiseLike> +>(serverWithCustomLogger) + +serverWithCustomLogger.get('/get', getHandlerWithCustomLogger) diff --git a/types/hooks.d.ts b/types/hooks.d.ts index f133e3c253..50d8f6dbf6 100644 --- a/types/hooks.d.ts +++ b/types/hooks.d.ts @@ -26,11 +26,12 @@ export interface onRequestHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction ): void; @@ -41,11 +42,12 @@ export interface onRequestAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, ): Promise; } @@ -59,11 +61,12 @@ export interface preParsingHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: RequestPayload, done: (err?: TError | null, res?: RequestPayload) => void @@ -75,11 +78,12 @@ export interface preParsingAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: RequestPayload, ): Promise; @@ -93,11 +97,12 @@ export interface preValidationHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction ): void; @@ -108,11 +113,12 @@ export interface preValidationAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, ): Promise; } @@ -125,11 +131,12 @@ export interface preHandlerHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction ): void; @@ -140,11 +147,12 @@ export interface preHandlerAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, ): Promise; } @@ -166,11 +174,12 @@ export interface preSerializationHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: PreSerializationPayload, done: DoneFuncWithErrOrRes @@ -183,11 +192,12 @@ export interface preSerializationAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: PreSerializationPayload ): Promise; @@ -203,11 +213,12 @@ export interface onSendHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: OnSendPayload, done: DoneFuncWithErrOrRes @@ -220,11 +231,12 @@ export interface onSendAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, payload: OnSendPayload, ): Promise; @@ -239,11 +251,12 @@ export interface onResponseHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction ): void; @@ -254,11 +267,12 @@ export interface onResponseAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply ): Promise; } @@ -272,11 +286,12 @@ export interface onTimeoutHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction ): void; @@ -287,11 +302,12 @@ export interface onTimeoutAsyncHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply ): Promise; } @@ -308,11 +324,12 @@ export interface onErrorHookHandler< RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, - TError extends Error = FastifyError + TError extends Error = FastifyError, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, error: TError, done: () => void @@ -325,11 +342,12 @@ export interface onErrorAsyncHookHandler< RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, - TError extends Error = FastifyError + TError extends Error = FastifyError, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply, error: TError ): Promise; @@ -345,10 +363,11 @@ export interface onRouteHookHandler< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { ( - this: FastifyInstance, + this: FastifyInstance, opts: RouteOptions & { routePath: string; path: string; prefix: string } ): Promise | void; } @@ -362,7 +381,7 @@ export interface onRegisterHookHandler< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, - Logger = FastifyLoggerInstance, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, Options extends FastifyPluginOptions = FastifyPluginOptions > { ( @@ -375,9 +394,14 @@ export interface onRegisterHookHandler< /** * Triggered when fastify.listen() or fastify.ready() is invoked to start the server. It is useful when plugins need a "ready" event, for example to load data before the server start listening for requests. */ -export interface onReadyHookHandler { +export interface onReadyHookHandler< + RawServer extends RawServerBase = RawServerDefault, + RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, + RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, +> { ( - this: FastifyInstance, + this: FastifyInstance, done: HookHandlerDoneFunction ): void; } @@ -394,7 +418,7 @@ export interface onCloseHookHandler< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, - Logger = FastifyLoggerInstance + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, > { ( instance: FastifyInstance, @@ -406,7 +430,7 @@ export interface onCloseAsyncHookHandler< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, - Logger = FastifyLoggerInstance + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, > { ( instance: FastifyInstance diff --git a/types/instance.d.ts b/types/instance.d.ts index 5d5ef68101..549d5bc3c2 100644 --- a/types/instance.d.ts +++ b/types/instance.d.ts @@ -29,7 +29,7 @@ export interface FastifyInstance< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, - Logger = FastifyLoggerInstance + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { server: RawServer; prefix: string; @@ -83,7 +83,7 @@ export interface FastifyInstance< listen(opts: { port: number; host?: string; backlog?: number }, callback: (err: Error|null, address: string) => void): void; listen(opts: { port: number; host?: string; backlog?: number }): Promise; - ready(): FastifyInstance & PromiseLike; + ready(): FastifyInstance & PromiseLike; ready(readyListener: (err: Error) => void): FastifyInstance; register: FastifyRegister & PromiseLike>; @@ -96,7 +96,7 @@ export interface FastifyInstance< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, SchemaCompiler = FastifySchema, - >(opts: RouteOptions): FastifyInstance; + >(opts: RouteOptions): FastifyInstance; get: RouteShorthandMethod; head: RouteShorthandMethod; @@ -117,10 +117,11 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'onRequest', - hook: onRequestHookHandler + hook: onRequestHookHandler ): FastifyInstance; addHook< @@ -128,7 +129,7 @@ export interface FastifyInstance< ContextConfig = ContextConfigDefault >( name: 'onRequest', - hook: onRequestAsyncHookHandler + hook: onRequestAsyncHookHandler ): FastifyInstance; /** @@ -140,7 +141,7 @@ export interface FastifyInstance< ContextConfig = ContextConfigDefault >( name: 'preParsing', - hook: preParsingHookHandler + hook: preParsingHookHandler ): FastifyInstance; addHook< @@ -148,7 +149,7 @@ export interface FastifyInstance< ContextConfig = ContextConfigDefault >( name: 'preParsing', - hook: preParsingAsyncHookHandler + hook: preParsingAsyncHookHandler ): FastifyInstance; /** @@ -156,18 +157,20 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preValidation', - hook: preValidationHookHandler + hook: preValidationHookHandler ): FastifyInstance; addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preValidation', - hook: preValidationAsyncHookHandler + hook: preValidationAsyncHookHandler ): FastifyInstance; /** @@ -175,18 +178,20 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preHandler', - hook: preHandlerHookHandler + hook: preHandlerHookHandler ): FastifyInstance; addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preHandler', - hook: preHandlerAsyncHookHandler + hook: preHandlerAsyncHookHandler ): FastifyInstance; /** @@ -196,19 +201,21 @@ export interface FastifyInstance< addHook< PreSerializationPayload = unknown, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preSerialization', - hook: preSerializationHookHandler + hook: preSerializationHookHandler ): FastifyInstance; addHook< PreSerializationPayload = unknown, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'preSerialization', - hook: preSerializationAsyncHookHandler + hook: preSerializationAsyncHookHandler ): FastifyInstance; /** @@ -218,19 +225,21 @@ export interface FastifyInstance< addHook< OnSendPayload = unknown, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'onSend', - hook: onSendHookHandler + hook: onSendHookHandler ): FastifyInstance; addHook< OnSendPayload = unknown, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance >( name: 'onSend', - hook: onSendAsyncHookHandler + hook: onSendAsyncHookHandler ): FastifyInstance; /** @@ -239,18 +248,20 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onResponse', - hook: onResponseHookHandler + hook: onResponseHookHandler ): FastifyInstance; addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onResponse', - hook: onResponseAsyncHookHandler + hook: onResponseAsyncHookHandler ): FastifyInstance; /** @@ -259,18 +270,20 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onTimeout', - hook: onTimeoutHookHandler + hook: onTimeoutHookHandler ): FastifyInstance; addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onTimeout', - hook: onTimeoutAsyncHookHandler + hook: onTimeoutAsyncHookHandler ): FastifyInstance; /** @@ -281,18 +294,20 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onError', - hook: onErrorHookHandler + hook: onErrorHookHandler ): FastifyInstance; addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onError', - hook: onErrorAsyncHookHandler + hook: onErrorAsyncHookHandler ): FastifyInstance; // Application addHooks @@ -302,10 +317,11 @@ export interface FastifyInstance< */ addHook< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance, >( name: 'onRoute', - hook: onRouteHookHandler + hook: onRouteHookHandler ): FastifyInstance; /** diff --git a/types/request.d.ts b/types/request.d.ts index 93dab01316..6ce532e092 100644 --- a/types/request.d.ts +++ b/types/request.d.ts @@ -20,13 +20,14 @@ export interface FastifyRequest< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { id: any; params: RouteGeneric['Params']; raw: RawRequest; query: RouteGeneric['Querystring']; headers: RawRequest['headers'] & RouteGeneric['Headers']; // this enables the developer to extend the existing http(s|2) headers list - log: FastifyLoggerInstance; + log: Logger; server: FastifyInstance; body: RouteGeneric['Body']; context: FastifyContext; diff --git a/types/route.d.ts b/types/route.d.ts index 5cd01033a3..789dd27c4b 100644 --- a/types/route.d.ts +++ b/types/route.d.ts @@ -3,7 +3,7 @@ import { FastifyRequest, RequestGenericInterface } from './request' import { FastifyReply, ReplyGenericInterface } from './reply' import { FastifySchema, FastifySchemaCompiler, FastifySchemaValidationError, FastifySerializerCompiler } from './schema' import { HTTPMethods, RawServerBase, RawServerDefault, RawRequestDefaultExpression, RawReplyDefaultExpression, ContextConfigDefault } from './utils' -import { LogLevel } from './logger' +import { FastifyLoggerInstance, LogLevel } from './logger' import { preValidationHookHandler, preHandlerHookHandler, preSerializationHookHandler, onRequestHookHandler, preParsingHookHandler, onResponseHookHandler, onSendHookHandler, onErrorHookHandler, onTimeoutHookHandler } from './hooks' import { FastifyError } from 'fastify-error' import { FastifyContext } from './context' @@ -20,6 +20,7 @@ export interface RouteShorthandOptions< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, SchemaCompiler = FastifySchema, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > { schema?: FastifySchema; attachValidation?: boolean; @@ -37,15 +38,15 @@ export interface RouteShorthandOptions< schemaErrorFormatter?: (errors: FastifySchemaValidationError[], dataVar: string) => Error; // hooks - onRequest?: onRequestHookHandler | onRequestHookHandler[]; - preParsing?: preParsingHookHandler | preParsingHookHandler[]; - preValidation?: preValidationHookHandler | preValidationHookHandler[]; - preHandler?: preHandlerHookHandler | preHandlerHookHandler[]; - preSerialization?: preSerializationHookHandler | preSerializationHookHandler[]; - onSend?: onSendHookHandler | onSendHookHandler[]; - onResponse?: onResponseHookHandler | onResponseHookHandler[]; - onTimeout?: onTimeoutHookHandler | onTimeoutHookHandler[]; - onError?: onErrorHookHandler | onErrorHookHandler[]; + onRequest?: onRequestHookHandler | onRequestHookHandler[]; + preParsing?: preParsingHookHandler | preParsingHookHandler[]; + preValidation?: preValidationHookHandler | preValidationHookHandler[]; + preHandler?: preHandlerHookHandler | preHandlerHookHandler[]; + preSerialization?: preSerializationHookHandler | preSerializationHookHandler[]; + onSend?: onSendHookHandler | onSendHookHandler[]; + onResponse?: onResponseHookHandler | onResponseHookHandler[]; + onTimeout?: onTimeoutHookHandler | onTimeoutHookHandler[]; + onError?: onErrorHookHandler | onErrorHookHandler[]; } /** @@ -56,10 +57,11 @@ export type RouteHandlerMethod< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > = ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply ) => void | Promise @@ -73,8 +75,9 @@ export interface RouteShorthandOptionsWithHandler< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, SchemaCompiler = FastifySchema, -> extends RouteShorthandOptions { - handler: RouteHandlerMethod; + Logger extends FastifyLoggerInstance = FastifyLoggerInstance +> extends RouteShorthandOptions { + handler: RouteHandlerMethod; } /** @@ -85,19 +88,19 @@ export interface RouteShorthandMethod< RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, > { - ( + ( path: string, - opts: RouteShorthandOptions, - handler: RouteHandlerMethod - ): FastifyInstance; - ( + opts: RouteShorthandOptions, + handler: RouteHandlerMethod + ): FastifyInstance; + ( path: string, - handler: RouteHandlerMethod - ): FastifyInstance; - ( + handler: RouteHandlerMethod + ): FastifyInstance; + ( path: string, - opts: RouteShorthandOptionsWithHandler - ): FastifyInstance; + opts: RouteShorthandOptionsWithHandler + ): FastifyInstance; } /** @@ -110,10 +113,11 @@ export interface RouteOptions< RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig = ContextConfigDefault, SchemaCompiler = FastifySchema, -> extends RouteShorthandOptions { + Logger extends FastifyLoggerInstance = FastifyLoggerInstance +> extends RouteShorthandOptions { method: HTTPMethods | HTTPMethods[]; url: string; - handler: RouteHandlerMethod; + handler: RouteHandlerMethod; } export type RouteHandler< @@ -121,10 +125,11 @@ export type RouteHandler< RawServer extends RawServerBase = RawServerDefault, RawRequest extends RawRequestDefaultExpression = RawRequestDefaultExpression, RawReply extends RawReplyDefaultExpression = RawReplyDefaultExpression, - ContextConfig = ContextConfigDefault + ContextConfig = ContextConfigDefault, + Logger extends FastifyLoggerInstance = FastifyLoggerInstance > = ( - this: FastifyInstance, - request: FastifyRequest, + this: FastifyInstance, + request: FastifyRequest, reply: FastifyReply ) => void | Promise