Releases: honojs/hono
v4.4.0
Hono v4.4.0 is now available! Let's take a look at the new features.
Support JSR
Now, Hono is available on JSR - a new JavaScript/TypeScript registry! You can install the Hono package from JSR right now. If you want to run your Hono app on Deno, you can install it with the following command:
deno add @hono/hono
Then, use it in your code!
// main.ts
import { Hono } from '@hono/hono'
const app = new Hono()
app.get('/', (c) => c.text('Hello JSR!'))
export default app
And run it:
deno serve main.ts
If you edit the deno.json
and set the paths appropriately, the exact same code that you are familiar with will work in Deno, Cloudflare Workers, and Bun.
deno.json
:
{
"imports": {
"hono": "jsr:@hono/hono@^4.4.0"
}
}
Area.mp4
JSR is not exclusive to Deno. You can use it with npm and Bun.
# npm
npx jsr add @hono/hono
# bun
bunx jsr add @hono/hono
And, removing "slow types" has improved the performance of TypeScript type inference.
With the introduction of JSR, the previous package publishing from deno.land/x
will be obsolete.
Introduce ConnInfo Helper
The ConnInfo Helper is a helper helps you to get the connection information. For example, you can get the client's remote address easily.
import { Hono } from 'hono'
import { getConnInfo } from 'hono/deno' // For Deno
const app = new Hono()
app.get('/', (c) => {
const info = getConnInfo(c) // info is `ConnInfo`
return c.text(`Your remote address is ${info.remote.address}`)
})
export default app
Thank you for creating the feature, @nakasyou!
Introduce Timeout Middleware
The Timeout Middleware is a middleware enables you to easily manage request timeouts in your application.
Here is a simple example:
import { Hono } from 'hono'
import { timeout } from 'hono/timeout'
const app = new Hono()
// Applying a 5-second timeout
app.use('/api', timeout(5000))
// Handling a route
app.get('/api/data', async (c) => {
// Your route handler logic
return c.json({ data: 'Your data here' })
})
Thank you for creating the feature, @watany-dev!
Improving JSDoc
We are now trying to improve the JSDocs. In the PR, we've added the JSDocs for all middleware. Thank you, @goisaki!
Other features
- URL utility - decode percent-encoded path in
getPath
#2714 - Body utility - add dot notation support for
parseBody
#2675 - Body utility - specify detailed return type for
parseBody
#2771 - SSG Helper - enhance combined hooks #2686
- JSX DOM - improve compatibility with React - The 2024 May Update #2756
- JSX DOM - introduce react-dom/client APIs and React.version #2795
All Updates
- fix(secure-header): Replace NodeJS Buffer API by @watany-dev in #2761
- fix(http-exception): prioritize the status code by @yusukebe in #2767
- feat: Introduce ConnInfo helper/adapter by @nakasyou in #2595
- feat(middleware): Introduce Timeout Middleware by @watany-dev in #2615
- feat: decode percent-encoded path in getPath by @usualoma in #2714
- feat(utils/body): add dot notation support for
parseBody
by @fzn0x in #2675 - refactor(cloudflare-workers): remove
@cloudflare/workers-types
by @yusukebe in #2773 - feat(jsx/dom): improve compatibility with React - The 2024 May Update by @usualoma in #2756
- feat(utils): specify detailed return type for parseBody by @usualoma in #2771
- feat(ssg): enhance conbined hooks by @watany-dev in #2686
- feat(jsr): support JSR by @yusukebe in #2662
- refactor(request): show user-friendly type for
c.req.param()
by @usualoma in #2780 - refactor(utils/body): minor cleanup by @MathurAditya724 in #2783
- docs(readme): update the badges by @yusukebe in #2785
- chore(actions): update
on
condition forpublish-to-jsr
by @yusukebe in #2786 - chore(deno): change path including deno_dist by @ryuapp in #2788
- fix(middleware/jwt): typo by @euijinkk in #2789
- chore(lint): update eslint rules by @yusukebe in #2790
- fix(middleware): export variables type from each
index.ts
by @yusukebe in #2793 - docs: add module docs by @yusukebe in #2796
- feat(jsx/dom): introduce react-dom/client APIs and React.version by @usualoma in #2795
- docs(readme): update readme and
jsr.json
by @yusukebe in #2803 - Next for
v4.4.0
by @yusukebe in #2769 - chore: update lockfile by @yusukebe in #2805
New Contributors
Full Changelog: v4.3.9...v4.4.0
v4.4.0-rc.1
This is a pre-release.
v4.3.11
v4.3.10
v4.3.9
v4.3.8
What's Changed
- test(validator): compatibility with Node.js
v20.13.1
by @yusukebe in #2682 - refactor(utils/jwt): remove some
any
by @fzn0x in #2684 - refactor(timing): don't use
Partial
for the options by @yusukebe in #2712 - refactor(secure-headers): don't use
Partial
for the options by @yusukebe in #2713 - fix(context): Retain all cookies when passing
ResponseInit
toc.body
by @codeflows in #2690 - fix(hono-jsx): make ref unrequried for forward ref by @dygy in #2715
New Contributors
- @fzn0x made their first contribution in #2684
- @codeflows made their first contribution in #2690
- @dygy made their first contribution in #2715
Full Changelog: v4.3.7...v4.3.8
v4.3.7
What's Changed
- doc(ssg): Define the default value for Content-Type by @watany-dev in #2666
- feat(aws-lambda): add alb event processor by @yiss in #2657
- feat(utils/cookie): allow setting cookie SameSite attribute in lowercase too by @BlankParticle in #2668
- fix(method-override): remove un-needed import of URLSearchParams in method override middleware by @f5io in #2679
New Contributors
- @yiss made their first contribution in #2657
- @BlankParticle made their first contribution in #2668
- @f5io made their first contribution in #2679
Full Changelog: v4.3.6...v4.3.7
v4.3.6
What's Changed
- feat(cache): improved customizability by @MathurAditya724 in #2652
- fix(utils/body): support multiple
File
s by @yusukebe in #2665
New Contributors
- @MathurAditya724 made their first contribution in #2652
Full Changelog: v4.3.5...v4.3.6
v4.3.5
v4.3.4
What's Changed
- chore: update the pull request template by @yusukebe in #2647
- feat(validator): check for json subtypes in validator by @ztiromoritz in #2634
- feat(jsx/dom): support getServerSnapshot in useSyncExternalStore by @usualoma in #2646
New Contributors
- @ztiromoritz made their first contribution in #2634
Full Changelog: v4.3.3...v4.3.4