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.
- package/.markdownlint-cli2.yaml +1 -1
- package/.tap/processinfo/{86b9786f-4a98-43b8-882a-5f936b876f08.json → 09002e93-10ad-430c-bc86-c0576928b0ed.json} +60 -60
- package/.tap/processinfo/{70168912-9bb2-4334-bb89-041f1764cddf.json → ee66c5ab-635d-48b5-8be6-3dc3ceea5bfc.json} +71 -71
- package/.tap/test-results/test/build/error-serializer.test.js.tap +6 -2
- package/.tap/test-results/test/build/version.test.js.tap +1 -1
- package/.taprc +4 -8
- package/README.md +3 -6
- package/build/build-error-serializer.js +4 -1
- package/build/build-validation.js +5 -4
- package/docs/Guides/Database.md +1 -1
- package/docs/Guides/Delay-Accepting-Requests.md +3 -3
- package/docs/Guides/Ecosystem.md +2 -0
- package/docs/Guides/Migration-Guide-V5.md +20 -0
- package/docs/Guides/Write-Type-Provider.md +4 -2
- package/docs/Reference/ContentTypeParser.md +30 -1
- package/docs/Reference/Decorators.md +42 -16
- package/docs/Reference/Errors.md +10 -2
- package/docs/Reference/Hooks.md +48 -14
- package/docs/Reference/Logging.md +5 -5
- package/docs/Reference/Reply.md +23 -18
- package/docs/Reference/Request.md +5 -1
- package/docs/Reference/Routes.md +24 -28
- package/docs/Reference/Server.md +14 -53
- package/docs/Reference/Type-Providers.md +21 -26
- package/docs/Reference/TypeScript.md +46 -29
- package/docs/Reference/Warnings.md +0 -8
- package/eslint.config.js +27 -0
- package/examples/typescript-server.ts +14 -14
- package/fastify.d.ts +15 -14
- package/fastify.js +41 -15
- package/lib/configValidator.js +94 -76
- package/lib/contentTypeParser.js +54 -88
- package/lib/decorate.js +3 -7
- package/lib/error-serializer.js +2 -1
- package/lib/errors.js +31 -6
- package/lib/handleRequest.js +70 -39
- package/lib/httpMethods.js +34 -18
- package/lib/logger.js +24 -6
- package/lib/pluginUtils.js +5 -5
- package/lib/reply.js +7 -10
- package/lib/request.js +37 -19
- package/lib/route.js +6 -34
- package/lib/server.js +62 -123
- package/lib/warnings.js +24 -29
- package/lib/wrapThenable.js +46 -22
- package/package.json +38 -58
- package/test/404s.test.js +8 -12
- package/test/async-await.test.js +46 -2
- package/test/build/error-serializer.test.js +4 -2
- package/test/check.test.js +225 -0
- package/test/close-pipelining.test.js +2 -41
- package/test/close.test.js +1 -41
- package/test/content-parser.test.js +69 -117
- package/test/custom-parser.1.test.js +40 -1
- package/test/decorator-namespace.test._js_ +31 -0
- package/test/decorator.test.js +92 -43
- package/test/delete.test.js +21 -1
- package/test/diagnostics-channel/404.test.js +57 -0
- package/test/diagnostics-channel/async-delay-request.test.js +74 -0
- package/test/diagnostics-channel/async-request.test.js +72 -0
- package/test/diagnostics-channel/error-before-handler.test.js +36 -0
- package/test/diagnostics-channel/error-request.test.js +61 -0
- package/test/diagnostics-channel/error-status.test.js +39 -0
- package/test/{diagnostics-channel.test.js → diagnostics-channel/init.test.js} +6 -16
- package/test/diagnostics-channel/sync-delay-request.test.js +58 -0
- package/test/diagnostics-channel/sync-request-reply.test.js +58 -0
- package/test/diagnostics-channel/sync-request.test.js +61 -0
- package/test/encapsulated-error-handler.test.js +201 -14
- package/test/esm/index.test.js +2 -12
- package/test/findRoute.test.js +16 -0
- package/test/genReqId.test.js +9 -0
- package/test/get.test.js +28 -0
- package/test/has-route.test.js +1 -1
- package/test/helper.js +1 -5
- package/test/hooks.test.js +0 -4
- package/test/http2/constraint.test.js +22 -1
- package/test/http2/plain.test.js +21 -6
- package/test/http2/secure.test.js +12 -1
- package/test/https/https.test.js +57 -0
- package/test/inject.test.js +1 -2
- package/test/internals/decorator.test.js +0 -2
- package/test/internals/errors.test.js +57 -17
- package/test/internals/handleRequest.test.js +5 -1
- package/test/internals/initialConfig.test.js +5 -5
- package/test/internals/logger.test.js +31 -2
- package/test/internals/reply.test.js +6 -78
- package/test/internals/request.test.js +13 -11
- package/test/listen.1.test.js +5 -15
- package/test/listen.5.test.js +88 -0
- package/test/logger/instantiation.test.js +8 -8
- package/test/logger/logging.test.js +4 -4
- package/test/logger/options.test.js +102 -21
- package/test/logger/response.test.js +6 -6
- package/test/maxRequestsPerSocket.test.js +2 -5
- package/test/method-missing.test.js +24 -0
- package/test/plugin.1.test.js +2 -4
- package/test/plugin.2.test.js +0 -2
- package/test/plugin.3.test.js +0 -2
- package/test/plugin.4.test.js +92 -56
- package/test/register.test.js +2 -4
- package/test/reply-earlyHints.test.js +98 -0
- package/test/reply-error.test.js +0 -2
- package/test/route-hooks.test.js +0 -1
- package/test/route-shorthand.test.js +60 -0
- package/test/schema-special-usage.test.js +1 -1
- package/test/server.test.js +17 -2
- package/test/stream.2.test.js +1 -1
- package/test/stream.4.test.js +0 -42
- package/test/stream.5.test.js +2 -2
- package/test/trust-proxy.test.js +33 -27
- package/test/types/errors.test-d.ts +0 -2
- package/test/types/fastify.test-d.ts +14 -12
- package/test/types/hooks.test-d.ts +1 -0
- package/test/types/import.ts +1 -0
- package/test/types/instance.test-d.ts +10 -51
- package/test/types/logger.test-d.ts +43 -6
- package/test/types/plugin.test-d.ts +5 -2
- package/test/types/register.test-d.ts +2 -2
- package/test/types/reply.test-d.ts +13 -12
- package/test/types/request.test-d.ts +19 -8
- package/test/types/route.test-d.ts +30 -2
- package/test/types/schema.test-d.ts +2 -2
- package/test/types/serverFactory.test-d.ts +1 -1
- package/test/types/type-provider.test-d.ts +59 -12
- package/test/types/using.test-d.ts +4 -1
- package/test/url-rewriting.test.js +3 -2
- package/test/useSemicolonDelimiter.test.js +3 -6
- package/test/versioned-routes.test.js +1 -1
- package/test/web-api.test.js +0 -6
- package/types/content-type-parser.d.ts +3 -3
- package/types/context.d.ts +0 -1
- package/types/errors.d.ts +1 -0
- package/types/hooks.d.ts +6 -6
- package/types/instance.d.ts +28 -41
- package/types/logger.d.ts +3 -3
- package/types/plugin.d.ts +3 -3
- package/types/reply.d.ts +9 -12
- package/types/request.d.ts +5 -3
- package/types/route.d.ts +31 -31
- package/types/schema.d.ts +3 -3
- package/types/serverFactory.d.ts +2 -2
- package/types/type-provider.d.ts +22 -12
- package/types/utils.d.ts +18 -23
- package/.c8rc.json +0 -8
- package/.eslintrc +0 -4
- package/.tap/processinfo/029eb7a1-1942-40bc-98e2-cef3b7a14b5e.json +0 -268
- package/.tap/processinfo/03c196c6-01c3-4268-a9b5-298dff18a873.json +0 -269
- package/.tap/processinfo/04bbabba-8611-4908-9092-dfa9fcc13327.json +0 -268
- package/.tap/processinfo/05d8a743-3edf-4e2d-ae5a-dc99d0855ba5.json +0 -272
- package/.tap/processinfo/07718963-36a8-4d87-82ad-366c877a5247.json +0 -268
- package/.tap/processinfo/08fe3bde-5814-4308-9158-cdf1e47391b7.json +0 -268
- package/.tap/processinfo/0a3e3fb0-eabf-4532-ae80-20434da22678.json +0 -268
- package/.tap/processinfo/0caf2a75-4b3a-46c4-9b41-c7e450e5e15f.json +0 -268
- package/.tap/processinfo/0cf35d52-e5b2-4884-bcf0-b0ab3017b689.json +0 -268
- package/.tap/processinfo/0e666134-5013-4ecd-9ee6-59b22716c39c.json +0 -268
- package/.tap/processinfo/1087b811-4ec4-4f91-92b4-a78a51a437de.json +0 -268
- package/.tap/processinfo/13709ed3-b68c-42cf-8472-b0c4b8a89d2b.json +0 -268
- package/.tap/processinfo/13ac2f18-d0e0-439f-bc86-2ff0119af857.json +0 -268
- package/.tap/processinfo/13e47e0e-f6e8-4381-8a42-923b661f4a4f.json +0 -268
- package/.tap/processinfo/143f7d43-b8e8-4666-b482-f28fb37160ee.json +0 -268
- package/.tap/processinfo/14f3801d-03ab-4db3-9df5-c5d47e0a8cf0.json +0 -270
- package/.tap/processinfo/15a07dad-4bcd-442c-95e0-30c31f2b9818.json +0 -273
- package/.tap/processinfo/191ad3ad-04d8-4fb9-b119-ad2811f9b925.json +0 -243
- package/.tap/processinfo/1b25d54b-62d3-44cd-b581-31e705522fae.json +0 -268
- package/.tap/processinfo/1b7cb260-f04b-4135-a4fe-093081c4706f.json +0 -268
- package/.tap/processinfo/1e395d63-4815-4c77-aa47-df3709cc0ef9.json +0 -268
- package/.tap/processinfo/1e7f6a54-3abf-4771-863a-585cba110aec.json +0 -268
- package/.tap/processinfo/21a15e1d-0b41-47d8-b03d-0ba130969034.json +0 -244
- package/.tap/processinfo/21e02016-9ecd-4983-8417-9c74d224644f.json +0 -269
- package/.tap/processinfo/2327d941-d0d5-4762-b386-02a9a27ad28e.json +0 -268
- package/.tap/processinfo/23d39204-eac9-4f57-8db4-ffa996227fbd.json +0 -268
- package/.tap/processinfo/2493875a-0ac6-4d53-993c-f44471fd0678.json +0 -268
- package/.tap/processinfo/2698669f-f1e7-4a12-a687-8d58177be2b0.json +0 -269
- package/.tap/processinfo/2862b053-0a3d-46d7-9381-ffcb06287609.json +0 -268
- package/.tap/processinfo/2ac1b8d6-ac92-40e2-a59a-7681069f487c.json +0 -268
- package/.tap/processinfo/2c75e5f7-c4ef-47e4-a1c4-105eef6c0fab.json +0 -242
- package/.tap/processinfo/2e2c45cd-718b-4e5a-bf88-f801630f2803.json +0 -268
- package/.tap/processinfo/2f9ca478-3e03-4cce-a0bc-fcdc86d7c316.json +0 -268
- package/.tap/processinfo/30e3117f-fb74-456f-8f02-527e9eb9fcc3.json +0 -268
- package/.tap/processinfo/332be679-63c7-4b49-8b87-ef55995ada2d.json +0 -268
- package/.tap/processinfo/37c36f95-07f9-4ef0-8ab4-9e107d51b605.json +0 -269
- package/.tap/processinfo/3874eae2-f3db-44ef-9a9f-c8169d4b2b76.json +0 -268
- package/.tap/processinfo/38a7c3da-a411-41d0-8993-9deefd23500d.json +0 -268
- package/.tap/processinfo/3a7b6dbd-e153-4ce5-b557-21fb82009983.json +0 -269
- package/.tap/processinfo/3c6731ec-936d-470f-b7b0-0c87b54be051.json +0 -268
- package/.tap/processinfo/3c850ea9-4ef0-4044-a3fd-fbadfa9d543e.json +0 -268
- package/.tap/processinfo/3e4e15e0-a325-46f0-be57-5fd374560b7a.json +0 -269
- package/.tap/processinfo/3ed868e0-887c-402a-9f22-b1fdb74b4da0.json +0 -268
- package/.tap/processinfo/405498d7-5854-4ce1-a7dc-06920932f26d.json +0 -268
- package/.tap/processinfo/40b7eb19-ae35-4490-8a11-eb91a573c590.json +0 -268
- package/.tap/processinfo/40bb1260-d856-4248-8939-a0a05e322041.json +0 -268
- package/.tap/processinfo/41252e0b-7f69-44cc-b356-dd94bcbfdb29.json +0 -268
- package/.tap/processinfo/418fa710-e2fd-4508-b533-c179958da464.json +0 -269
- package/.tap/processinfo/433ef009-63aa-48fe-8e5d-c725228fa2fc.json +0 -268
- package/.tap/processinfo/44bf577c-9c01-4197-bd29-2e1ae888c4d4.json +0 -268
- package/.tap/processinfo/458fb7f2-20b9-48a2-8853-403c9851f605.json +0 -268
- package/.tap/processinfo/46b9892b-bb23-4b86-b0fa-9297f08c611a.json +0 -268
- package/.tap/processinfo/46bd9aaf-6cf3-4bd5-b90d-e136a7299a8e.json +0 -268
- package/.tap/processinfo/4779aa5f-e57a-4fcc-87e2-7d0bd4fca27f.json +0 -268
- package/.tap/processinfo/47b73f4b-ab31-49e1-97fd-8436dbe4bdf3.json +0 -269
- package/.tap/processinfo/49dba52e-e0c9-445d-8e9d-6d9ebe3ce6c4.json +0 -268
- package/.tap/processinfo/4b1dbc61-4e65-4c56-9784-2036f369038a.json +0 -268
- package/.tap/processinfo/4b6f0b40-43ef-4668-83a0-e07e28509df5.json +0 -268
- package/.tap/processinfo/4c236f70-f532-460b-8f7a-dd973301d493.json +0 -268
- package/.tap/processinfo/4d92b707-a268-48b8-885b-004d3a288c41.json +0 -269
- package/.tap/processinfo/4ff10bae-7c97-4c0a-b712-6c0d2f8c0e8e.json +0 -270
- package/.tap/processinfo/50f95bd5-ae12-4d83-99f4-ae9b0690c6a8.json +0 -268
- package/.tap/processinfo/557e4a49-d99c-4a63-b2f2-f33d897ab874.json +0 -268
- package/.tap/processinfo/589fd21a-8319-4abf-8cf7-82cb4a463a4b.json +0 -269
- package/.tap/processinfo/5a872f3a-949f-40be-8004-d739d034255c.json +0 -272
- package/.tap/processinfo/5abc301a-23da-424d-891e-3afbaff9156c.json +0 -269
- package/.tap/processinfo/5c31614c-a766-4837-ab59-dd6977166f72.json +0 -253
- package/.tap/processinfo/5d1e90c8-d819-4901-b022-f9ea4cd81978.json +0 -268
- package/.tap/processinfo/5d283e67-f31d-4fa8-a559-a1d8e82ee046.json +0 -269
- package/.tap/processinfo/5df505bc-6a4b-4c41-822f-51e2d7111de8.json +0 -268
- package/.tap/processinfo/5eaf64a2-fbfd-40e7-b391-c30f744b2bf1.json +0 -269
- package/.tap/processinfo/5ef5ede0-6436-4938-8401-d32ad4bffd5d.json +0 -268
- package/.tap/processinfo/606f05c0-8293-41db-bc92-eea82123697f.json +0 -269
- package/.tap/processinfo/6446806d-6cab-4c1d-a9ed-6bccaf3c4ea9.json +0 -268
- package/.tap/processinfo/64da7e08-925d-444d-98de-6568c6115d8d.json +0 -269
- package/.tap/processinfo/6917da6d-d2dc-466a-a893-7fb7412dde96.json +0 -268
- package/.tap/processinfo/69bbeee0-c398-4ccf-98b3-fb625a63bab4.json +0 -268
- package/.tap/processinfo/6da6ea8f-3370-4703-b230-90159531f766.json +0 -268
- package/.tap/processinfo/6ecffe1f-3016-4c11-9294-b488baced99f.json +0 -268
- package/.tap/processinfo/6f23f41f-ccbd-48cb-9ab6-311db0cfb65c.json +0 -270
- package/.tap/processinfo/713a674e-40e1-46b4-866e-949d57c1a9f9.json +0 -270
- package/.tap/processinfo/730254d4-eacb-4cdf-80f4-8da22341cde5.json +0 -268
- package/.tap/processinfo/7344e559-c546-416f-8f1b-0f9fe12c6f02.json +0 -268
- package/.tap/processinfo/7556217a-0155-448f-b4d4-bec1bb0f6040.json +0 -269
- package/.tap/processinfo/7572079c-166c-4c4c-85ff-89b9430b214f.json +0 -268
- package/.tap/processinfo/7808180f-1974-47cd-bba2-2d6b8b711d65.json +0 -273
- package/.tap/processinfo/796dde83-da66-4db2-8d27-d45a3627c9c7.json +0 -268
- package/.tap/processinfo/7979819f-3723-48be-9f55-be700e689441.json +0 -270
- package/.tap/processinfo/7a664d39-d7f5-42f9-89df-15563048fab6.json +0 -268
- package/.tap/processinfo/7b047b72-01d9-4217-857c-93341651b4b3.json +0 -269
- package/.tap/processinfo/7ce41af6-7961-45ae-8c6f-b6e1c5692a48.json +0 -268
- package/.tap/processinfo/7e1de1c6-127e-463d-9357-081ee33ef5ce.json +0 -269
- package/.tap/processinfo/81ac7a7f-b0c0-4ef6-82cb-c718ea84e152.json +0 -268
- package/.tap/processinfo/851a058f-a497-4b10-a0b7-c9182d9c4d5a.json +0 -268
- package/.tap/processinfo/86502974-c245-4194-ade4-d9c6fdbb757e.json +0 -268
- package/.tap/processinfo/8a3fe726-86ab-4300-8d73-7eacbbc02a05.json +0 -268
- package/.tap/processinfo/8adf928b-c963-4ba0-9c35-606fcbd8a2aa.json +0 -272
- package/.tap/processinfo/8b31a6d8-1a33-4a27-93ca-1c5b364be068.json +0 -240
- package/.tap/processinfo/8ec12773-6b18-49a2-8e52-874c797df965.json +0 -833
- package/.tap/processinfo/8edb9502-3420-42fb-a602-e5de93be2df1.json +0 -268
- package/.tap/processinfo/8fc572e6-9828-4f98-a49c-9e081b2193c4.json +0 -242
- package/.tap/processinfo/8fee2d30-c5dd-4fae-9cf2-2ef8dd0f90de.json +0 -834
- package/.tap/processinfo/92cc0496-5f26-4370-8212-18136b972f99.json +0 -268
- package/.tap/processinfo/93a3f064-3f6e-4f49-becb-f7925f2961a9.json +0 -268
- package/.tap/processinfo/967e3697-8310-4a19-8dd5-927ac8bd6c79.json +0 -269
- package/.tap/processinfo/97225e23-9d30-4287-b3f5-72bccebec50b.json +0 -268
- package/.tap/processinfo/9a363bc6-4e65-47e8-94ca-26a9db428fb4.json +0 -268
- package/.tap/processinfo/9d2fe462-57fa-43f1-b02c-d188f15de30b.json +0 -270
- package/.tap/processinfo/a00b6cda-feb7-4b8a-8179-4c43bc29d670.json +0 -269
- package/.tap/processinfo/a017cbd5-4ac7-49e1-8c77-1bf4f6e7f2a6.json +0 -271
- package/.tap/processinfo/a1277309-1984-48f8-b60b-f5e8639736be.json +0 -271
- package/.tap/processinfo/a16bf53e-4337-48ff-88fa-67f55738e0f5.json +0 -268
- package/.tap/processinfo/a3a9848f-440e-41bb-9b0b-568bcfee0ddc.json +0 -268
- package/.tap/processinfo/a468c11f-f2f1-4e92-9ba0-6d28b6569b72.json +0 -268
- package/.tap/processinfo/a5880465-68f1-46b3-84a5-0da389d0bc67.json +0 -268
- package/.tap/processinfo/a666f394-39b4-44ad-8e74-abebf74dde3b.json +0 -270
- package/.tap/processinfo/af09d8ca-7053-4410-b514-b22c47f5979f.json +0 -268
- package/.tap/processinfo/af203309-28aa-459d-a56e-d88833695521.json +0 -268
- package/.tap/processinfo/afa2f7b6-dcd2-4d90-bf3c-54ba8b6800eb.json +0 -268
- package/.tap/processinfo/b231291d-ef14-4ff0-85f9-38a73a5408f8.json +0 -268
- package/.tap/processinfo/b3d3f2a1-a9fc-4d88-b122-fae90248cd59.json +0 -268
- package/.tap/processinfo/b834bf83-26c4-403a-8e91-eb15fe4b0b5d.json +0 -268
- package/.tap/processinfo/b8786fd7-47df-4ac1-8d6f-2d4c7623c681.json +0 -268
- package/.tap/processinfo/b9758f53-7f5a-4b03-8684-8a42ad644e5a.json +0 -268
- package/.tap/processinfo/bd194ea2-a21a-4604-b225-ee48abf1e607.json +0 -242
- package/.tap/processinfo/bd7ced53-3872-43b7-ad73-3352e50b728b.json +0 -268
- package/.tap/processinfo/be50295b-7e50-46cd-8bf1-637bf222699c.json +0 -268
- package/.tap/processinfo/bec61dd9-aa52-4e6c-8e37-5c9c10e935fd.json +0 -268
- package/.tap/processinfo/c015adf9-1d60-447e-87b5-b2031fe55bba.json +0 -268
- package/.tap/processinfo/c0666afa-7f64-45bd-97fb-145df1380157.json +0 -268
- package/.tap/processinfo/c2c0c012-c1c0-4457-84d6-dadba8396c94.json +0 -268
- package/.tap/processinfo/c3dd3ecd-737b-47ce-a917-54341c7bbed3.json +0 -268
- package/.tap/processinfo/c41ac06d-64b8-4bb3-bf56-0551f5a48f4b.json +0 -268
- package/.tap/processinfo/c4235bfb-a2aa-4271-9c6b-3ceb370219b1.json +0 -268
- package/.tap/processinfo/c4e6f24f-288c-493c-b6f0-02924aeb6758.json +0 -270
- package/.tap/processinfo/c54227bb-4a7b-40bb-bfe6-b54fe55078f3.json +0 -268
- package/.tap/processinfo/c699de91-3b0b-4466-9418-6910a3eb640a.json +0 -269
- package/.tap/processinfo/c74e2f37-451a-4577-ac18-e597fbd9a1d4.json +0 -269
- package/.tap/processinfo/c90cccec-5b4b-445f-a935-ac22859675d0.json +0 -252
- package/.tap/processinfo/c9dd6c7d-0d16-45e5-87ae-117388bf2994.json +0 -268
- package/.tap/processinfo/ca2e48fb-58c5-47fc-ad2e-263838aea42c.json +0 -272
- package/.tap/processinfo/ca87351d-c710-45c1-838a-16bccac59874.json +0 -273
- package/.tap/processinfo/cdb4a671-5776-4944-91b9-c456c58841ef.json +0 -268
- package/.tap/processinfo/cf10fdc8-6a87-447a-9e12-45f447af61f3.json +0 -244
- package/.tap/processinfo/cf3f1f08-643e-4f24-82ca-40f7a349c3d1.json +0 -268
- package/.tap/processinfo/d091172a-06a5-469b-82a9-8fefe3dd99da.json +0 -240
- package/.tap/processinfo/d1675431-61d6-45f8-a010-6e654112a00a.json +0 -272
- package/.tap/processinfo/d2d54aa2-c221-4ad4-b6b7-0c58e3c3679c.json +0 -269
- package/.tap/processinfo/d4f3c95a-ddbe-419d-bce0-dd6acceee21f.json +0 -268
- package/.tap/processinfo/d54ed8f1-43c3-478a-90d3-2c8aced723f2.json +0 -269
- package/.tap/processinfo/d6e5a2a6-4647-4d98-916c-aec4ace54a65.json +0 -268
- package/.tap/processinfo/d7280c64-45e6-4b12-affc-3ac9a5d4014a.json +0 -268
- package/.tap/processinfo/d82c8367-d825-4405-88df-07298f6ef840.json +0 -269
- package/.tap/processinfo/d8f97e53-e921-4d33-9c8d-2f7e807a9425.json +0 -268
- package/.tap/processinfo/da546a73-9714-4f8c-bdbb-e42730edbcfa.json +0 -268
- package/.tap/processinfo/da7fb7fb-1da4-49f8-a3ee-d4ea623c01a5.json +0 -268
- package/.tap/processinfo/daa6a016-4f0c-4050-923c-2022e0bb21d8.json +0 -268
- package/.tap/processinfo/db9a251d-8540-4719-b464-e7d5febd97d1.json +0 -240
- package/.tap/processinfo/dc10c603-8e58-4611-baa3-44da2578d07a.json +0 -268
- package/.tap/processinfo/dde56c1a-858c-47cc-b0bb-61279620ac17.json +0 -268
- package/.tap/processinfo/e0d9c4ea-f7c7-4c64-8ced-66dc6f0ac5d2.json +0 -271
- package/.tap/processinfo/e121454f-5dfa-4209-ba15-4c39840871f2.json +0 -831
- package/.tap/processinfo/e1f43e40-c3fe-4eb8-a713-d5910cc6b25a.json +0 -268
- package/.tap/processinfo/e4575e7a-f00e-488b-94e1-8f877b54725e.json +0 -268
- package/.tap/processinfo/e9ad667e-8603-4488-af64-449cc9532803.json +0 -268
- package/.tap/processinfo/eb26a697-e5e2-4730-aeea-bcb9c49afd4d.json +0 -268
- package/.tap/processinfo/eb29d1c3-feaf-4744-9d84-cf257e8269b0.json +0 -268
- package/.tap/processinfo/ee720c0a-ed64-4e7e-8c0a-139c7b9725d2.json +0 -268
- package/.tap/processinfo/ef88c13a-87b2-49e4-a683-7b812505cd6f.json +0 -268
- package/.tap/processinfo/f4ed6948-dac0-4128-9f86-d083b6918ea7.json +0 -268
- package/.tap/processinfo/f7544c01-8ac7-4e42-8ad5-c4d62e094d1f.json +0 -270
- package/.tap/processinfo/f7cee4b3-7bcc-4591-a628-5629b0b41c9e.json +0 -268
- package/.tap/processinfo/f9c0a1f7-c1a4-44d3-ae3f-8c1eb42cd746.json +0 -269
- package/.tap/processinfo/fc46b4da-79db-4201-af7e-34bb17f92d69.json +0 -270
- package/.tap/processinfo/fccc0056-03c4-40cb-9d0b-2db4bbe573c1.json +0 -268
- package/.tap/processinfo/fd2df572-54d7-4ce7-b7aa-a2b4b00d4127.json +0 -254
- package/.tap/processinfo/fea9377f-b473-484d-bee6-ac7f49e50937.json +0 -269
- package/.tap/processinfo/feb516dc-abda-46e6-9b42-d37adfc63366.json +0 -268
- package/.tap/processinfo/ff0fda4c-aa2e-4236-906e-fdfb6bd6632e.json +0 -269
- package/test/default-route.test.js +0 -88
- package/test/listen.deprecated.test.js +0 -229
- package/test/unsupported-httpversion.test.js +0 -31
- package/types/.eslintrc.json +0 -48
package/docs/Reference/Routes.md
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
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\.
|
|
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).
|
package/docs/Reference/Server.md
CHANGED
|
@@ -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 `
|
|
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`, `
|
|
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.
|
|
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 `
|
|
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
|
|
881
|
-
on `;` set `useSemicolonDelimiter` to `
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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<
|
|
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) |
|
package/eslint.config.js
ADDED
|
@@ -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
|
+
]
|