This is a major release.
Breaking
- Minimum node v18
- Removes
.redirect('back')
, adds.back(fallback_url)
@fl0w #1115 - For
.redirect()
, don't render redirect values in anchor ref ff25eb4 req.origin
should display the origin header if it exists, not the current hostname #1008.origin
now aligns with theOrigin
header as used in CORS..body=<json>
should not overwrite type if type already json #1120- Remove special ENOENT support #1861 - this is a big change and will require any file servers to adapt to this change for handling 404s / files not found
- Removes generator deprecation messages. Generators are no longer supported. Koa no longer asserts if generators are used.
Set content-length: 0 if body is explicitly set to null @ognjenjevremovic #1528
Remove obsolete createAsyncCtxStorageMiddleware #1817 ctx.throw
now requires a format ofctx.throw(status, error, properties)
. See: https://www.npmjs.com/package/http-errors
New
- Support custom streams @KristapsR #1825
- Support WHATWG response bodies #1830 @kravorkid
- Use asyncLocalStorage to get current context from app, e.g.:
const ctx = app.currentContext
.
Fixes
- Handle responses when socket is no longer writable @titanism @Azlond #1593
- fix: Do not response Content-Length if Transfer-Encoding is defined #1562 @charlyzeng
- fix: Set body to 'null' if
ctx.type = 'json'
andctx.body = null
#1059 @likegun - fix: can not get currentContext in error handler (#1758) (Gxkl <[email protected]>)
- Fix exports.defaults in package.json #1630
- Fix leaky handles in tests #1838
- Fix body null checks #1814
- Fix reformatting redirect URLs #1805 #1804
- Fix passing ctx in error handler #1758
- Avoid redos on host and protocol getter
Refactors
- Replace node query string with URLSearchParams #1828 @kravorkid
Dependencies
- bump type-is@2
- bump http-errors@2
- bump [email protected]
- bump statuses@2
- bump supertest@7