Hono v4.2.0 is now available! Let's take a look at the new features.
Added more algorithms for JWT
The number of algorithms that JWT util can handle has increased from only 3 to 13! This means that JWT util now implements many of the algorithms supported by JWT.
- HS256
- HS384
- HS512
- RS256
- RS384
- RS512
- PS256
- PS384
- PS512
- ES256
- ES384
- ES512
- EdDSA
You can use these algorithms from the JWT middleware or JWT helpers. Thanks @Code-Hex!
Method Override Middleware
Method Override Middleware has been added. This middleware override the method of the real request with the specified method.
HTML form
does not allow you to send a DELETE method request. Instead, by sending an input with name
as _method
and a value of DELETE
, you can call the handler registered in app.delete()
.
const app = new Hono()
// If no options are specified, the value of `_method` in the form,
// e.g. DELETE, is used as the method.
app.use('/posts', methodOverride({ app }))
app.delete('/posts', (c) => {
// ....
})
Trailing Slash Middleware
Trailing Slash Middleware resolves the handling of Trailing Slashes in GET requests. You can use appendTrailingSlash
and trimTrailingSlash
functions.
For example, it redirects a GET request to /about/me
to /about/me/
.
import { Hono } from 'hono'
import { appendTrailingSlash } from 'hono/trailing-slash'
const app = new Hono({ strict: true })
app.use(appendTrailingSlash())
app.get('/about/me/', (c) => c.text('With Trailing Slash'))
Thanks @rnmeow!
Other features
- SSG Helper - Support
extensionMap
#2382 - JSX/DOM - Add
userId
hook #2389 - JWT Middleware - Improve error handling #2406
- Request - Cache the body for re-using #2416
- JWT Util - Add type helper to
payload
#2424 - CORS Middleware - Pass context to
options.origin
function #2436 - Cache Middleware - Support for the
vary
header option #2426 - HTTP Exception - Add
cause
option #2224 - Logger - Support
NO_COLOR
#2228 - JWT Middleware - Add
JwtTokenInvalid
object ascause
when JWT is invalid #2448 - Bearer Auth Middleware - Add
verifyToken
option #2449 - Basic Auth Middleware - Add
verifyUser
option #2450
All Updates
- feat(jwt): supported RS256, RS384, RS512 algorithm for JWT by @Code-Hex in #2339
- added remain algorithm for JWT by @Code-Hex in #2352
- acceptable CryptoKey in JWT sign and verify by @Code-Hex in #2373
- feat(ssg): Support
extentionMap
by @watany-dev in #2382 - feat(jwt): support remaining algorithms by @yusukebe in #2368
- feat(jsx): add useId hook by @usualoma in #2389
- feat(middleware/jwt): improve error handling by @tfkhdyt in #2406
- feat(request): cache body for reusing by @yusukebe in #2416
- feat(jwt): Add type helper to
payload
by @nakasyou in #2424 - feat: introduce Method Override Middleware by @yusukebe in #2420
- feat(middleware/cors): pass context to options.origin function by @okmr-d in #2436
- feat: support for
vary
header in cache middleware by @naporin0624 in #2426 - feat: add middlewares resolve trailing slashes on GET request by @rnmeow in #2408
- test: stub
crypto
if not exist by @yusukebe in #2445 - feat(jwt): literal typed
alg
option value by @yusukebe in #2446 - test(ssg): add test for content-type includes
;
by @yusukebe in #2447 - feat(jwt): add
JwtTokenInvalid
object ascause
when JWT is invalid by @yusukebe in #2448 - feat(bearer-auth): add
verifyToken
option by @yusukebe in #2449 - feat(basic-auth): add
verifyUser
option by @yusukebe in #2450 - Next by @yusukebe in #2454
New Contributors
- @tfkhdyt made their first contribution in #2406
- @okmr-d made their first contribution in #2436
- @naporin0624 made their first contribution in #2426
- @rnmeow made their first contribution in #2408
Full Changelog: v4.1.7...v4.2.0