fastify 5.9.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/PROJECT_CHARTER.md +1 -1
  2. package/README.md +7 -10
  3. package/SPONSORS.md +1 -0
  4. package/build/build-validation.js +2 -2
  5. package/docs/Guides/Delay-Accepting-Requests.md +1 -1
  6. package/docs/Guides/Ecosystem.md +12 -9
  7. package/docs/Guides/Getting-Started.md +10 -10
  8. package/docs/Guides/Migration-Guide-V4.md +2 -2
  9. package/docs/Guides/Migration-Guide-V5.md +1 -1
  10. package/docs/Guides/Plugins-Guide.md +1 -1
  11. package/docs/Guides/Prototype-Poisoning.md +3 -3
  12. package/docs/Guides/Serverless.md +6 -13
  13. package/docs/Guides/Style-Guide.md +1 -1
  14. package/docs/Reference/Errors.md +6 -0
  15. package/docs/Reference/Hooks.md +1 -1
  16. package/docs/Reference/Logging.md +3 -0
  17. package/docs/Reference/Reply.md +2 -2
  18. package/docs/Reference/Request.md +13 -13
  19. package/docs/Reference/Server.md +117 -17
  20. package/docs/Reference/Type-Providers.md +24 -4
  21. package/docs/Reference/TypeScript.md +8 -10
  22. package/docs/Reference/Warnings.md +5 -0
  23. package/eslint.config.js +1 -1
  24. package/fastify.d.ts +60 -13
  25. package/fastify.js +28 -23
  26. package/lib/content-type-parser.js +1 -11
  27. package/lib/content-type.js +70 -19
  28. package/lib/context.js +0 -3
  29. package/lib/error-handler.js +7 -26
  30. package/lib/errors.js +17 -0
  31. package/lib/four-oh-four.js +8 -10
  32. package/lib/handle-request.js +37 -8
  33. package/lib/hooks.js +5 -1
  34. package/lib/log-controller.js +169 -0
  35. package/lib/logger-factory.js +25 -4
  36. package/lib/reply.js +35 -44
  37. package/lib/req-id-gen-factory.js +4 -1
  38. package/lib/request.js +3 -3
  39. package/lib/route.js +28 -36
  40. package/lib/schemas.js +3 -3
  41. package/lib/symbols.js +1 -1
  42. package/lib/validation.js +10 -1
  43. package/lib/warnings.js +19 -1
  44. package/package.json +4 -4
  45. package/test/content-type.test.js +51 -4
  46. package/test/find-route.test.js +35 -0
  47. package/test/fix-6411.test.js +65 -0
  48. package/test/genReqId.test.js +24 -0
  49. package/test/hooks.test.js +71 -0
  50. package/test/internals/all.test.js +2 -1
  51. package/test/internals/errors.test.js +21 -1
  52. package/test/internals/logger.test.js +322 -0
  53. package/test/internals/reply.test.js +57 -4
  54. package/test/internals/request.test.js +10 -7
  55. package/test/logger/logging.test.js +40 -1
  56. package/test/reply-error.test.js +35 -0
  57. package/test/rfc-10008.test.js +147 -0
  58. package/test/route-shorthand.test.js +14 -4
  59. package/test/schema-serialization.test.js +33 -0
  60. package/test/stream.4.test.js +2 -2
  61. package/test/trust-proxy.test.js +49 -30
  62. package/test/types/errors.tst.ts +2 -0
  63. package/test/types/route.tst.ts +3 -3
  64. package/types/content-type-parser.d.ts +26 -6
  65. package/types/errors.d.ts +3 -0
  66. package/types/hooks.d.ts +137 -76
  67. package/types/instance.d.ts +152 -47
  68. package/types/logger.d.ts +57 -2
  69. package/types/plugin.d.ts +7 -3
  70. package/types/register.d.ts +53 -10
  71. package/types/reply.d.ts +62 -14
  72. package/types/route.d.ts +68 -34
  73. package/types/type-provider.d.ts +29 -8
  74. package/types/utils.d.ts +2 -2
@@ -1,8 +1,9 @@
1
1
  import { FastifyError } from '@fastify/error'
2
2
  import { ConstraintStrategy, FindResult, HTTPVersion } from 'find-my-way'
3
- import * as http from 'node:http'
4
3
  import { InjectOptions, CallbackFunc as LightMyRequestCallback, Chain as LightMyRequestChain, Response as LightMyRequestResponse } from 'light-my-request'
4
+ import * as http from 'node:http'
5
5
  import { AddressInfo } from 'node:net'
6
+ import { FastifyRouterOptions } from '../fastify'
6
7
  import { AddContentTypeParser, ConstructorAction, FastifyBodyParser, ProtoAction, getDefaultJsonParser, hasContentTypeParser, removeAllContentTypeParsers, removeContentTypeParser } from './content-type-parser'
7
8
  import { ApplicationHook, HookAsyncLookup, HookLookup, LifecycleHook, onCloseAsyncHookHandler, onCloseHookHandler, onErrorAsyncHookHandler, onErrorHookHandler, onListenAsyncHookHandler, onListenHookHandler, onReadyAsyncHookHandler, onReadyHookHandler, onRegisterHookHandler, onRequestAbortAsyncHookHandler, onRequestAbortHookHandler, onRequestAsyncHookHandler, onRequestHookHandler, onResponseAsyncHookHandler, onResponseHookHandler, onRouteHookHandler, onSendAsyncHookHandler, onSendHookHandler, onTimeoutAsyncHookHandler, onTimeoutHookHandler, preCloseAsyncHookHandler, preCloseHookHandler, preHandlerAsyncHookHandler, preHandlerHookHandler, preParsingAsyncHookHandler, preParsingHookHandler, preSerializationAsyncHookHandler, preSerializationHookHandler, preValidationAsyncHookHandler, preValidationHookHandler } from './hooks'
8
9
  import { FastifyBaseLogger, FastifyChildLoggerFactory } from './logger'
@@ -23,7 +24,6 @@ import {
23
24
  SafePromiseLike
24
25
  } from './type-provider'
25
26
  import { ContextConfigDefault, HTTPMethods, RawReplyDefaultExpression, RawRequestDefaultExpression, RawServerBase, RawServerDefault } from './utils'
26
- import { FastifyRouterOptions } from '../fastify'
27
27
 
28
28
  export interface PrintRoutesOptions {
29
29
  method?: HTTPMethods;
@@ -131,14 +131,16 @@ export interface FastifyInstance<
131
131
  log: Logger;
132
132
  listeningOrigin: string;
133
133
  addresses(): AddressInfo[]
134
- withTypeProvider<Provider extends FastifyTypeProvider>(): FastifyInstance<RawServer, RawRequest, RawReply, Logger, Provider>;
134
+ withTypeProvider<Provider extends FastifyTypeProvider>(): FastifyInstance<RawServer, RawRequest, RawReply, Logger,
135
+ Provider>;
135
136
 
136
137
  addSchema(schema: unknown): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
137
138
  getSchema(schemaId: string): unknown;
138
139
  getSchemas(): Record<string, unknown>;
139
140
 
140
141
  after(): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider> & SafePromiseLike<undefined>;
141
- after(afterListener: (err: Error | null) => void): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
142
+ after(afterListener: (err: Error | null) => void): FastifyInstance<RawServer, RawRequest, RawReply, Logger,
143
+ TypeProvider>;
142
144
 
143
145
  close(): Promise<undefined>;
144
146
  close(closeListener: () => void): undefined;
@@ -150,7 +152,8 @@ export interface FastifyInstance<
150
152
 
151
153
  // should be able to define something useful with the decorator getter/setter pattern using Generics to enforce the users function returns what they expect it to
152
154
  decorate: DecorationMethod<FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>>;
153
- decorateRequest: DecorationMethod<FastifyRequest, FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>>;
155
+ decorateRequest: DecorationMethod<FastifyRequest, FastifyInstance<RawServer, RawRequest, RawReply, Logger,
156
+ TypeProvider>>;
154
157
  decorateReply: DecorationMethod<FastifyReply, FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>>;
155
158
 
156
159
  getDecorator<T>(name: string | symbol): T;
@@ -172,9 +175,11 @@ export interface FastifyInstance<
172
175
  listen(callback: (err: Error | null, address: string) => void): void;
173
176
 
174
177
  ready(): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider> & SafePromiseLike<undefined>;
175
- ready(readyListener: (err: Error | null) => void | Promise<void>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
178
+ ready(readyListener: (err: Error | null) => void | Promise<void>): FastifyInstance<RawServer, RawRequest, RawReply,
179
+ Logger, TypeProvider>;
176
180
 
177
- register: FastifyRegister<FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider> & SafePromiseLike<undefined>>;
181
+ register: FastifyRegister<FastifyInstance<RawServer, RawRequest, RawReply, Logger,
182
+ TypeProvider> & SafePromiseLike<undefined>>;
178
183
 
179
184
  routing(req: RawRequest, res: RawReply): void;
180
185
 
@@ -182,7 +187,8 @@ export interface FastifyInstance<
182
187
  RouteGeneric extends RouteGenericInterface = RouteGenericInterface,
183
188
  ContextConfig = ContextConfigDefault,
184
189
  const SchemaCompiler extends FastifySchema = FastifySchema
185
- >(opts: RouteOptions<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
190
+ >(opts: RouteOptions<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider,
191
+ Logger>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
186
192
 
187
193
  delete: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
188
194
  get: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
@@ -202,6 +208,7 @@ export interface FastifyInstance<
202
208
  trace: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
203
209
  report: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
204
210
  search: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
211
+ query: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
205
212
  all: RouteShorthandMethod<RawServer, RawRequest, RawReply, TypeProvider, Logger>;
206
213
 
207
214
  hasRoute<
@@ -229,10 +236,15 @@ export interface FastifyInstance<
229
236
  ContextConfig = ContextConfigDefault,
230
237
  SchemaCompiler extends FastifySchema = FastifySchema,
231
238
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
232
- Fn extends onRequestHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | onRequestAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onRequestHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
239
+ Fn extends onRequestHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
240
+ TypeProvider, Logger> | onRequestAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
241
+ SchemaCompiler, TypeProvider, Logger> = onRequestHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
242
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
233
243
  >(
234
244
  name: 'onRequest',
235
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onRequestAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onRequestHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
245
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onRequestAsyncHookHandler<RawServer, RawRequest, RawReply,
246
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onRequestHookHandler<RawServer, RawRequest,
247
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
236
248
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
237
249
 
238
250
  /**
@@ -244,10 +256,15 @@ export interface FastifyInstance<
244
256
  ContextConfig = ContextConfigDefault,
245
257
  SchemaCompiler extends FastifySchema = FastifySchema,
246
258
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
247
- Fn extends preParsingHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | preParsingAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = preParsingHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
259
+ Fn extends preParsingHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
260
+ TypeProvider, Logger> | preParsingAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
261
+ SchemaCompiler, TypeProvider, Logger> = preParsingHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
262
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
248
263
  >(
249
264
  name: 'preParsing',
250
- hook: Fn extends unknown ? Fn extends AsyncFunction ? preParsingAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preParsingHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
265
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? preParsingAsyncHookHandler<RawServer, RawRequest, RawReply,
266
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preParsingHookHandler<RawServer, RawRequest,
267
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
251
268
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
252
269
 
253
270
  /**
@@ -258,10 +275,15 @@ export interface FastifyInstance<
258
275
  ContextConfig = ContextConfigDefault,
259
276
  SchemaCompiler extends FastifySchema = FastifySchema,
260
277
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
261
- Fn extends preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
278
+ Fn extends preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
279
+ TypeProvider, Logger> | preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
280
+ ContextConfig, SchemaCompiler, TypeProvider, Logger> = preValidationHookHandler<RawServer, RawRequest, RawReply,
281
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
262
282
  >(
263
283
  name: 'preValidation',
264
- hook: Fn extends unknown ? Fn extends AsyncFunction ? preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
284
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? preValidationAsyncHookHandler<RawServer, RawRequest, RawReply,
285
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preValidationHookHandler<RawServer,
286
+ RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
265
287
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
266
288
 
267
289
  /**
@@ -272,10 +294,15 @@ export interface FastifyInstance<
272
294
  ContextConfig = ContextConfigDefault,
273
295
  SchemaCompiler extends FastifySchema = FastifySchema,
274
296
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
275
- Fn extends preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
297
+ Fn extends preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
298
+ TypeProvider, Logger> | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
299
+ SchemaCompiler, TypeProvider, Logger> = preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
300
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
276
301
  >(
277
302
  name: 'preHandler',
278
- hook: Fn extends unknown ? Fn extends AsyncFunction ? preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
303
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply,
304
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preHandlerHookHandler<RawServer, RawRequest,
305
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
279
306
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
280
307
 
281
308
  /**
@@ -288,10 +315,17 @@ export interface FastifyInstance<
288
315
  ContextConfig = ContextConfigDefault,
289
316
  SchemaCompiler extends FastifySchema = FastifySchema,
290
317
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
291
- Fn extends preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | preSerializationAsyncHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
318
+ Fn extends preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric,
319
+ ContextConfig, SchemaCompiler, TypeProvider, Logger> | preSerializationAsyncHookHandler<PreSerializationPayload,
320
+ RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider,
321
+ Logger> = preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric,
322
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
292
323
  >(
293
324
  name: 'preSerialization',
294
- hook: Fn extends unknown ? Fn extends AsyncFunction ? preSerializationAsyncHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
325
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? preSerializationAsyncHookHandler<PreSerializationPayload,
326
+ RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider,
327
+ Logger> : preSerializationHookHandler<PreSerializationPayload, RawServer, RawRequest, RawReply, RouteGeneric,
328
+ ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
295
329
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
296
330
 
297
331
  /**
@@ -304,10 +338,15 @@ export interface FastifyInstance<
304
338
  ContextConfig = ContextConfigDefault,
305
339
  SchemaCompiler extends FastifySchema = FastifySchema,
306
340
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
307
- Fn extends onSendHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | onSendAsyncHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onSendHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
341
+ Fn extends onSendHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
342
+ SchemaCompiler, TypeProvider, Logger> | onSendAsyncHookHandler<OnSendPayload, RawServer, RawRequest, RawReply,
343
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onSendHookHandler<OnSendPayload, RawServer,
344
+ RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
308
345
  >(
309
346
  name: 'onSend',
310
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onSendAsyncHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onSendHookHandler<OnSendPayload, RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
347
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onSendAsyncHookHandler<OnSendPayload, RawServer, RawRequest,
348
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onSendHookHandler<OnSendPayload,
349
+ RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
311
350
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
312
351
 
313
352
  /**
@@ -319,10 +358,15 @@ export interface FastifyInstance<
319
358
  ContextConfig = ContextConfigDefault,
320
359
  SchemaCompiler extends FastifySchema = FastifySchema,
321
360
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
322
- Fn extends onResponseHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | onResponseAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onResponseHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
361
+ Fn extends onResponseHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
362
+ TypeProvider, Logger> | onResponseAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
363
+ SchemaCompiler, TypeProvider, Logger> = onResponseHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
364
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
323
365
  >(
324
366
  name: 'onResponse',
325
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onResponseAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onResponseHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
367
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onResponseAsyncHookHandler<RawServer, RawRequest, RawReply,
368
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onResponseHookHandler<RawServer, RawRequest,
369
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
326
370
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
327
371
 
328
372
  /**
@@ -334,10 +378,15 @@ export interface FastifyInstance<
334
378
  ContextConfig = ContextConfigDefault,
335
379
  SchemaCompiler extends FastifySchema = FastifySchema,
336
380
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
337
- Fn extends onTimeoutHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | onTimeoutAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onTimeoutHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
381
+ Fn extends onTimeoutHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
382
+ TypeProvider, Logger> | onTimeoutAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
383
+ SchemaCompiler, TypeProvider, Logger> = onTimeoutHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
384
+ ContextConfig, SchemaCompiler, TypeProvider, Logger>
338
385
  >(
339
386
  name: 'onTimeout',
340
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onTimeoutAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onTimeoutHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
387
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onTimeoutAsyncHookHandler<RawServer, RawRequest, RawReply,
388
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onTimeoutHookHandler<RawServer, RawRequest,
389
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
341
390
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
342
391
 
343
392
  /**
@@ -350,10 +399,16 @@ export interface FastifyInstance<
350
399
  ContextConfig = ContextConfigDefault,
351
400
  SchemaCompiler extends FastifySchema = FastifySchema,
352
401
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
353
- Fn extends onRequestAbortHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> | onRequestAbortAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> = onRequestAbortHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
402
+ Fn extends onRequestAbortHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
403
+ TypeProvider, Logger> | onRequestAbortAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
404
+ ContextConfig, SchemaCompiler, TypeProvider, Logger> = onRequestAbortHookHandler<RawServer, RawRequest, RawReply,
405
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
354
406
  >(
355
407
  name: 'onRequestAbort',
356
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onRequestAbortAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : onRequestAbortHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger> : Fn,
408
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onRequestAbortAsyncHookHandler<RawServer, RawRequest,
409
+ RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider,
410
+ Logger> : onRequestAbortHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
411
+ TypeProvider, Logger> : Fn,
357
412
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
358
413
 
359
414
  /**
@@ -367,10 +422,15 @@ export interface FastifyInstance<
367
422
  ContextConfig = ContextConfigDefault,
368
423
  SchemaCompiler extends FastifySchema = FastifySchema,
369
424
  Logger extends FastifyBaseLogger = FastifyBaseLogger,
370
- Fn extends onErrorHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> | onErrorAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> = onErrorHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger>
425
+ Fn extends onErrorHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError,
426
+ SchemaCompiler, TypeProvider, Logger> | onErrorAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
427
+ ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> = onErrorHookHandler<RawServer, RawRequest,
428
+ RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger>
371
429
  >(
372
430
  name: 'onError',
373
- hook: Fn extends unknown ? Fn extends AsyncFunction ? onErrorAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> : onErrorHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> : Fn,
431
+ hook: Fn extends unknown ? Fn extends AsyncFunction ? onErrorAsyncHookHandler<RawServer, RawRequest, RawReply,
432
+ RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> : onErrorHookHandler<RawServer,
433
+ RawRequest, RawReply, RouteGeneric, ContextConfig, FastifyError, SchemaCompiler, TypeProvider, Logger> : Fn,
374
434
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
375
435
 
376
436
  // Application addHooks
@@ -385,7 +445,8 @@ export interface FastifyInstance<
385
445
  Logger extends FastifyBaseLogger = FastifyBaseLogger
386
446
  >(
387
447
  name: 'onRoute',
388
- hook: onRouteHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
448
+ hook: onRouteHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider,
449
+ Logger>
389
450
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
390
451
 
391
452
  /**
@@ -412,7 +473,10 @@ export interface FastifyInstance<
412
473
  * Triggered when fastify.listen() is invoked to start the server. It is useful when plugins need a "onListen" event, for example to run logics after the server start listening for requests.
413
474
  */
414
475
  addHook<
415
- Fn extends onListenHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider> | onListenAsyncHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider> = onListenHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider>
476
+ Fn extends
477
+ onListenHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider>
478
+ | onListenAsyncHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider>
479
+ = onListenHookHandler<RawServer, RawRequest, RawReply, Logger, TypeProvider>
416
480
  >(
417
481
  name: 'onListen',
418
482
  hook: Fn extends unknown ? Fn extends AsyncFunction ? onListenAsyncHookHandler : onListenHookHandler : Fn,
@@ -441,7 +505,7 @@ export interface FastifyInstance<
441
505
  addHook<
442
506
  K extends ApplicationHook | LifecycleHook,
443
507
  Fn extends (...args: any) => Promise<any> | any
444
- > (
508
+ >(
445
509
  name: K,
446
510
  hook: Fn extends unknown ? Fn extends AsyncFunction ? HookAsyncLookup<K> : HookLookup<K> : Fn
447
511
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
@@ -449,16 +513,36 @@ export interface FastifyInstance<
449
513
  /**
450
514
  * Set the 404 handler
451
515
  */
452
- setNotFoundHandler<RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig extends ContextConfigDefault = ContextConfigDefault, TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, SchemaCompiler extends FastifySchema = FastifySchema> (
453
- handler: RouteHandlerMethod<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
516
+ setNotFoundHandler<
517
+ RouteGeneric extends RouteGenericInterface = RouteGenericInterface,
518
+ ContextConfig extends ContextConfigDefault = ContextConfigDefault,
519
+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault,
520
+ SchemaCompiler extends FastifySchema = FastifySchema
521
+ >(
522
+ handler: RouteHandlerMethod<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
523
+ TypeProvider, Logger>
454
524
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
455
525
 
456
- setNotFoundHandler<RouteGeneric extends RouteGenericInterface = RouteGenericInterface, ContextConfig extends ContextConfigDefault = ContextConfigDefault, TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault, SchemaCompiler extends FastifySchema = FastifySchema> (
526
+ setNotFoundHandler<
527
+ RouteGeneric extends RouteGenericInterface = RouteGenericInterface,
528
+ ContextConfig extends ContextConfigDefault = ContextConfigDefault,
529
+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault,
530
+ SchemaCompiler extends FastifySchema = FastifySchema
531
+ >(
457
532
  opts: {
458
- preValidation?: preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider> | preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider> | preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[] | preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[];
459
- preHandler?: preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider> | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider> | preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[] | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[];
533
+ preValidation?: preValidationHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
534
+ SchemaCompiler, TypeProvider> | preValidationAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
535
+ ContextConfig, SchemaCompiler, TypeProvider> | preValidationHookHandler<RawServer, RawRequest, RawReply,
536
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[] | preValidationAsyncHookHandler<RawServer,
537
+ RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[];
538
+ preHandler?: preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
539
+ TypeProvider> | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig,
540
+ SchemaCompiler, TypeProvider> | preHandlerHookHandler<RawServer, RawRequest, RawReply, RouteGeneric,
541
+ ContextConfig, SchemaCompiler, TypeProvider>[] | preHandlerAsyncHookHandler<RawServer, RawRequest, RawReply,
542
+ RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider>[];
460
543
  },
461
- handler: RouteHandlerMethod<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler, TypeProvider, Logger>
544
+ handler: RouteHandlerMethod<RawServer, RawRequest, RawReply, RouteGeneric, ContextConfig, SchemaCompiler,
545
+ TypeProvider, Logger>
462
546
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>
463
547
 
464
548
  /**
@@ -469,14 +553,26 @@ export interface FastifyInstance<
469
553
  /**
470
554
  * Set a function that will be invoked whenever an exception is thrown during the request lifecycle.
471
555
  */
472
- setErrorHandler<TError = unknown, RouteGeneric extends RouteGenericInterface = RouteGenericInterface, SchemaCompiler extends FastifySchema = FastifySchema, TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault>(
473
- handler: (this: FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>, error: TError, request: FastifyRequest<RouteGeneric, RawServer, RawRequest, SchemaCompiler, TypeProvider>, reply: FastifyReply<RouteGeneric, RawServer, RawRequest, RawReply, ContextConfigDefault, SchemaCompiler, TypeProvider>) => any | Promise<any>
556
+ setErrorHandler<
557
+ TError = unknown,
558
+ RouteGeneric extends RouteGenericInterface = RouteGenericInterface,
559
+ SchemaCompiler extends FastifySchema = FastifySchema,
560
+ TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault
561
+ >(
562
+ handler: (
563
+ this: FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>,
564
+ error: TError,
565
+ request: FastifyRequest<RouteGeneric, RawServer, RawRequest, SchemaCompiler, TypeProvider>,
566
+ reply: FastifyReply<RouteGeneric, RawServer, RawRequest, RawReply, ContextConfigDefault, SchemaCompiler,
567
+ TypeProvider>
568
+ ) => any | Promise<any>
474
569
  ): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
475
570
 
476
571
  /**
477
572
  * Set a function that will generate a request-ids
478
573
  */
479
- setGenReqId(fn: (req: RawRequestDefaultExpression<RawServer>) => string): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
574
+ setGenReqId(fn: (req: RawRequestDefaultExpression<RawServer>) => string): FastifyInstance<RawServer, RawRequest,
575
+ RawReply, Logger, TypeProvider>;
480
576
 
481
577
  /**
482
578
  * Hook function that is called when creating a child logger instance for each request
@@ -502,7 +598,8 @@ export interface FastifyInstance<
502
598
  * }
503
599
  * ```
504
600
  */
505
- setChildLoggerFactory(factory: FastifyChildLoggerFactory<RawServer, RawRequest, RawReply, Logger, TypeProvider>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
601
+ setChildLoggerFactory(factory: FastifyChildLoggerFactory<RawServer, RawRequest, RawReply, Logger,
602
+ TypeProvider>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
506
603
 
507
604
  /**
508
605
  * Fastify schema validator for all routes.
@@ -512,7 +609,8 @@ export interface FastifyInstance<
512
609
  /**
513
610
  * Set the schema validator for all routes.
514
611
  */
515
- setValidatorCompiler<T = FastifySchema>(schemaCompiler: FastifySchemaCompiler<T>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
612
+ setValidatorCompiler<T = FastifySchema>(schemaCompiler: FastifySchemaCompiler<T>): FastifyInstance<RawServer,
613
+ RawRequest, RawReply, Logger, TypeProvider>;
516
614
 
517
615
  /**
518
616
  * Fastify schema serializer for all routes.
@@ -522,22 +620,26 @@ export interface FastifyInstance<
522
620
  /**
523
621
  * Set the schema serializer for all routes.
524
622
  */
525
- setSerializerCompiler<T = FastifySchema>(schemaCompiler: FastifySerializerCompiler<T>): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
623
+ setSerializerCompiler<T = FastifySchema>(schemaCompiler: FastifySerializerCompiler<T>): FastifyInstance<RawServer,
624
+ RawRequest, RawReply, Logger, TypeProvider>;
526
625
 
527
626
  /**
528
627
  * Set the schema controller for all routes.
529
628
  */
530
- setSchemaController(schemaControllerOpts: FastifySchemaControllerOptions): FastifyInstance<RawServer, RawRequest, RawReply, Logger>;
629
+ setSchemaController(schemaControllerOpts: FastifySchemaControllerOptions): FastifyInstance<RawServer, RawRequest,
630
+ RawReply, Logger>;
531
631
 
532
632
  /**
533
633
  * Set the reply serializer for all routes.
534
634
  */
535
- setReplySerializer(replySerializer: (payload: unknown, statusCode: number) => string): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
635
+ setReplySerializer(replySerializer: (payload: unknown, statusCode: number) => string): FastifyInstance<RawServer,
636
+ RawRequest, RawReply, Logger, TypeProvider>;
536
637
 
537
638
  /*
538
639
  * Set the schema error formatter for all routes.
539
640
  */
540
- setSchemaErrorFormatter(errorFormatter: SchemaErrorFormatter): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
641
+ setSchemaErrorFormatter(errorFormatter: SchemaErrorFormatter): FastifyInstance<RawServer, RawRequest, RawReply,
642
+ Logger, TypeProvider>;
541
643
  /**
542
644
  * Add a content type parser
543
645
  */
@@ -561,7 +663,8 @@ export interface FastifyInstance<
561
663
  * Methods defined by default include `GET`, `HEAD`, `TRACE`, `DELETE`,
562
664
  * `OPTIONS`, `PATCH`, `PUT` and `POST`
563
665
  */
564
- addHttpMethod(method: string, methodOptions?: { hasBody: boolean }): FastifyInstance<RawServer, RawRequest, RawReply, Logger, TypeProvider>;
666
+ addHttpMethod(method: string, methodOptions?: { hasBody: boolean }): FastifyInstance<RawServer, RawRequest, RawReply,
667
+ Logger, TypeProvider>;
565
668
  /**
566
669
  * Fastify default JSON parser
567
670
  */
@@ -595,12 +698,14 @@ export interface FastifyInstance<
595
698
  https?: boolean | Readonly<{ allowHTTP1: boolean }>,
596
699
  ignoreTrailingSlash?: boolean,
597
700
  ignoreDuplicateSlashes?: boolean,
701
+ /** @deprecated Use the `logController` option with `disableRequestLogging` or `isLogDisabled` override instead. Will be removed in `fastify@6`. */
598
702
  disableRequestLogging?: boolean | ((req: FastifyRequest) => boolean),
599
703
  maxParamLength?: number,
600
704
  onProtoPoisoning?: ProtoAction,
601
705
  onConstructorPoisoning?: ConstructorAction,
602
706
  pluginTimeout?: number,
603
707
  requestIdHeader?: string | false,
708
+ /** @deprecated Use the `logController` option with `requestIdLogLabel` instead. Will be removed in `fastify@6`. */
604
709
  requestIdLogLabel?: string,
605
710
  http2SessionTimeout?: number,
606
711
  useSemicolonDelimiter?: boolean,
package/types/logger.d.ts CHANGED
@@ -52,8 +52,36 @@ export type ResSerializerReply<
52
52
  */
53
53
  export interface FastifyLoggerOptions<
54
54
  RawServer extends RawServerBase = RawServerDefault,
55
- RawRequest extends FastifyRequest<RouteGenericInterface, RawServer, RawRequestDefaultExpression<RawServer>, FastifySchema, FastifyTypeProvider> = FastifyRequest<RouteGenericInterface, RawServer, RawRequestDefaultExpression<RawServer>, FastifySchema, FastifyTypeProviderDefault>,
56
- RawReply extends FastifyReply<RouteGenericInterface, RawServer, RawRequestDefaultExpression<RawServer>, RawReplyDefaultExpression<RawServer>, ContextConfigDefault, FastifySchema, FastifyTypeProvider> = FastifyReply<RouteGenericInterface, RawServer, RawRequestDefaultExpression<RawServer>, RawReplyDefaultExpression<RawServer>, ContextConfigDefault, FastifySchema, FastifyTypeProviderDefault>
55
+ RawRequest extends FastifyRequest<
56
+ RouteGenericInterface,
57
+ RawServer,
58
+ RawRequestDefaultExpression<RawServer>,
59
+ FastifySchema,
60
+ FastifyTypeProvider
61
+ > = FastifyRequest<
62
+ RouteGenericInterface,
63
+ RawServer,
64
+ RawRequestDefaultExpression<RawServer>,
65
+ FastifySchema,
66
+ FastifyTypeProviderDefault
67
+ >,
68
+ RawReply extends FastifyReply<
69
+ RouteGenericInterface,
70
+ RawServer,
71
+ RawRequestDefaultExpression<RawServer>,
72
+ RawReplyDefaultExpression<RawServer>,
73
+ ContextConfigDefault,
74
+ FastifySchema,
75
+ FastifyTypeProvider
76
+ > = FastifyReply<
77
+ RouteGenericInterface,
78
+ RawServer,
79
+ RawRequestDefaultExpression<RawServer>,
80
+ RawReplyDefaultExpression<RawServer>,
81
+ ContextConfigDefault,
82
+ FastifySchema,
83
+ FastifyTypeProviderDefault
84
+ >
57
85
  > {
58
86
  serializers?: {
59
87
  req?: (req: RawRequest) => {
@@ -82,6 +110,33 @@ export interface FastifyLoggerOptions<
82
110
  stream?: FastifyLoggerStreamDestination;
83
111
  }
84
112
 
113
+ export interface LogControllerOptions {
114
+ disableRequestLogging?: boolean | ((req: FastifyRequest) => boolean)
115
+ requestIdLogLabel?: string
116
+ }
117
+
118
+ export declare class LogController {
119
+ disableRequestLogging: boolean | ((req: FastifyRequest) => boolean)
120
+ requestIdLogLabel: string
121
+
122
+ constructor (options?: LogControllerOptions)
123
+
124
+ isLogDisabled (request: FastifyRequest): boolean
125
+ incomingRequest (request: FastifyRequest, reply: FastifyReply, metadata?: Record<string, unknown>): void
126
+ requestCompleted (
127
+ error: Error | null,
128
+ request: FastifyRequest,
129
+ reply: FastifyReply,
130
+ metadata?: Record<string, unknown>
131
+ ): void
132
+ defaultErrorLog (error: Error, request: FastifyRequest, reply: FastifyReply, metadata?: Record<string, unknown>): void
133
+ streamError (error: Error, request: FastifyRequest, reply: FastifyReply, metadata?: Record<string, unknown>): void
134
+ routeNotFound (request: FastifyRequest, reply: FastifyReply, metadata?: Record<string, unknown>): void
135
+ writeHeadError (error: Error, request: FastifyRequest, reply: FastifyReply, metadata?: Record<string, unknown>): void
136
+ serializerError (error: Error, request: FastifyRequest, reply: FastifyReply, metadata: { statusCode: number }): void
137
+ serviceUnavailable (logger: FastifyBaseLogger, server: FastifyInstance): void
138
+ }
139
+
85
140
  export interface FastifyChildLoggerFactory<
86
141
  RawServer extends RawServerBase = RawServerDefault,
87
142
  RawRequest extends RawRequestDefaultExpression<RawServer> = RawRequestDefaultExpression<RawServer>,
package/types/plugin.d.ts CHANGED
@@ -16,7 +16,8 @@ export type FastifyPluginCallback<
16
16
  TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault,
17
17
  Logger extends FastifyBaseLogger = FastifyBaseLogger
18
18
  > = (
19
- instance: FastifyInstance<Server, RawRequestDefaultExpression<Server>, RawReplyDefaultExpression<Server>, Logger, TypeProvider>,
19
+ instance: FastifyInstance<Server, RawRequestDefaultExpression<Server>, RawReplyDefaultExpression<Server>, Logger,
20
+ TypeProvider>,
20
21
  opts: Options,
21
22
  done: (err?: Error) => void
22
23
  ) => void
@@ -32,7 +33,8 @@ export type FastifyPluginAsync<
32
33
  TypeProvider extends FastifyTypeProvider = FastifyTypeProviderDefault,
33
34
  Logger extends FastifyBaseLogger = FastifyBaseLogger
34
35
  > = (
35
- instance: FastifyInstance<Server, RawRequestDefaultExpression<Server>, RawReplyDefaultExpression<Server>, Logger, TypeProvider>,
36
+ instance: FastifyInstance<Server, RawRequestDefaultExpression<Server>, RawReplyDefaultExpression<Server>, Logger,
37
+ TypeProvider>,
36
38
  opts: Options
37
39
  ) => Promise<void>
38
40
 
@@ -41,4 +43,6 @@ export type FastifyPluginAsync<
41
43
  * @deprecated union type doesn't work well with type inference in TS and is therefore deprecated in favor of explicit types. Use `FastifyPluginCallback` or `FastifyPluginAsync` instead. To activate
42
44
  * plugins use `FastifyRegister`. https://fastify.dev/docs/latest/Reference/TypeScript/#register
43
45
  */
44
- export type FastifyPlugin<Options extends FastifyPluginOptions = Record<never, never>> = FastifyPluginCallback<Options> | FastifyPluginAsync<Options>
46
+ export type FastifyPlugin<
47
+ Options extends FastifyPluginOptions = Record<never, never>
48
+ > = FastifyPluginCallback<Options> | FastifyPluginAsync<Options>
@@ -10,33 +10,76 @@ export interface RegisterOptions {
10
10
  logSerializers?: Record<string, (value: any) => string>;
11
11
  }
12
12
 
13
- export type FastifyRegisterOptions<Options> = (RegisterOptions & Options) | ((instance: FastifyInstance) => RegisterOptions & Options)
13
+ export type FastifyRegisterOptions<Options> = (RegisterOptions & Options)
14
+ | ((instance: FastifyInstance) => RegisterOptions & Options)
14
15
 
15
16
  /**
16
17
  * FastifyRegister
17
18
  *
18
19
  * Function for adding a plugin to fastify. The options are inferred from the passed in FastifyPlugin parameter.
19
20
  */
20
- export interface FastifyRegister<T = void, RawServer extends RawServerBase = RawServerDefault, TypeProviderDefault extends FastifyTypeProvider = FastifyTypeProvider, LoggerDefault extends FastifyBaseLogger = FastifyBaseLogger> {
21
- <Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
21
+ export interface FastifyRegister<
22
+ T = void,
23
+ RawServer extends RawServerBase = RawServerDefault,
24
+ TypeProviderDefault extends FastifyTypeProvider = FastifyTypeProvider,
25
+ LoggerDefault extends FastifyBaseLogger = FastifyBaseLogger
26
+ > {
27
+ <
28
+ Server extends RawServerBase = RawServer,
29
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
30
+ Logger extends FastifyBaseLogger = LoggerDefault
31
+ >(
22
32
  plugin: FastifyPluginCallback<FastifyPluginOptions, Server, TypeProvider, Logger>
23
33
  ): T;
24
- <Options extends FastifyPluginOptions, Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
34
+ <
35
+ Options extends FastifyPluginOptions,
36
+ Server extends RawServerBase = RawServer,
37
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
38
+ Logger extends FastifyBaseLogger = LoggerDefault
39
+ >(
25
40
  plugin: FastifyPluginCallback<Options, Server, TypeProvider, Logger>,
26
41
  opts: FastifyRegisterOptions<Options>
27
42
  ): T;
28
- <Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
43
+ <
44
+ Server extends RawServerBase = RawServer,
45
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
46
+ Logger extends FastifyBaseLogger = LoggerDefault
47
+ >(
29
48
  plugin: FastifyPluginAsync<FastifyPluginOptions, Server, TypeProvider, Logger>
30
49
  ): T;
31
- <Options extends FastifyPluginOptions, Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
50
+ <
51
+ Options extends FastifyPluginOptions,
52
+ Server extends RawServerBase = RawServer,
53
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
54
+ Logger extends FastifyBaseLogger = LoggerDefault
55
+ >(
32
56
  plugin: FastifyPluginAsync<Options, Server, TypeProvider, Logger>,
33
57
  opts: FastifyRegisterOptions<Options>
34
58
  ): T;
35
- <Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
36
- plugin: FastifyPluginCallback<FastifyPluginOptions, Server, TypeProvider, Logger> | FastifyPluginAsync<FastifyPluginOptions, Server, TypeProvider, Logger> | Promise<{ default: FastifyPluginCallback<FastifyPluginOptions, Server, TypeProvider, Logger> }> | Promise<{ default: FastifyPluginAsync<FastifyPluginOptions, Server, TypeProvider, Logger> }>,
59
+ <
60
+ Server extends RawServerBase = RawServer,
61
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
62
+ Logger extends FastifyBaseLogger = LoggerDefault
63
+ >(
64
+ plugin:
65
+ FastifyPluginCallback<FastifyPluginOptions, Server, TypeProvider, Logger>
66
+ | FastifyPluginAsync<FastifyPluginOptions, Server, TypeProvider, Logger>
67
+ | Promise<{
68
+ default: FastifyPluginCallback<FastifyPluginOptions, Server, TypeProvider, Logger>
69
+ }>
70
+ | Promise<{ default: FastifyPluginAsync<FastifyPluginOptions, Server, TypeProvider, Logger> }>,
37
71
  ): T;
38
- <Options extends FastifyPluginOptions, Server extends RawServerBase = RawServer, TypeProvider extends FastifyTypeProvider = TypeProviderDefault, Logger extends FastifyBaseLogger = LoggerDefault>(
39
- plugin: FastifyPluginCallback<Options, Server, TypeProvider, Logger> | FastifyPluginAsync<Options, Server, TypeProvider, Logger> | Promise<{ default: FastifyPluginCallback<Options, Server, TypeProvider, Logger> }> | Promise<{ default: FastifyPluginAsync<Options, Server, TypeProvider, Logger> }>,
72
+ <
73
+ Options extends FastifyPluginOptions,
74
+ Server extends RawServerBase = RawServer,
75
+ TypeProvider extends FastifyTypeProvider = TypeProviderDefault,
76
+ Logger extends FastifyBaseLogger = LoggerDefault
77
+ >(
78
+ plugin:
79
+ FastifyPluginCallback<Options, Server, TypeProvider, Logger>
80
+ | FastifyPluginAsync<Options, Server, TypeProvider, Logger>
81
+ | Promise<{ default: FastifyPluginCallback<Options, Server, TypeProvider, Logger> }>
82
+ | Promise<{ default: FastifyPluginAsync<Options, Server, TypeProvider, Logger> }>,
40
83
  opts: FastifyRegisterOptions<Options>
41
84
  ): T;
42
85
  }