Open
Conversation
5a9c7b3 to
7bd9a7d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.11.10→4.12.0Release Notes
honojs/hono (hono)
v4.12.0Compare Source
Release Notes
Hono v4.12.0 is now available!
This release includes new features for the Hono client, middleware improvements, adapter enhancements, and significant performance improvements to the router and context.
$pathfor Hono ClientThe Hono client now has a
$path()method that returns the path string instead of a full URL. This is useful when you need just the path portion for routing or key-based operations:Unlike
$url()which returns aURLobject,$path()returns a plain path string, making it convenient for use with routers or as cache keys.Thanks @ShaMan123!
ApplyGlobalResponseType Helper for RPC ClientThe new
ApplyGlobalResponsetype helper allows you to add global error response types to all routes in the RPC client. This is useful for typing common error responses fromapp.onError()or global middlewares:Thanks @mohankumarelec!
SSG Redirect Plugin
A new
redirectPluginfor SSG generates static HTML redirect pages for HTTP redirect responses (301, 302, 303, 307, 308):The generated redirect pages include a
<meta http-equiv="refresh">tag, a canonical link, and arobots noindexmeta tag.Thanks @3w36zj6!
onAuthSuccessCallback for Basic AuthThe Basic Auth middleware now supports an
onAuthSuccesscallback that is invoked after successful authentication. This allows you to set context variables or perform logging without re-parsing the Authorization header:The callback also works with async functions and the
verifyUsermode.Thanks @AprilNEA!
getConnInfofor AWS Lambda, Cloudflare Pages, and NetlifygetConnInfo()is now available for three additional adapters:Thanks @rokasta12!
alwaysRedirectOption for Trailing Slash MiddlewareThe trailing slash middleware now supports an
alwaysRedirectoption. When enabled, the middleware redirects before executing handlers, which fixes the issue where trailing slash handling doesn't work with wildcard routes:Progressive Locale Code Truncation
The
normalizeLanguagefunction in the language middleware now supports RFC 4647 Lookup-based progressive truncation. Locale codes likeja-JPwill matchjawhen only the base language is insupportedLanguages:Thanks @sorafujitani!
exportsField forExecutionContextThe
ExecutionContexttype now includes anexportsproperty for Cloudflare Workers. You can use module augmentation to type it with Wrangler's generated types:Thanks @toreis-up!
Performance Improvements
TrieRouter 1.5x ~ 2.0x Faster
The TrieRouter has been significantly optimized with reduced spread syntax usage, O(1)
hasChildrenchecks, lazy regular expression generation, and removal of redundant processes:GET /userGET /user/lookup/username/heyGET /static/index.htmlThanks @EdamAme-x!
Fast Path for
c.json()c.json()now has the same fast path optimization asc.text(). When no custom status, headers, or finalized state exists, the Response is created directly without allocating aHeadersobject:Benchmark results:
Thanks @mgcrea!
New features
ApplyGlobalResponsetype helper for RPC Client #4556alwaysRedirectoption to support wildcard routes #4658Performance
createResponseInstancefor new Response #4733All changes
ApplyGlobalResponsetype helper for RPC Client by @mohankumarelec in #4556alwaysRedirectoption to support wildcard routes by @yusukebe in #4658createResponseInstancefor new Response by @yusukebe in #4733New Contributors
Full Changelog: honojs/hono@v4.11.10...v4.12.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.