fastify 4.28.0 → 5.0.0-alpha.2

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 (328) hide show
  1. package/.markdownlint-cli2.yaml +1 -1
  2. package/.tap/processinfo/{86b9786f-4a98-43b8-882a-5f936b876f08.json → 09002e93-10ad-430c-bc86-c0576928b0ed.json} +60 -60
  3. package/.tap/processinfo/{70168912-9bb2-4334-bb89-041f1764cddf.json → ee66c5ab-635d-48b5-8be6-3dc3ceea5bfc.json} +71 -71
  4. package/.tap/test-results/test/build/error-serializer.test.js.tap +6 -2
  5. package/.tap/test-results/test/build/version.test.js.tap +1 -1
  6. package/.taprc +4 -8
  7. package/README.md +3 -6
  8. package/build/build-error-serializer.js +4 -1
  9. package/build/build-validation.js +5 -4
  10. package/docs/Guides/Database.md +1 -1
  11. package/docs/Guides/Delay-Accepting-Requests.md +3 -3
  12. package/docs/Guides/Ecosystem.md +2 -0
  13. package/docs/Guides/Migration-Guide-V5.md +20 -0
  14. package/docs/Guides/Write-Type-Provider.md +4 -2
  15. package/docs/Reference/ContentTypeParser.md +30 -1
  16. package/docs/Reference/Decorators.md +42 -16
  17. package/docs/Reference/Errors.md +10 -2
  18. package/docs/Reference/Hooks.md +48 -14
  19. package/docs/Reference/Logging.md +5 -5
  20. package/docs/Reference/Reply.md +23 -18
  21. package/docs/Reference/Request.md +5 -1
  22. package/docs/Reference/Routes.md +24 -28
  23. package/docs/Reference/Server.md +14 -53
  24. package/docs/Reference/Type-Providers.md +21 -26
  25. package/docs/Reference/TypeScript.md +46 -29
  26. package/docs/Reference/Warnings.md +0 -8
  27. package/eslint.config.js +27 -0
  28. package/examples/typescript-server.ts +14 -14
  29. package/fastify.d.ts +15 -14
  30. package/fastify.js +41 -15
  31. package/lib/configValidator.js +94 -76
  32. package/lib/contentTypeParser.js +54 -88
  33. package/lib/decorate.js +3 -7
  34. package/lib/error-serializer.js +2 -1
  35. package/lib/errors.js +31 -6
  36. package/lib/handleRequest.js +70 -39
  37. package/lib/httpMethods.js +34 -18
  38. package/lib/logger.js +24 -6
  39. package/lib/pluginUtils.js +5 -5
  40. package/lib/reply.js +7 -10
  41. package/lib/request.js +37 -19
  42. package/lib/route.js +6 -34
  43. package/lib/server.js +62 -123
  44. package/lib/warnings.js +24 -29
  45. package/lib/wrapThenable.js +46 -22
  46. package/package.json +38 -58
  47. package/test/404s.test.js +8 -12
  48. package/test/async-await.test.js +46 -2
  49. package/test/build/error-serializer.test.js +4 -2
  50. package/test/check.test.js +225 -0
  51. package/test/close-pipelining.test.js +2 -41
  52. package/test/close.test.js +1 -41
  53. package/test/content-parser.test.js +69 -117
  54. package/test/custom-parser.1.test.js +40 -1
  55. package/test/decorator-namespace.test._js_ +31 -0
  56. package/test/decorator.test.js +92 -43
  57. package/test/delete.test.js +21 -1
  58. package/test/diagnostics-channel/404.test.js +57 -0
  59. package/test/diagnostics-channel/async-delay-request.test.js +74 -0
  60. package/test/diagnostics-channel/async-request.test.js +72 -0
  61. package/test/diagnostics-channel/error-before-handler.test.js +36 -0
  62. package/test/diagnostics-channel/error-request.test.js +61 -0
  63. package/test/diagnostics-channel/error-status.test.js +39 -0
  64. package/test/{diagnostics-channel.test.js → diagnostics-channel/init.test.js} +6 -16
  65. package/test/diagnostics-channel/sync-delay-request.test.js +58 -0
  66. package/test/diagnostics-channel/sync-request-reply.test.js +58 -0
  67. package/test/diagnostics-channel/sync-request.test.js +61 -0
  68. package/test/encapsulated-error-handler.test.js +201 -14
  69. package/test/esm/index.test.js +2 -12
  70. package/test/findRoute.test.js +16 -0
  71. package/test/genReqId.test.js +9 -0
  72. package/test/get.test.js +28 -0
  73. package/test/has-route.test.js +1 -1
  74. package/test/helper.js +1 -5
  75. package/test/hooks.test.js +0 -4
  76. package/test/http2/constraint.test.js +22 -1
  77. package/test/http2/plain.test.js +21 -6
  78. package/test/http2/secure.test.js +12 -1
  79. package/test/https/https.test.js +57 -0
  80. package/test/inject.test.js +1 -2
  81. package/test/internals/decorator.test.js +0 -2
  82. package/test/internals/errors.test.js +57 -17
  83. package/test/internals/handleRequest.test.js +5 -1
  84. package/test/internals/initialConfig.test.js +5 -5
  85. package/test/internals/logger.test.js +31 -2
  86. package/test/internals/reply.test.js +6 -78
  87. package/test/internals/request.test.js +13 -11
  88. package/test/listen.1.test.js +5 -15
  89. package/test/listen.5.test.js +88 -0
  90. package/test/logger/instantiation.test.js +8 -8
  91. package/test/logger/logging.test.js +4 -4
  92. package/test/logger/options.test.js +102 -21
  93. package/test/logger/response.test.js +6 -6
  94. package/test/maxRequestsPerSocket.test.js +2 -5
  95. package/test/method-missing.test.js +24 -0
  96. package/test/plugin.1.test.js +2 -4
  97. package/test/plugin.2.test.js +0 -2
  98. package/test/plugin.3.test.js +0 -2
  99. package/test/plugin.4.test.js +92 -56
  100. package/test/register.test.js +2 -4
  101. package/test/reply-earlyHints.test.js +98 -0
  102. package/test/reply-error.test.js +0 -2
  103. package/test/route-hooks.test.js +0 -1
  104. package/test/route-shorthand.test.js +60 -0
  105. package/test/schema-special-usage.test.js +1 -1
  106. package/test/server.test.js +17 -2
  107. package/test/stream.2.test.js +1 -1
  108. package/test/stream.4.test.js +0 -42
  109. package/test/stream.5.test.js +2 -2
  110. package/test/trust-proxy.test.js +33 -27
  111. package/test/types/errors.test-d.ts +0 -2
  112. package/test/types/fastify.test-d.ts +14 -12
  113. package/test/types/hooks.test-d.ts +1 -0
  114. package/test/types/import.ts +1 -0
  115. package/test/types/instance.test-d.ts +10 -51
  116. package/test/types/logger.test-d.ts +43 -6
  117. package/test/types/plugin.test-d.ts +5 -2
  118. package/test/types/register.test-d.ts +2 -2
  119. package/test/types/reply.test-d.ts +13 -12
  120. package/test/types/request.test-d.ts +19 -8
  121. package/test/types/route.test-d.ts +30 -2
  122. package/test/types/schema.test-d.ts +2 -2
  123. package/test/types/serverFactory.test-d.ts +1 -1
  124. package/test/types/type-provider.test-d.ts +59 -12
  125. package/test/types/using.test-d.ts +4 -1
  126. package/test/url-rewriting.test.js +3 -2
  127. package/test/useSemicolonDelimiter.test.js +3 -6
  128. package/test/versioned-routes.test.js +1 -1
  129. package/test/web-api.test.js +0 -6
  130. package/types/content-type-parser.d.ts +3 -3
  131. package/types/context.d.ts +0 -1
  132. package/types/errors.d.ts +1 -0
  133. package/types/hooks.d.ts +6 -6
  134. package/types/instance.d.ts +28 -41
  135. package/types/logger.d.ts +3 -3
  136. package/types/plugin.d.ts +3 -3
  137. package/types/reply.d.ts +9 -12
  138. package/types/request.d.ts +5 -3
  139. package/types/route.d.ts +31 -31
  140. package/types/schema.d.ts +3 -3
  141. package/types/serverFactory.d.ts +2 -2
  142. package/types/type-provider.d.ts +22 -12
  143. package/types/utils.d.ts +18 -23
  144. package/.c8rc.json +0 -8
  145. package/.eslintrc +0 -4
  146. package/.tap/processinfo/029eb7a1-1942-40bc-98e2-cef3b7a14b5e.json +0 -268
  147. package/.tap/processinfo/03c196c6-01c3-4268-a9b5-298dff18a873.json +0 -269
  148. package/.tap/processinfo/04bbabba-8611-4908-9092-dfa9fcc13327.json +0 -268
  149. package/.tap/processinfo/05d8a743-3edf-4e2d-ae5a-dc99d0855ba5.json +0 -272
  150. package/.tap/processinfo/07718963-36a8-4d87-82ad-366c877a5247.json +0 -268
  151. package/.tap/processinfo/08fe3bde-5814-4308-9158-cdf1e47391b7.json +0 -268
  152. package/.tap/processinfo/0a3e3fb0-eabf-4532-ae80-20434da22678.json +0 -268
  153. package/.tap/processinfo/0caf2a75-4b3a-46c4-9b41-c7e450e5e15f.json +0 -268
  154. package/.tap/processinfo/0cf35d52-e5b2-4884-bcf0-b0ab3017b689.json +0 -268
  155. package/.tap/processinfo/0e666134-5013-4ecd-9ee6-59b22716c39c.json +0 -268
  156. package/.tap/processinfo/1087b811-4ec4-4f91-92b4-a78a51a437de.json +0 -268
  157. package/.tap/processinfo/13709ed3-b68c-42cf-8472-b0c4b8a89d2b.json +0 -268
  158. package/.tap/processinfo/13ac2f18-d0e0-439f-bc86-2ff0119af857.json +0 -268
  159. package/.tap/processinfo/13e47e0e-f6e8-4381-8a42-923b661f4a4f.json +0 -268
  160. package/.tap/processinfo/143f7d43-b8e8-4666-b482-f28fb37160ee.json +0 -268
  161. package/.tap/processinfo/14f3801d-03ab-4db3-9df5-c5d47e0a8cf0.json +0 -270
  162. package/.tap/processinfo/15a07dad-4bcd-442c-95e0-30c31f2b9818.json +0 -273
  163. package/.tap/processinfo/191ad3ad-04d8-4fb9-b119-ad2811f9b925.json +0 -243
  164. package/.tap/processinfo/1b25d54b-62d3-44cd-b581-31e705522fae.json +0 -268
  165. package/.tap/processinfo/1b7cb260-f04b-4135-a4fe-093081c4706f.json +0 -268
  166. package/.tap/processinfo/1e395d63-4815-4c77-aa47-df3709cc0ef9.json +0 -268
  167. package/.tap/processinfo/1e7f6a54-3abf-4771-863a-585cba110aec.json +0 -268
  168. package/.tap/processinfo/21a15e1d-0b41-47d8-b03d-0ba130969034.json +0 -244
  169. package/.tap/processinfo/21e02016-9ecd-4983-8417-9c74d224644f.json +0 -269
  170. package/.tap/processinfo/2327d941-d0d5-4762-b386-02a9a27ad28e.json +0 -268
  171. package/.tap/processinfo/23d39204-eac9-4f57-8db4-ffa996227fbd.json +0 -268
  172. package/.tap/processinfo/2493875a-0ac6-4d53-993c-f44471fd0678.json +0 -268
  173. package/.tap/processinfo/2698669f-f1e7-4a12-a687-8d58177be2b0.json +0 -269
  174. package/.tap/processinfo/2862b053-0a3d-46d7-9381-ffcb06287609.json +0 -268
  175. package/.tap/processinfo/2ac1b8d6-ac92-40e2-a59a-7681069f487c.json +0 -268
  176. package/.tap/processinfo/2c75e5f7-c4ef-47e4-a1c4-105eef6c0fab.json +0 -242
  177. package/.tap/processinfo/2e2c45cd-718b-4e5a-bf88-f801630f2803.json +0 -268
  178. package/.tap/processinfo/2f9ca478-3e03-4cce-a0bc-fcdc86d7c316.json +0 -268
  179. package/.tap/processinfo/30e3117f-fb74-456f-8f02-527e9eb9fcc3.json +0 -268
  180. package/.tap/processinfo/332be679-63c7-4b49-8b87-ef55995ada2d.json +0 -268
  181. package/.tap/processinfo/37c36f95-07f9-4ef0-8ab4-9e107d51b605.json +0 -269
  182. package/.tap/processinfo/3874eae2-f3db-44ef-9a9f-c8169d4b2b76.json +0 -268
  183. package/.tap/processinfo/38a7c3da-a411-41d0-8993-9deefd23500d.json +0 -268
  184. package/.tap/processinfo/3a7b6dbd-e153-4ce5-b557-21fb82009983.json +0 -269
  185. package/.tap/processinfo/3c6731ec-936d-470f-b7b0-0c87b54be051.json +0 -268
  186. package/.tap/processinfo/3c850ea9-4ef0-4044-a3fd-fbadfa9d543e.json +0 -268
  187. package/.tap/processinfo/3e4e15e0-a325-46f0-be57-5fd374560b7a.json +0 -269
  188. package/.tap/processinfo/3ed868e0-887c-402a-9f22-b1fdb74b4da0.json +0 -268
  189. package/.tap/processinfo/405498d7-5854-4ce1-a7dc-06920932f26d.json +0 -268
  190. package/.tap/processinfo/40b7eb19-ae35-4490-8a11-eb91a573c590.json +0 -268
  191. package/.tap/processinfo/40bb1260-d856-4248-8939-a0a05e322041.json +0 -268
  192. package/.tap/processinfo/41252e0b-7f69-44cc-b356-dd94bcbfdb29.json +0 -268
  193. package/.tap/processinfo/418fa710-e2fd-4508-b533-c179958da464.json +0 -269
  194. package/.tap/processinfo/433ef009-63aa-48fe-8e5d-c725228fa2fc.json +0 -268
  195. package/.tap/processinfo/44bf577c-9c01-4197-bd29-2e1ae888c4d4.json +0 -268
  196. package/.tap/processinfo/458fb7f2-20b9-48a2-8853-403c9851f605.json +0 -268
  197. package/.tap/processinfo/46b9892b-bb23-4b86-b0fa-9297f08c611a.json +0 -268
  198. package/.tap/processinfo/46bd9aaf-6cf3-4bd5-b90d-e136a7299a8e.json +0 -268
  199. package/.tap/processinfo/4779aa5f-e57a-4fcc-87e2-7d0bd4fca27f.json +0 -268
  200. package/.tap/processinfo/47b73f4b-ab31-49e1-97fd-8436dbe4bdf3.json +0 -269
  201. package/.tap/processinfo/49dba52e-e0c9-445d-8e9d-6d9ebe3ce6c4.json +0 -268
  202. package/.tap/processinfo/4b1dbc61-4e65-4c56-9784-2036f369038a.json +0 -268
  203. package/.tap/processinfo/4b6f0b40-43ef-4668-83a0-e07e28509df5.json +0 -268
  204. package/.tap/processinfo/4c236f70-f532-460b-8f7a-dd973301d493.json +0 -268
  205. package/.tap/processinfo/4d92b707-a268-48b8-885b-004d3a288c41.json +0 -269
  206. package/.tap/processinfo/4ff10bae-7c97-4c0a-b712-6c0d2f8c0e8e.json +0 -270
  207. package/.tap/processinfo/50f95bd5-ae12-4d83-99f4-ae9b0690c6a8.json +0 -268
  208. package/.tap/processinfo/557e4a49-d99c-4a63-b2f2-f33d897ab874.json +0 -268
  209. package/.tap/processinfo/589fd21a-8319-4abf-8cf7-82cb4a463a4b.json +0 -269
  210. package/.tap/processinfo/5a872f3a-949f-40be-8004-d739d034255c.json +0 -272
  211. package/.tap/processinfo/5abc301a-23da-424d-891e-3afbaff9156c.json +0 -269
  212. package/.tap/processinfo/5c31614c-a766-4837-ab59-dd6977166f72.json +0 -253
  213. package/.tap/processinfo/5d1e90c8-d819-4901-b022-f9ea4cd81978.json +0 -268
  214. package/.tap/processinfo/5d283e67-f31d-4fa8-a559-a1d8e82ee046.json +0 -269
  215. package/.tap/processinfo/5df505bc-6a4b-4c41-822f-51e2d7111de8.json +0 -268
  216. package/.tap/processinfo/5eaf64a2-fbfd-40e7-b391-c30f744b2bf1.json +0 -269
  217. package/.tap/processinfo/5ef5ede0-6436-4938-8401-d32ad4bffd5d.json +0 -268
  218. package/.tap/processinfo/606f05c0-8293-41db-bc92-eea82123697f.json +0 -269
  219. package/.tap/processinfo/6446806d-6cab-4c1d-a9ed-6bccaf3c4ea9.json +0 -268
  220. package/.tap/processinfo/64da7e08-925d-444d-98de-6568c6115d8d.json +0 -269
  221. package/.tap/processinfo/6917da6d-d2dc-466a-a893-7fb7412dde96.json +0 -268
  222. package/.tap/processinfo/69bbeee0-c398-4ccf-98b3-fb625a63bab4.json +0 -268
  223. package/.tap/processinfo/6da6ea8f-3370-4703-b230-90159531f766.json +0 -268
  224. package/.tap/processinfo/6ecffe1f-3016-4c11-9294-b488baced99f.json +0 -268
  225. package/.tap/processinfo/6f23f41f-ccbd-48cb-9ab6-311db0cfb65c.json +0 -270
  226. package/.tap/processinfo/713a674e-40e1-46b4-866e-949d57c1a9f9.json +0 -270
  227. package/.tap/processinfo/730254d4-eacb-4cdf-80f4-8da22341cde5.json +0 -268
  228. package/.tap/processinfo/7344e559-c546-416f-8f1b-0f9fe12c6f02.json +0 -268
  229. package/.tap/processinfo/7556217a-0155-448f-b4d4-bec1bb0f6040.json +0 -269
  230. package/.tap/processinfo/7572079c-166c-4c4c-85ff-89b9430b214f.json +0 -268
  231. package/.tap/processinfo/7808180f-1974-47cd-bba2-2d6b8b711d65.json +0 -273
  232. package/.tap/processinfo/796dde83-da66-4db2-8d27-d45a3627c9c7.json +0 -268
  233. package/.tap/processinfo/7979819f-3723-48be-9f55-be700e689441.json +0 -270
  234. package/.tap/processinfo/7a664d39-d7f5-42f9-89df-15563048fab6.json +0 -268
  235. package/.tap/processinfo/7b047b72-01d9-4217-857c-93341651b4b3.json +0 -269
  236. package/.tap/processinfo/7ce41af6-7961-45ae-8c6f-b6e1c5692a48.json +0 -268
  237. package/.tap/processinfo/7e1de1c6-127e-463d-9357-081ee33ef5ce.json +0 -269
  238. package/.tap/processinfo/81ac7a7f-b0c0-4ef6-82cb-c718ea84e152.json +0 -268
  239. package/.tap/processinfo/851a058f-a497-4b10-a0b7-c9182d9c4d5a.json +0 -268
  240. package/.tap/processinfo/86502974-c245-4194-ade4-d9c6fdbb757e.json +0 -268
  241. package/.tap/processinfo/8a3fe726-86ab-4300-8d73-7eacbbc02a05.json +0 -268
  242. package/.tap/processinfo/8adf928b-c963-4ba0-9c35-606fcbd8a2aa.json +0 -272
  243. package/.tap/processinfo/8b31a6d8-1a33-4a27-93ca-1c5b364be068.json +0 -240
  244. package/.tap/processinfo/8ec12773-6b18-49a2-8e52-874c797df965.json +0 -833
  245. package/.tap/processinfo/8edb9502-3420-42fb-a602-e5de93be2df1.json +0 -268
  246. package/.tap/processinfo/8fc572e6-9828-4f98-a49c-9e081b2193c4.json +0 -242
  247. package/.tap/processinfo/8fee2d30-c5dd-4fae-9cf2-2ef8dd0f90de.json +0 -834
  248. package/.tap/processinfo/92cc0496-5f26-4370-8212-18136b972f99.json +0 -268
  249. package/.tap/processinfo/93a3f064-3f6e-4f49-becb-f7925f2961a9.json +0 -268
  250. package/.tap/processinfo/967e3697-8310-4a19-8dd5-927ac8bd6c79.json +0 -269
  251. package/.tap/processinfo/97225e23-9d30-4287-b3f5-72bccebec50b.json +0 -268
  252. package/.tap/processinfo/9a363bc6-4e65-47e8-94ca-26a9db428fb4.json +0 -268
  253. package/.tap/processinfo/9d2fe462-57fa-43f1-b02c-d188f15de30b.json +0 -270
  254. package/.tap/processinfo/a00b6cda-feb7-4b8a-8179-4c43bc29d670.json +0 -269
  255. package/.tap/processinfo/a017cbd5-4ac7-49e1-8c77-1bf4f6e7f2a6.json +0 -271
  256. package/.tap/processinfo/a1277309-1984-48f8-b60b-f5e8639736be.json +0 -271
  257. package/.tap/processinfo/a16bf53e-4337-48ff-88fa-67f55738e0f5.json +0 -268
  258. package/.tap/processinfo/a3a9848f-440e-41bb-9b0b-568bcfee0ddc.json +0 -268
  259. package/.tap/processinfo/a468c11f-f2f1-4e92-9ba0-6d28b6569b72.json +0 -268
  260. package/.tap/processinfo/a5880465-68f1-46b3-84a5-0da389d0bc67.json +0 -268
  261. package/.tap/processinfo/a666f394-39b4-44ad-8e74-abebf74dde3b.json +0 -270
  262. package/.tap/processinfo/af09d8ca-7053-4410-b514-b22c47f5979f.json +0 -268
  263. package/.tap/processinfo/af203309-28aa-459d-a56e-d88833695521.json +0 -268
  264. package/.tap/processinfo/afa2f7b6-dcd2-4d90-bf3c-54ba8b6800eb.json +0 -268
  265. package/.tap/processinfo/b231291d-ef14-4ff0-85f9-38a73a5408f8.json +0 -268
  266. package/.tap/processinfo/b3d3f2a1-a9fc-4d88-b122-fae90248cd59.json +0 -268
  267. package/.tap/processinfo/b834bf83-26c4-403a-8e91-eb15fe4b0b5d.json +0 -268
  268. package/.tap/processinfo/b8786fd7-47df-4ac1-8d6f-2d4c7623c681.json +0 -268
  269. package/.tap/processinfo/b9758f53-7f5a-4b03-8684-8a42ad644e5a.json +0 -268
  270. package/.tap/processinfo/bd194ea2-a21a-4604-b225-ee48abf1e607.json +0 -242
  271. package/.tap/processinfo/bd7ced53-3872-43b7-ad73-3352e50b728b.json +0 -268
  272. package/.tap/processinfo/be50295b-7e50-46cd-8bf1-637bf222699c.json +0 -268
  273. package/.tap/processinfo/bec61dd9-aa52-4e6c-8e37-5c9c10e935fd.json +0 -268
  274. package/.tap/processinfo/c015adf9-1d60-447e-87b5-b2031fe55bba.json +0 -268
  275. package/.tap/processinfo/c0666afa-7f64-45bd-97fb-145df1380157.json +0 -268
  276. package/.tap/processinfo/c2c0c012-c1c0-4457-84d6-dadba8396c94.json +0 -268
  277. package/.tap/processinfo/c3dd3ecd-737b-47ce-a917-54341c7bbed3.json +0 -268
  278. package/.tap/processinfo/c41ac06d-64b8-4bb3-bf56-0551f5a48f4b.json +0 -268
  279. package/.tap/processinfo/c4235bfb-a2aa-4271-9c6b-3ceb370219b1.json +0 -268
  280. package/.tap/processinfo/c4e6f24f-288c-493c-b6f0-02924aeb6758.json +0 -270
  281. package/.tap/processinfo/c54227bb-4a7b-40bb-bfe6-b54fe55078f3.json +0 -268
  282. package/.tap/processinfo/c699de91-3b0b-4466-9418-6910a3eb640a.json +0 -269
  283. package/.tap/processinfo/c74e2f37-451a-4577-ac18-e597fbd9a1d4.json +0 -269
  284. package/.tap/processinfo/c90cccec-5b4b-445f-a935-ac22859675d0.json +0 -252
  285. package/.tap/processinfo/c9dd6c7d-0d16-45e5-87ae-117388bf2994.json +0 -268
  286. package/.tap/processinfo/ca2e48fb-58c5-47fc-ad2e-263838aea42c.json +0 -272
  287. package/.tap/processinfo/ca87351d-c710-45c1-838a-16bccac59874.json +0 -273
  288. package/.tap/processinfo/cdb4a671-5776-4944-91b9-c456c58841ef.json +0 -268
  289. package/.tap/processinfo/cf10fdc8-6a87-447a-9e12-45f447af61f3.json +0 -244
  290. package/.tap/processinfo/cf3f1f08-643e-4f24-82ca-40f7a349c3d1.json +0 -268
  291. package/.tap/processinfo/d091172a-06a5-469b-82a9-8fefe3dd99da.json +0 -240
  292. package/.tap/processinfo/d1675431-61d6-45f8-a010-6e654112a00a.json +0 -272
  293. package/.tap/processinfo/d2d54aa2-c221-4ad4-b6b7-0c58e3c3679c.json +0 -269
  294. package/.tap/processinfo/d4f3c95a-ddbe-419d-bce0-dd6acceee21f.json +0 -268
  295. package/.tap/processinfo/d54ed8f1-43c3-478a-90d3-2c8aced723f2.json +0 -269
  296. package/.tap/processinfo/d6e5a2a6-4647-4d98-916c-aec4ace54a65.json +0 -268
  297. package/.tap/processinfo/d7280c64-45e6-4b12-affc-3ac9a5d4014a.json +0 -268
  298. package/.tap/processinfo/d82c8367-d825-4405-88df-07298f6ef840.json +0 -269
  299. package/.tap/processinfo/d8f97e53-e921-4d33-9c8d-2f7e807a9425.json +0 -268
  300. package/.tap/processinfo/da546a73-9714-4f8c-bdbb-e42730edbcfa.json +0 -268
  301. package/.tap/processinfo/da7fb7fb-1da4-49f8-a3ee-d4ea623c01a5.json +0 -268
  302. package/.tap/processinfo/daa6a016-4f0c-4050-923c-2022e0bb21d8.json +0 -268
  303. package/.tap/processinfo/db9a251d-8540-4719-b464-e7d5febd97d1.json +0 -240
  304. package/.tap/processinfo/dc10c603-8e58-4611-baa3-44da2578d07a.json +0 -268
  305. package/.tap/processinfo/dde56c1a-858c-47cc-b0bb-61279620ac17.json +0 -268
  306. package/.tap/processinfo/e0d9c4ea-f7c7-4c64-8ced-66dc6f0ac5d2.json +0 -271
  307. package/.tap/processinfo/e121454f-5dfa-4209-ba15-4c39840871f2.json +0 -831
  308. package/.tap/processinfo/e1f43e40-c3fe-4eb8-a713-d5910cc6b25a.json +0 -268
  309. package/.tap/processinfo/e4575e7a-f00e-488b-94e1-8f877b54725e.json +0 -268
  310. package/.tap/processinfo/e9ad667e-8603-4488-af64-449cc9532803.json +0 -268
  311. package/.tap/processinfo/eb26a697-e5e2-4730-aeea-bcb9c49afd4d.json +0 -268
  312. package/.tap/processinfo/eb29d1c3-feaf-4744-9d84-cf257e8269b0.json +0 -268
  313. package/.tap/processinfo/ee720c0a-ed64-4e7e-8c0a-139c7b9725d2.json +0 -268
  314. package/.tap/processinfo/ef88c13a-87b2-49e4-a683-7b812505cd6f.json +0 -268
  315. package/.tap/processinfo/f4ed6948-dac0-4128-9f86-d083b6918ea7.json +0 -268
  316. package/.tap/processinfo/f7544c01-8ac7-4e42-8ad5-c4d62e094d1f.json +0 -270
  317. package/.tap/processinfo/f7cee4b3-7bcc-4591-a628-5629b0b41c9e.json +0 -268
  318. package/.tap/processinfo/f9c0a1f7-c1a4-44d3-ae3f-8c1eb42cd746.json +0 -269
  319. package/.tap/processinfo/fc46b4da-79db-4201-af7e-34bb17f92d69.json +0 -270
  320. package/.tap/processinfo/fccc0056-03c4-40cb-9d0b-2db4bbe573c1.json +0 -268
  321. package/.tap/processinfo/fd2df572-54d7-4ce7-b7aa-a2b4b00d4127.json +0 -254
  322. package/.tap/processinfo/fea9377f-b473-484d-bee6-ac7f49e50937.json +0 -269
  323. package/.tap/processinfo/feb516dc-abda-46e6-9b42-d37adfc63366.json +0 -268
  324. package/.tap/processinfo/ff0fda4c-aa2e-4236-906e-fdfb6bd6632e.json +0 -269
  325. package/test/default-route.test.js +0 -88
  326. package/test/listen.deprecated.test.js +0 -229
  327. package/test/unsupported-httpversion.test.js +0 -31
  328. package/types/.eslintrc.json +0 -48
@@ -190,6 +190,24 @@ The above route declaration is more *Hapi*-like, but if you prefer an
190
190
 
191
191
  `fastify.patch(path, [options], handler)`
192
192
 
193
+ `fastify.propfind(path, [options], handler)`
194
+
195
+ `fastify.proppatch(path, [options], handler)`
196
+
197
+ `fastify.mkcol(path, [options], handler)`
198
+
199
+ `fastify.copy(path, [options], handler)`
200
+
201
+ `fastify.move(path, [options], handler)`
202
+
203
+ `fastify.lock(path, [options], handler)`
204
+
205
+ `fastify.unlock(path, [options], handler)`
206
+
207
+ `fastify.trace(path, [options], handler)`
208
+
209
+ `fastify.search(path, [options], handler)`
210
+
193
211
  Example:
194
212
  ```js
195
213
  const opts = {
@@ -468,14 +486,14 @@ const route = {
468
486
  schema: {},
469
487
  }
470
488
 
471
- fastify.register(function(app, _, done) {
489
+ fastify.register(function (app, _, done) {
472
490
  app.get('/users', () => {})
473
491
  app.route(route)
474
492
 
475
493
  done()
476
494
  }, { prefix: '/v1' }) // global route prefix
477
495
 
478
- await fastify.listen({ port: 0 })
496
+ await fastify.listen({ port: 3000 })
479
497
  ```
480
498
 
481
499
  ### Route Prefixing and fastify-plugin
@@ -578,7 +596,7 @@ const fastify = Fastify({
578
596
  method: req.method,
579
597
  url: req.url,
580
598
  headers: req.headers,
581
- hostname: req.hostname,
599
+ host: req.host,
582
600
  remoteAddress: req.ip,
583
601
  remotePort: req.socket.remotePort
584
602
  }
@@ -750,7 +768,7 @@ matching wildcard subdomains (or any other pattern):
750
768
  fastify.route({
751
769
  method: 'GET',
752
770
  url: '/',
753
- constraints: { host: /.*\.fastify\.io/ }, // will match any subdomain of fastify.dev
771
+ constraints: { host: /.*\.fastify\.dev/ }, // will match any subdomain of fastify.dev
754
772
  handler: function (request, reply) {
755
773
  reply.send('hello world from ' + request.headers.host)
756
774
  }
@@ -799,8 +817,8 @@ const secret = {
799
817
  > const Fastify = require('fastify')
800
818
  >
801
819
  > const fastify = Fastify({
802
- > frameworkErrors: function(err, res, res) {
803
- > if(err instanceof Fastify.errorCodes.FST_ERR_ASYNC_CONSTRAINT) {
820
+ > frameworkErrors: function (err, res, res) {
821
+ > if (err instanceof Fastify.errorCodes.FST_ERR_ASYNC_CONSTRAINT) {
804
822
  > res.code(400)
805
823
  > return res.send("Invalid header provided")
806
824
  > } else {
@@ -809,25 +827,3 @@ const secret = {
809
827
  > }
810
828
  > })
811
829
  > ```
812
-
813
-
814
- ### ⚠ HTTP version check
815
-
816
- Fastify will check the HTTP version of every request, based on configuration
817
- options ([http2](./Server.md#http2), [https](./Server.md#https), and
818
- [serverFactory](./Server.md#serverfactory)), to determine if it matches one or
819
- all of the > following versions: `2.0`, `1.1`, and `1.0`. If Fastify receives a
820
- different HTTP version in the request it will return a `505 HTTP Version Not
821
- Supported` error.
822
-
823
- | | 2.0 | 1.1 | 1.0 | skip |
824
- |:------------------------:|:---:|:---:|:---:|:----:|
825
- | http2 | ✓ | | | |
826
- | http2 + https | ✓ | | | |
827
- | http2 + https.allowHTTP1 | ✓ | ✓ | ✓ | |
828
- | https | | ✓ | ✓ | |
829
- | http | | ✓ | ✓ | |
830
- | serverFactory | | | | ✓ |
831
-
832
- Note: The internal HTTP version check will be removed in the future when Node
833
- implements [this feature](https://github.com/nodejs/node/issues/43115).
@@ -53,8 +53,6 @@ describes the properties available in that options object.
53
53
  - [listen](#listen)
54
54
  - [`listenTextResolver`](#listentextresolver)
55
55
  - [addresses](#addresses)
56
- - [getDefaultRoute](#getdefaultroute)
57
- - [setDefaultRoute](#setdefaultroute)
58
56
  - [routing](#routing)
59
57
  - [route](#route)
60
58
  - [hasRoute](#hasroute)
@@ -527,7 +525,15 @@ fastify.get('/user/:id(^([0-9]+){4}$)', (request, reply) => {
527
525
 
528
526
  The header name used to set the request-id. See [the
529
527
  request-id](./Logging.md#logging-request-id) section.
530
- Setting `requestIdHeader` to `false` will always use [genReqId](#genreqid).
528
+ Setting `requestIdHeader` to `true` will set the `requestIdHeader` to
529
+ `"request-id"`.
530
+ Setting `requestIdHeader` to a non-empty string will use
531
+ the specified string as the `requestIdHeader`.
532
+ By default `requestIdHeader` is set to `false` and will immediately use [genReqId](#genreqid).
533
+ Setting `requestIdHeader` to an empty String (`""`) will set the
534
+ requestIdHeader to `false`.
535
+
536
+ + Default: `false`
531
537
 
532
538
  ```js
533
539
  const fastify = require('fastify')({
@@ -596,14 +602,14 @@ const fastify = Fastify({ trustProxy: true })
596
602
  For more examples, refer to the
597
603
  [`proxy-addr`](https://www.npmjs.com/package/proxy-addr) package.
598
604
 
599
- You may access the `ip`, `ips`, `hostname` and `protocol` values on the
605
+ You may access the `ip`, `ips`, `host` and `protocol` values on the
600
606
  [`request`](./Request.md) object.
601
607
 
602
608
  ```js
603
609
  fastify.get('/', (request, reply) => {
604
610
  console.log(request.ip)
605
611
  console.log(request.ips)
606
- console.log(request.hostname)
612
+ console.log(request.host)
607
613
  console.log(request.protocol)
608
614
  })
609
615
  ```
@@ -871,14 +877,14 @@ function rewriteUrl (req) {
871
877
  ### `useSemicolonDelimiter`
872
878
  <a id="use-semicolon-delimiter"></a>
873
879
 
874
- + Default `true`
880
+ + Default `false`
875
881
 
876
882
  Fastify uses [find-my-way](https://github.com/delvedor/find-my-way) which supports,
877
883
  separating the path and query string with a `;` character (code 59), e.g. `/dev;foo=bar`.
878
884
  This decision originated from [delvedor/find-my-way#76]
879
885
  (https://github.com/delvedor/find-my-way/issues/76). Thus, this option will support
880
- backwards compatibility for the need to split on `;`. To disable support for splitting
881
- on `;` set `useSemicolonDelimiter` to `false`.
886
+ backwards compatiblilty for the need to split on `;`. To enable support for splitting
887
+ on `;` set `useSemicolonDelimiter` to `true`.
882
888
 
883
889
  ```js
884
890
  const fastify = require('fastify')({
@@ -1101,51 +1107,6 @@ const addresses = fastify.addresses()
1101
1107
 
1102
1108
  Note that the array contains the `fastify.server.address()` too.
1103
1109
 
1104
- #### getDefaultRoute
1105
- <a id="getDefaultRoute"></a>
1106
-
1107
- > **Warning**
1108
- > This method is deprecated and will be removed in the next Fastify
1109
- > major version.
1110
-
1111
- The `defaultRoute` handler handles requests that do not match any URL specified
1112
- by your Fastify application. This defaults to the 404 handler, but can be
1113
- overridden with [setDefaultRoute](#setdefaultroute). Method to get the
1114
- `defaultRoute` for the server:
1115
-
1116
- ```js
1117
- const defaultRoute = fastify.getDefaultRoute()
1118
- ```
1119
-
1120
- #### setDefaultRoute
1121
- <a id="setDefaultRoute"></a>
1122
-
1123
- > **Warning**
1124
- > This method is deprecated and will be removed in the next Fastify
1125
- > major version. Please, consider using `setNotFoundHandler` or a wildcard
1126
- > matching route.
1127
-
1128
- The default 404 handler, or one set using `setNotFoundHandler`, will
1129
- never trigger if the default route is overridden. This sets the handler for the
1130
- Fastify application, not just the current instance context. Use
1131
- [setNotFoundHandler](#setnotfoundhandler) if you want to customize 404 handling
1132
- instead.
1133
-
1134
- This method sets the `defaultRoute` for the server. Note that, its purpose is
1135
- to interact with the underlying raw requests. Unlike other Fastify handlers, the
1136
- arguments received are of type [RawRequest](./TypeScript.md#rawrequest) and
1137
- [RawReply](./TypeScript.md#rawreply) respectively.
1138
-
1139
- ```js
1140
- const defaultRoute = function (req, res) {
1141
- // req = RawRequest
1142
- // res = RawReply
1143
- res.end('hello world')
1144
- }
1145
-
1146
- fastify.setDefaultRoute(defaultRoute)
1147
- ```
1148
-
1149
1110
  #### routing
1150
1111
  <a id="routing"></a>
1151
1112
 
@@ -37,29 +37,26 @@ $ npm i @fastify/type-provider-json-schema-to-ts
37
37
  ```
38
38
 
39
39
  ```typescript
40
- import { JsonSchemaToTsProvider } from '@fastify/type-provider-json-schema-to-ts'
41
-
42
40
  import fastify from 'fastify'
41
+ import { JsonSchemaToTsProvider } from '@fastify/type-provider-json-schema-to-ts'
43
42
 
44
43
  const server = fastify().withTypeProvider<JsonSchemaToTsProvider>()
45
44
 
46
45
  server.get('/route', {
47
- schema: {
48
- querystring: {
49
- type: 'object',
50
- properties: {
51
- foo: { type: 'number' },
52
- bar: { type: 'string' },
53
- },
54
- required: ['foo', 'bar']
55
- }
46
+ schema: {
47
+ querystring: {
48
+ type: 'object',
49
+ properties: {
50
+ foo: { type: 'number' },
51
+ bar: { type: 'string' },
52
+ },
53
+ required: ['foo', 'bar']
56
54
  }
57
-
55
+ }
58
56
  }, (request, reply) => {
59
57
 
60
- // type Query = { foo: number, bar: string }
61
-
62
- const { foo, bar } = request.query // type safe!
58
+ // type Query = { foo: number, bar: string }
59
+ const { foo, bar } = request.query // type safe!
63
60
  })
64
61
  ```
65
62
 
@@ -72,25 +69,23 @@ $ npm i @fastify/type-provider-typebox
72
69
  ```
73
70
 
74
71
  ```typescript
72
+ import fastify from 'fastify'
75
73
  import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'
76
74
  import { Type } from '@sinclair/typebox'
77
75
 
78
- import fastify from 'fastify'
79
-
80
76
  const server = fastify().withTypeProvider<TypeBoxTypeProvider>()
81
77
 
82
78
  server.get('/route', {
83
- schema: {
84
- querystring: Type.Object({
85
- foo: Type.Number(),
86
- bar: Type.String()
87
- })
88
- }
79
+ schema: {
80
+ querystring: Type.Object({
81
+ foo: Type.Number(),
82
+ bar: Type.String()
83
+ })
84
+ }
89
85
  }, (request, reply) => {
90
86
 
91
- // type Query = { foo: number, bar: string }
92
-
93
- const { foo, bar } = request.query // type safe!
87
+ // type Query = { foo: number, bar: string }
88
+ const { foo, bar } = request.query // type safe!
94
89
  })
95
90
  ```
96
91
 
@@ -661,6 +661,23 @@ However, there are a couple of suggestions to help improve this experience:
661
661
  - Make sure the `no-unused-vars` rule is enabled in
662
662
  [ESLint](https://eslint.org/docs/rules/no-unused-vars) and any imported plugin
663
663
  are actually being loaded.
664
+ - In case you've the `@typescript-eslint/no-floating-promises` enabled,
665
+ please double-check that your ESLint configuration includes a `allowForKnownSafePromises`
666
+ property as described on the [`typescript-eslint no-floating-promises allowForKnownSafePromises
667
+ documentation`](https://typescript-eslint.io/rules/no-floating-promises/#allowforknownsafepromises):
668
+ ```
669
+ {
670
+ "rules": {
671
+ "@typescript-eslint/no-floating-promises": ["error", {
672
+ "allowForKnownSafePromises": [
673
+ { "from": "package", "name": "FastifyInstance", "package": "fastify" },
674
+ { "from": "package", "name": "FastifyReply", "package": "fastify" },
675
+ { "from": "package", "name": "SafePromiseLike", "package": "fastify" },
676
+ ]
677
+ }]
678
+ }
679
+ }
680
+ ```
664
681
  - Use a module such as [depcheck](https://www.npmjs.com/package/depcheck) or
665
682
  [npm-check](https://www.npmjs.com/package/npm-check) to verify plugin
666
683
  dependencies are being used somewhere in your project.
@@ -831,7 +848,7 @@ Constraints: `string | Buffer`
831
848
 
832
849
  #### Fastify
833
850
 
834
- ##### fastify<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(opts?: [FastifyServerOptions][FastifyServerOptions]): [FastifyInstance][FastifyInstance]
851
+ ##### fastify< [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(opts?: [FastifyServerOptions][FastifyServerOptions]): [FastifyInstance][FastifyInstance]
835
852
  [src](https://github.com/fastify/fastify/blob/main/fastify.d.ts#L19)
836
853
 
837
854
  The main Fastify API method. By default creates an HTTP server. Utilizing
@@ -986,7 +1003,7 @@ Type alias for `http.Server`
986
1003
 
987
1004
  ---
988
1005
 
989
- ##### fastify.FastifyServerOptions<[RawServer][RawServerGeneric], [Logger][LoggerGeneric]>
1006
+ ##### fastify.FastifyServerOptions< [RawServer][RawServerGeneric], [Logger][LoggerGeneric]>
990
1007
 
991
1008
  [src](https://github.com/fastify/fastify/blob/main/fastify.d.ts#L29)
992
1009
 
@@ -997,7 +1014,7 @@ generic parameters are passed down through that method.
997
1014
  See the main [fastify][Fastify] method type definition section for examples on
998
1015
  instantiating a Fastify server with TypeScript.
999
1016
 
1000
- ##### fastify.FastifyInstance<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RequestGeneric][FastifyRequestGenericInterface], [Logger][LoggerGeneric]>
1017
+ ##### fastify.FastifyInstance< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RequestGeneric][FastifyRequestGenericInterface], [Logger][LoggerGeneric]>
1001
1018
 
1002
1019
  [src](https://github.com/fastify/fastify/blob/main/types/instance.d.ts#L16)
1003
1020
 
@@ -1020,7 +1037,7 @@ details on this interface.
1020
1037
 
1021
1038
  #### Request
1022
1039
 
1023
- ##### fastify.FastifyRequest<[RequestGeneric][FastifyRequestGenericInterface], [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1040
+ ##### fastify.FastifyRequest< [RequestGeneric][FastifyRequestGenericInterface], [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1024
1041
  [src](https://github.com/fastify/fastify/blob/main/types/request.d.ts#L15)
1025
1042
 
1026
1043
  This interface contains properties of Fastify request object. The properties
@@ -1120,7 +1137,7 @@ RawRequestDefaultExpression<http2.Http2Server> // -> http2.Http2ServerRequest
1120
1137
 
1121
1138
  #### Reply
1122
1139
 
1123
- ##### fastify.FastifyReply<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1140
+ ##### fastify.FastifyReply< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1124
1141
  [src](https://github.com/fastify/fastify/blob/main/types/reply.d.ts#L32)
1125
1142
 
1126
1143
  This interface contains the custom properties that Fastify adds to the standard
@@ -1156,7 +1173,7 @@ declare module 'fastify' {
1156
1173
  }
1157
1174
  ```
1158
1175
 
1159
- ##### fastify.RawReplyDefaultExpression<[RawServer][RawServerGeneric]>
1176
+ ##### fastify.RawReplyDefaultExpression< [RawServer][RawServerGeneric]>
1160
1177
  [src](https://github.com/fastify/fastify/blob/main/types/utils.d.ts#L27)
1161
1178
 
1162
1179
  Dependent on `@types/node` modules `http`, `https`, `http2`
@@ -1188,19 +1205,19 @@ When creating plugins for Fastify, it is recommended to use the `fastify-plugin`
1188
1205
  module. Additionally, there is a guide to creating plugins with TypeScript and
1189
1206
  Fastify available in the Learn by Example, [Plugins](#plugins) section.
1190
1207
 
1191
- ##### fastify.FastifyPluginCallback<[Options][FastifyPluginOptions]>
1208
+ ##### fastify.FastifyPluginCallback< [Options][FastifyPluginOptions]>
1192
1209
  [src](https://github.com/fastify/fastify/blob/main/types/plugin.d.ts#L9)
1193
1210
 
1194
1211
  Interface method definition used within the
1195
1212
  [`fastify.register()`][FastifyRegister] method.
1196
1213
 
1197
- ##### fastify.FastifyPluginAsync<[Options][FastifyPluginOptions]>
1214
+ ##### fastify.FastifyPluginAsync< [Options][FastifyPluginOptions]>
1198
1215
  [src](https://github.com/fastify/fastify/blob/main/types/plugin.d.ts#L20)
1199
1216
 
1200
1217
  Interface method definition used within the
1201
1218
  [`fastify.register()`][FastifyRegister] method.
1202
1219
 
1203
- ##### fastify.FastifyPlugin<[Options][FastifyPluginOptions]>
1220
+ ##### fastify.FastifyPlugin< [Options][FastifyPluginOptions]>
1204
1221
  [src](https://github.com/fastify/fastify/blob/main/types/plugin.d.ts#L29)
1205
1222
 
1206
1223
  Interface method definition used within the
@@ -1269,7 +1286,7 @@ a function that returns the previously described intersection.
1269
1286
  Check out the [Specifying Logger Types](#example-5-specifying-logger-types)
1270
1287
  example for more details on specifying a custom logger.
1271
1288
 
1272
- ##### fastify.FastifyLoggerOptions<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric]>
1289
+ ##### fastify.FastifyLoggerOptions< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric]>
1273
1290
 
1274
1291
  [src](https://github.com/fastify/fastify/blob/main/types/logger.d.ts#L17)
1275
1292
 
@@ -1332,7 +1349,7 @@ One of the core principles in Fastify is its routing capabilities. Most of the
1332
1349
  types defined in this section are used under-the-hood by the Fastify instance
1333
1350
  `.route` and `.get/.post/.etc` methods.
1334
1351
 
1335
- ##### fastify.RouteHandlerMethod<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1352
+ ##### fastify.RouteHandlerMethod< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1336
1353
 
1337
1354
  [src](https://github.com/fastify/fastify/blob/main/types/route.d.ts#L105)
1338
1355
 
@@ -1342,7 +1359,7 @@ The generics parameters are passed through to these arguments. The method
1342
1359
  returns either `void` or `Promise<any>` for synchronous and asynchronous
1343
1360
  handlers respectively.
1344
1361
 
1345
- ##### fastify.RouteOptions<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1362
+ ##### fastify.RouteOptions< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1346
1363
 
1347
1364
  [src](https://github.com/fastify/fastify/blob/main/types/route.d.ts#L78)
1348
1365
 
@@ -1354,14 +1371,14 @@ required properties:
1354
1371
  3. `handler` the route handler method, see [RouteHandlerMethod][] for more
1355
1372
  details
1356
1373
 
1357
- ##### fastify.RouteShorthandMethod<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric]>
1374
+ ##### fastify.RouteShorthandMethod< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric]>
1358
1375
 
1359
1376
  [src](https://github.com/fastify/fastify/blob/main/types/route.d.ts#12)
1360
1377
 
1361
1378
  An overloaded function interface for three kinds of shorthand route methods to
1362
1379
  be used in conjunction with the `.get/.post/.etc` methods.
1363
1380
 
1364
- ##### fastify.RouteShorthandOptions<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1381
+ ##### fastify.RouteShorthandOptions< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1365
1382
 
1366
1383
  [src](https://github.com/fastify/fastify/blob/main/types/route.d.ts#55)
1367
1384
 
@@ -1369,7 +1386,7 @@ An interface that covers all of the base options for a route. Each property on
1369
1386
  this interface is optional, and it serves as the base for the RouteOptions and
1370
1387
  RouteShorthandOptionsWithHandler interfaces.
1371
1388
 
1372
- ##### fastify.RouteShorthandOptionsWithHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1389
+ ##### fastify.RouteShorthandOptionsWithHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>
1373
1390
 
1374
1391
  [src](https://github.com/fastify/fastify/blob/main/types/route.d.ts#93)
1375
1392
 
@@ -1384,21 +1401,21 @@ interface `handler` which is of type RouteHandlerMethod
1384
1401
 
1385
1402
  A generic type that is either a `string` or `Buffer`
1386
1403
 
1387
- ##### fastify.FastifyBodyParser<[RawBody][RawBodyGeneric], [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1404
+ ##### fastify.FastifyBodyParser< [RawBody][RawBodyGeneric], [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1388
1405
 
1389
1406
  [src](https://github.com/fastify/fastify/blob/main/types/content-type-parser.d.ts#L7)
1390
1407
 
1391
1408
  A function type definition for specifying a body parser method. Use the
1392
1409
  `RawBody` generic to specify the type of the body being parsed.
1393
1410
 
1394
- ##### fastify.FastifyContentTypeParser<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1411
+ ##### fastify.FastifyContentTypeParser< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1395
1412
 
1396
1413
  [src](https://github.com/fastify/fastify/blob/main/types/content-type-parser.d.ts#L17)
1397
1414
 
1398
1415
  A function type definition for specifying a body parser method. Content is typed
1399
1416
  via the `RawRequest` generic.
1400
1417
 
1401
- ##### fastify.AddContentTypeParser<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1418
+ ##### fastify.AddContentTypeParser< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric]>
1402
1419
 
1403
1420
  [src](https://github.com/fastify/fastify/blob/main/types/content-type-parser.d.ts#L46)
1404
1421
 
@@ -1440,7 +1457,7 @@ This interface is passed to instance of FastifyError.
1440
1457
 
1441
1458
  #### Hooks
1442
1459
 
1443
- ##### fastify.onRequestHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1460
+ ##### fastify.onRequestHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1444
1461
 
1445
1462
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L17)
1446
1463
 
@@ -1450,7 +1467,7 @@ no previous hook, the next hook will be `preParsing`.
1450
1467
  Notice: in the `onRequest` hook, request.body will always be null, because the
1451
1468
  body parsing happens before the `preHandler` hook.
1452
1469
 
1453
- ##### fastify.preParsingHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1470
+ ##### fastify.preParsingHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1454
1471
 
1455
1472
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L35)
1456
1473
 
@@ -1465,21 +1482,21 @@ stream. This property is used to correctly match the request payload with the
1465
1482
  `Content-Length` header value. Ideally, this property should be updated on each
1466
1483
  received chunk.
1467
1484
 
1468
- ##### fastify.preValidationHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1485
+ ##### fastify.preValidationHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1469
1486
 
1470
1487
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L53)
1471
1488
 
1472
1489
  `preValidation` is the third hook to be executed in the request lifecycle. The
1473
1490
  previous hook was `preParsing`, the next hook will be `preHandler`.
1474
1491
 
1475
- ##### fastify.preHandlerHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1492
+ ##### fastify.preHandlerHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1476
1493
 
1477
1494
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L70)
1478
1495
 
1479
1496
  `preHandler` is the fourth hook to be executed in the request lifecycle. The
1480
1497
  previous hook was `preValidation`, the next hook will be `preSerialization`.
1481
1498
 
1482
- ##### fastify.preSerializationHookHandler<PreSerializationPayload, [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], payload: PreSerializationPayload, done: (err: [FastifyError][FastifyError] | null, res?: unknown) => void): Promise\<unknown\> | void
1499
+ ##### fastify.preSerializationHookHandler< PreSerializationPayload, [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], payload: PreSerializationPayload, done: (err: [FastifyError][FastifyError] | null, res?: unknown) => void): Promise\<unknown\> | void
1483
1500
 
1484
1501
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L94)
1485
1502
 
@@ -1489,7 +1506,7 @@ The previous hook was `preHandler`, the next hook will be `onSend`.
1489
1506
  Note: the hook is NOT called if the payload is a string, a Buffer, a stream or
1490
1507
  null.
1491
1508
 
1492
- ##### fastify.onSendHookHandler<OnSendPayload, [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], payload: OnSendPayload, done: (err: [FastifyError][FastifyError] | null, res?: unknown) => void): Promise\<unknown\> | void
1509
+ ##### fastify.onSendHookHandler< OnSendPayload, [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], payload: OnSendPayload, done: (err: [FastifyError][FastifyError] | null, res?: unknown) => void): Promise\<unknown\> | void
1493
1510
 
1494
1511
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L114)
1495
1512
 
@@ -1500,7 +1517,7 @@ next hook will be `onResponse`.
1500
1517
  Note: If you change the payload, you may only change it to a string, a Buffer, a
1501
1518
  stream, or null.
1502
1519
 
1503
- ##### fastify.onResponseHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1520
+ ##### fastify.onResponseHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1504
1521
 
1505
1522
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L134)
1506
1523
 
@@ -1511,7 +1528,7 @@ The onResponse hook is executed when a response has been sent, so you will not
1511
1528
  be able to send more data to the client. It can however be useful for sending
1512
1529
  data to external services, for example to gather statistics.
1513
1530
 
1514
- ##### fastify.onErrorHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], error: [FastifyError][FastifyError], done: () => void): Promise\<unknown\> | void
1531
+ ##### fastify.onErrorHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(request: [FastifyRequest][FastifyRequest], reply: [FastifyReply][FastifyReply], error: [FastifyError][FastifyError], done: () => void): Promise\<unknown\> | void
1515
1532
 
1516
1533
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L154)
1517
1534
 
@@ -1528,7 +1545,7 @@ the default customErrorHandler always sends the error back to the user).
1528
1545
  Notice: unlike the other hooks, pass an error to the done function is not
1529
1546
  supported.
1530
1547
 
1531
- ##### fastify.onRouteHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(opts: [RouteOptions][RouteOptions] & { path: string; prefix: string }): Promise\<unknown\> | void
1548
+ ##### fastify.onRouteHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [RequestGeneric][FastifyRequestGenericInterface], [ContextConfig][ContextConfigGeneric]>(opts: [RouteOptions][RouteOptions] & \{ path: string; prefix: string }): Promise\<unknown\> | void
1532
1549
 
1533
1550
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L174)
1534
1551
 
@@ -1536,7 +1553,7 @@ Triggered when a new route is registered. Listeners are passed a routeOptions
1536
1553
  object as the sole parameter. The interface is synchronous, and, as such, the
1537
1554
  listener does not get passed a callback
1538
1555
 
1539
- ##### fastify.onRegisterHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(instance: [FastifyInstance][FastifyInstance], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1556
+ ##### fastify.onRegisterHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(instance: [FastifyInstance][FastifyInstance], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1540
1557
 
1541
1558
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L191)
1542
1559
 
@@ -1548,7 +1565,7 @@ plugin context is formed, and you want to operate in that specific context.
1548
1565
 
1549
1566
  Note: This hook will not be called if a plugin is wrapped inside fastify-plugin.
1550
1567
 
1551
- ##### fastify.onCloseHookHandler<[RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(instance: [FastifyInstance][FastifyInstance], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1568
+ ##### fastify.onCloseHookHandler< [RawServer][RawServerGeneric], [RawRequest][RawRequestGeneric], [RawReply][RawReplyGeneric], [Logger][LoggerGeneric]>(instance: [FastifyInstance][FastifyInstance], done: (err?: [FastifyError][FastifyError]) => void): Promise\<unknown\> | void
1552
1569
 
1553
1570
  [src](https://github.com/fastify/fastify/blob/main/types/hooks.d.ts#L206)
1554
1571
 
@@ -9,21 +9,17 @@
9
9
  - [FSTWRN002](#FSTWRN002)
10
10
  - [Fastify Deprecation Codes](#fastify-deprecation-codes)
11
11
  - [FSTDEP005](#FSTDEP005)
12
- - [FSTDEP006](#FSTDEP006)
13
12
  - [FSTDEP007](#FSTDEP007)
14
13
  - [FSTDEP008](#FSTDEP008)
15
14
  - [FSTDEP009](#FSTDEP009)
16
15
  - [FSTDEP010](#FSTDEP010)
17
- - [FSTDEP011](#FSTDEP011)
18
16
  - [FSTDEP012](#FSTDEP012)
19
17
  - [FSTDEP013](#FSTDEP013)
20
- - [FSTDEP014](#FSTDEP014)
21
18
  - [FSTDEP015](#FSTDEP015)
22
19
  - [FSTDEP016](#FSTDEP016)
23
20
  - [FSTDEP017](#FSTDEP017)
24
21
  - [FSTDEP018](#FSTDEP018)
25
22
  - [FSTDEP019](#FSTDEP019)
26
- - [FSTDEP020](#FSTDEP020)
27
23
  - [FSTDEP021](#FSTDEP021)
28
24
 
29
25
 
@@ -76,19 +72,15 @@ Deprecation codes are further supported by the Node.js CLI options:
76
72
  | Code | Description | How to solve | Discussion |
77
73
  | ---- | ----------- | ------------ | ---------- |
78
74
  | <a id="FSTDEP005">FSTDEP005</a> | You are accessing the deprecated `request.connection` property. | Use `request.socket`. | [#2594](https://github.com/fastify/fastify/pull/2594) |
79
- | <a id="FSTDEP006">FSTDEP006</a> | You are decorating Request/Reply with a reference type. This reference is shared amongst all requests. | Do not use Arrays/Objects as values when decorating Request/Reply. | [#2688](https://github.com/fastify/fastify/pull/2688) |
80
75
  | <a id="FSTDEP007">FSTDEP007</a> | You are trying to set a HEAD route using `exposeHeadRoute` route flag when a sibling route is already set. | Remove `exposeHeadRoutes` or explicitly set `exposeHeadRoutes` to `false` | [#2700](https://github.com/fastify/fastify/pull/2700) |
81
76
  | <a id="FSTDEP008">FSTDEP008</a> | You are using route constraints via the route `{version: "..."}` option. | Use `{constraints: {version: "..."}}` option. | [#2682](https://github.com/fastify/fastify/pull/2682) |
82
77
  | <a id="FSTDEP009">FSTDEP009</a> | You are using a custom route versioning strategy via the server `{versioning: "..."}` option. | Use `{constraints: {version: "..."}}` option. | [#2682](https://github.com/fastify/fastify/pull/2682) |
83
78
  | <a id="FSTDEP010">FSTDEP010</a> | Modifying the `reply.sent` property is deprecated. | Use the `reply.hijack()` method. | [#3140](https://github.com/fastify/fastify/pull/3140) |
84
- | <a id="FSTDEP011">FSTDEP011</a> | Variadic listen method is deprecated. | Use `.listen(optionsObject)`. | [#3712](https://github.com/fastify/fastify/pull/3712) |
85
79
  | <a id="FSTDEP012">FSTDEP012</a> | You are trying to access the deprecated `request.context` property. | Use `request.routeOptions.config` or `request.routeOptions.schema`. | [#4216](https://github.com/fastify/fastify/pull/4216) [#5084](https://github.com/fastify/fastify/pull/5084) |
86
80
  | <a id="FSTDEP013">FSTDEP013</a> | Direct return of "trailers" function is deprecated. | Use "callback" or "async-await" for return value. | [#4380](https://github.com/fastify/fastify/pull/4380) |
87
- | <a id="FSTDEP014">FSTDEP014</a> | You are trying to set/access the default route. This property is deprecated. | Use `setNotFoundHandler` if you want to custom a 404 handler or the wildcard (`*`) to match all routes. | [#4480](https://github.com/fastify/fastify/pull/4480) |
88
81
  | <a id="FSTDEP015">FSTDEP015</a> | You are accessing the deprecated `request.routeSchema` property. | Use `request.routeOptions.schema`. | [#4470](https://github.com/fastify/fastify/pull/4470) |
89
82
  | <a id="FSTDEP016">FSTDEP016</a> | You are accessing the deprecated `request.routeConfig` property. | Use `request.routeOptions.config`. | [#4470](https://github.com/fastify/fastify/pull/4470) |
90
83
  | <a id="FSTDEP017">FSTDEP017</a> | You are accessing the deprecated `request.routerPath` property. | Use `request.routeOptions.url`. | [#4470](https://github.com/fastify/fastify/pull/4470) |
91
84
  | <a id="FSTDEP018">FSTDEP018</a> | You are accessing the deprecated `request.routerMethod` property. | Use `request.routeOptions.method`. | [#4470](https://github.com/fastify/fastify/pull/4470) |
92
85
  | <a id="FSTDEP019">FSTDEP019</a> | You are accessing the deprecated `reply.context` property. | Use `reply.routeOptions.config` or `reply.routeOptions.schema`. | [#5032](https://github.com/fastify/fastify/pull/5032) [#5084](https://github.com/fastify/fastify/pull/5084) |
93
- | <a id="FSTDEP020">FSTDEP020</a> | You are using the deprecated `reply.getReponseTime()` method. | Use the `reply.elapsedTime` property instead. | [#5263](https://github.com/fastify/fastify/pull/5263) |
94
86
  | <a id="FSTDEP021">FSTDEP021</a> | The `reply.redirect()` method has a new signature: `reply.redirect(url: string, code?: number)`. It will be enforced in `fastify@v5`'. | [#5483](https://github.com/fastify/fastify/pull/5483) |
@@ -0,0 +1,27 @@
1
+ 'use strict'
2
+
3
+ const neo = require('neostandard')
4
+
5
+ module.exports = [
6
+ {
7
+ ignores: [
8
+ 'lib/configValidator.js',
9
+ 'lib/error-serializer.js',
10
+ 'test/same-shape.test.js'
11
+ ]
12
+ },
13
+ ...neo({
14
+ ts: true
15
+ }),
16
+ {
17
+ rules: {
18
+ '@stylistic/comma-dangle': ['error', {
19
+ arrays: 'never',
20
+ objects: 'never',
21
+ imports: 'never',
22
+ exports: 'never',
23
+ functions: 'never'
24
+ }]
25
+ }
26
+ }
27
+ ]