Fastify v4!
We are finally shipping Fastify v4, you can read more about it at https://medium.com/@fastifyjs/fastify-v4-ga-59f2103b5f0e
Individual PRs
- Checked if error handler is default before setting headers by @Swampr in #2609
- feat: set undefined on null input by @metcoder95 in #2731
- chore: merge master with next by @salmanm in #2753
- Set exposeHeadRoutes: true by default by @mcollina in #2826
- dropped flatstrt by @mcollina in #3016
- Typed decorators by @wyozi in #2981
- feat: Improve error experience by @metcoder95 in #2954
- Allow async handler to resolve with undefined by @sergejostir in #2702
- Remove overdue deprecations by @sergejostir in #3070
- Remove content type coercion for response streams by @luke88jones in #3086
- feat: Handle new
avvio
error codes by @metcoder95 in #3106 - fix: handle invalid url by @climba03003 in #3128
- Clarification for "Simplify reply sent monitoring (#3072)" by @sergejostir in #3132
- Deprecate modifying reply.sent property by @sergejostir in #3140
- Fix responding from a hook doc by @sergejostir in #3161
- Deem everything thrown as an error by @sergejostir in #3200
- Encapsulated error handling by @mcollina in #3261
- Payload validation by @matthyk in #3274
- Ajv8 by default by @Eomm in #3271
- Update types for Pino 7 by @kibertoad in #3281
- Update dependencies by @kibertoad in #3294
- chore(deps): Update to new Avvio major version by @metcoder95 in #3288
- Update to pino rc4 by @kibertoad in #3302
- Increase http2SessionTimeout and keepAliveTimeout to 72 seconds by @mcollina in #3304
- fix(typescript): allow to pass all pino options by @climba03003 in #3383
- Fastify Type Providers by @sinclairzx81 in #3398
- docs: Extend TypeBox documentation by @Jnig in #3437
- Adjust existing PRs for the new reply.sent handing by @sergejostir in #3444
- Skip encapsulation of Request and Reply when not needed by @mcollina in #3479
- fix: Refactor Context constructor and avoid positional arguments by @vtcaregorodtcev in #3483
- remove app.use and fix middleware tests by @genzyy in #3506
- chore: bump find-my-way to 5.1.0 by @anonrig in #3515
- Type Provider Reply Types by @sinclairzx81 in #3524
- chore: bump dependencies by @anonrig in #3531
- build: drop node 12 support by @anonrig in #3532
- Remove .writableEnded fallbacks for node12 by @sergejostir in #3590
- upgrade fast-json-stringify with ajv8 by @Eomm in #3280
- fix: bad headers characters by @Eomm in #3593
- feat: ajv default array coercion by @Eomm in #3594
- docs: add type provider encapsulation by @RafaelGSS in #3647
- localhost binds to ipv4 and ipv6 by @Eomm in #3606
- feat: bump ajv-compiler by @zekth in #3687
- Tests should pass on a host with only a single network interface by @mcollina in #3703
- fix: call normal 404 handler on unsupported method by @markwainwright in #3705
- Replace pem dependency by @jsumners in #3711
- chore: clean tests by @Eomm in #3714
- fix: add ajv dep as dev by @Eomm in #3715
- build(deps-dev): bump @types/node from 16.11.25 to 17.0.18 by @dependabot in #3708
- Add coverage reporting per OS type by @jsumners in #3717
- Fix coverage workflows by @jsumners in #3719
- build(deps): bump fastify-error from 0.3.1 to 1.0.0 by @dependabot in #3721
- Remove Coveralls (closes #3720) by @jsumners in #3722
- docs: add database guide page by @maksimovicdanijel in #3704
- Remove reference to 'ESLint: manage library execution' command by @karansapolia in #3727
- Handle aborted requests by @Allain55 in #3651
- Drop @typescript-eslint/no-misused-promises by @mcollina in #3741
- test: change port to random by @xtx1130 in #3740
- Deprecate variadic listen method (closes #3652) by @jsumners in #3712
- feat (types): add complete
fastify.listen()
typescript definitions by @darkgl0w in #3751 - Fix: response type of serialize method in FastifyReply interface by @floratmin in #3754
- chore(benchmark): add node v17 by @RafaelGSS in #3755
- build(deps-dev): bump tap from 15.2.3 to 16.0.0 by @dependabot in #3756
- Fixed Node.js v18/master support by @mcollina in #3760
- Fix avvio plugin timeout for 0 by @Miladiir in #3759
- Update Ecosystem.md by @love-lena in #3766
- docs: aws-lambda-fastify in the ecosystem by @adrai in #3768
- Update Ecosystem.md - Add fastify-impressions to the list by @manju4ever in #3767
- Fix typo in reference documentation for listen() by @tniessen in #3773
- chore: code beauty by @xtx1130 in #3774
- Improve parser example by @matthyk in #3781
- build(deps): bump actions/setup-node from 2 to 3 by @dependabot in #3736
- Automerge major updates by @mcollina in #3716
- fix: #3783 by @xtx1130 in #3784
- Allow custom Context Config types for hooks'
request
properties by @sumbad in #3786 - fix: set reply's default charset to utf8 by @xtx1130 in #3789
- Bugfix/streamline fastify request to be generic by @MarcoLeko in #3785
- docs: add fastify-webpack-hot (fixes #3792) by @gajus in #3793
- feat: reply trailers support by @climba03003 in #3794
- build(deps-dev): bump send from 0.17.2 to 0.18.0 by @dependabot in #3798
- chore: change lastindexOf to endsWith by @xtx1130 in #3799
- build(deps): bump actions/checkout from 2 to 3 by @dependabot in #3811
- refactor: update 404 onBadUrl behavior by @climba03003 in #3813
- reply: remove content-length when Transfer-Encoding is added by @xtx1130 in #3814
- fix: remove duplicate require(http-errors) by @alex-parra in #3816
- fix: remove server.unref from tests (#3790) by @alex-parra in #3815
- build(deps-dev): bump tsd from 0.19.1 to 0.20.0 by @dependabot in #3819
- feat: allowUnsafeRegex in options by @BCsabaEngine in #3817
- test: fix latest pino type change error by @climba03003 in #3823
- build(deps-dev): bump json-schema-to-ts from 1.6.5 to 2.0.1 by @dependabot in #3824
- build(deps): bump actions/cache from 2 to 3 by @dependabot in #3825
- Updated benchmarks to v4 and Node v16 by @mcollina in #3826
- ci: reduce workflow permissions to minimum by @Fdawgs in #3828
- ci: revert to using
pull_request_target
by @Fdawgs in #3832 - fix type providers package names by @matthyk in #3831
- chore: add guide on delaying serving specific requests by @wilkmaia in #3837
- Add SQLite as supported database by @matthyk in #3847
- docs: improve docs around trailing slashes in routes by @conradthegray in #3846
- chore: add node 18 to ci and benchmark by @RafaelGSS in #3843
- Update Routes.md by @PazzaVlad in #3835
- docs: reference new
@fastify/*
modules by @Fdawgs in #3855 - content-type: return undefined when content-type is '' by @xtx1130 in #3821
- Update fastify-error dependency by @jsumners in #3857
- ci: allow backport to be run on fork prs by @Fdawgs in #3858
- build(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in #3868
- chore: add never stale as exempt by @RafaelGSS in #3873
- Add Promise to 404 handler return type by @omothm in #3822
- docs(guides): grammar fixes by @Fdawgs in #3876
- docs: standardize npm cli commands and args by @Fdawgs in #3875
- docs(reference): grammar and conciseness changes by @Fdawgs in #3877
- Support rc in version checks by @mcollina in #3879
- docs: add Type Providers to Typescript docs by @conradthegray in #3853
- chore: fix typo by @is2ei in #3887
- replaced semver check code per recommendation by @CynoidIT in #3886
- chore: fix typo by @is2ei in #3891
- Update TypeScript.md by @Ivan-Feofanov in #3848
- ci: add dependency-review job by @Fdawgs in #3884
- Fix link to OpenJS Foundation Image in Readme.md by @Uzlopak in #3889
- fixed a typo in the definition of the abbreviation DAG by @amamdemous in #3892
- Run automerge in ci only if we have a pull-request or got a pr-number provided by @Uzlopak in #3885
- docs(ecosystem): update core list by @Fdawgs in #3901
- Redirect Security Responsible Disclosure Badge in Readme.md to SECURITY.md by @Uzlopak in #3903
- JSDoc in Get Started Section by @Sarfraz-droid in #3850
- docs: update the link address of
hooks
by @xyyjk in #3907 - test: prepare for network interfaces family change by @climba03003 in #3910
- docs: add fastify-racing to ecosystem by @metcoder95 in #3914
- fix: all hooks should handle undefined error by @ivan-tymoshenko in #3915
- Move querystring parsing to the router by @ivan-tymoshenko in #3905
- Add constraint strategies outside Fastify constructor by @ivan-tymoshenko in #3908
- feat: http version check by @climba03003 in #3912
- docs: explain defaultRoute by @aradwann in #3917
- docs: update genReqId docs by @xtx1130 in #3898
- docs: remove unused constraint methods by @ivan-tymoshenko in #3921
- Fix getDefaultRoute type by @lbfalvy in #3920
- Remove mentions of
make-promises-safe
because it is only needed with Node <=14 by @danieldiekmeier in #3922 - build(deps): bump process-warning from 1.0.0 to 2.0.0 by @dependabot in #3926
- build(deps): bump light-my-request from 4.10.1 to 5.0.0 by @dependabot in #3927
- chore: update @fastify/fast-json-stringify-compiler by @Eomm in #3928
- docs(guides/ecosystem): add
any-schema-you-like
; sort alphabetically by @Fdawgs in #3930 - docs(Reference/Logging): update suggested pino-pretty configuration by @mweberxyz in #3933
- docs(ecosystem): add fastify-amqp-async by @kffl in #3934
- feat: add ignoreDuplicateSlashes option by @ivan-tymoshenko in #3929
- ci: remove git credentials after checkout by @Fdawgs in #3937
- improve schema.response validation error message by @evanshortiss in #3935
- docs(ecosystem): add fast-maker by @imjuni in #3939
- doc: add RafaelGSS to Plugins team by @RafaelGSS in #3940
- fix: handler return reply type by @alexandresaura in #3941
- docs: fix ambiguous sentence by @is2ei in #3944
- docs(ecosystem): add fastify-kafkajs by @kffl in #3945
- Make the root pluginName 'fastify' by @mcollina in #3946
- build(deps): bump @fastify/error from 2.0.0 to 3.0.0 by @dependabot in #3947
- build(deps): bump find-my-way from 6.1.0 to 6.2.0 by @dependabot in #3948
- build(deps-dev): bump json-schema-to-ts from 2.5.2 to 5.2.3 by @dependabot in #3949
- fix: preserve chain of proptotypes in multiple nested plugins by @mcollina in #3954
- docs(ecosystem): add fastify-next-auth by @wobsoriano in #3943
- docs(guides): fix page name style by @Fdawgs in #3955
- chore: Bump all dependencies by @kibertoad in #3956
- fix(types): fix default type provider typings by @kevinmarrec in #3952
- chore: Upgrade to pino 8 by @kibertoad in #3961
- chore: Fix types for child loggers by @kibertoad in #3962
- docs: update a link to tsconfig by @is2ei in #3964
- feat: add hasPlugin method by @is2ei in #3963
- feat: Use new Node.js' connection closing API if available by @ShogunPanda in #3925
- docs: fix broken link by @baseballyama in #3966
- update fast-json-stringify to v4 by @mcollina in #3967
- 2XX is a supported status code for the response by @mcollina in #3969
- docs: update http links to https by @Fdawgs in #3976
- docs: update core plugin names by @Fdawgs in #3975
- ci(ci): use concurrency in pull requests by @Fdawgs in #3973
- feat: allow default as status code by @climba03003 in #3972
Full Changelog: v3.27.2...v4.0.0