-
-
Notifications
You must be signed in to change notification settings - Fork 624
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(hono-base): add replaceRequest
option for app.mount
#2852
Conversation
Hey @usualoma ! What do you think about this feature? |
Or, I've created the Mounting Helper: const app = new Hono()
app.all(
'/sub-app/*',
toHandler(subApp.handle, {
basePath: '/sub-app',
})
) This is interesting since the sub-app will act as a handler. It can be separated from But I've noticed this is redundant. |
Or simply, it is okay to be app.mount('/sub-app', subApp.handle, {
rewritePath: false,
}) |
@usualoma Sorry for pinging again! In summary, there are three ways to resolve #2781.
What do you think about it? |
@yusukebe Sorry, I missed it. I will check now. |
@yusukebe
Here, when The following. |
hey @usualoma, I sent an email for you, so could you see? it's about hono |
rewritePath
option for app.mount
replaceRequest
option for app.mount
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2852 +/- ##
==========================================
+ Coverage 87.88% 87.91% +0.03%
==========================================
Files 139 139
Lines 14208 14244 +36
Branches 2228 2258 +30
==========================================
+ Hits 12486 12522 +36
Misses 1722 1722 ☔ View full report in Codecov by Sentry. |
Thank you for the suggestion and the PR! |
@yusukebe
|
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [hono](https://hono.dev/) ([source](https://github.com/honojs/hono)) | [`4.4.0` -> `4.4.4`](https://renovatebot.com/diffs/npm/hono/4.4.0/4.4.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/hono/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/hono/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/hono/4.4.0/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/hono/4.4.0/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>honojs/hono (hono)</summary> ### [`v4.4.4`](https://github.com/honojs/hono/releases/tag/v4.4.4) [Compare Source](https://github.com/honojs/hono/compare/v4.4.3...v4.4.4) ##### What's Changed - fix(typo): Fix typo in request.test.ts by [@​yasuaki640](https://github.com/yasuaki640) in [https://github.com/honojs/hono/pull/2899](https://github.com/honojs/hono/pull/2899) - feat(hono-base): skip import HTTPException by using HTTPResponseError by [@​usualoma](https://github.com/usualoma) in [https://github.com/honojs/hono/pull/2898](https://github.com/honojs/hono/pull/2898) - chore: improve unfinalized response error by [@​Cherry](https://github.com/Cherry) in [https://github.com/honojs/hono/pull/2902](https://github.com/honojs/hono/pull/2902) - chore: create .gitpod.yml by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2868](https://github.com/honojs/hono/pull/2868) - fix(cloudflare-workers): export getConnInfo() by [@​ryuapp](https://github.com/ryuapp) in [https://github.com/honojs/hono/pull/2906](https://github.com/honojs/hono/pull/2906) - fix(hono-base): return 404 if lacking response in a single sync handler by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2909](https://github.com/honojs/hono/pull/2909) - refactor: remove `Prettify` as duplicated with `Simplify` by [@​NamesMT](https://github.com/NamesMT) in [https://github.com/honojs/hono/pull/2914](https://github.com/honojs/hono/pull/2914) - fix(types): [#​2912](https://github.com/honojs/hono/issues/2912): interfaces array's respond typed as `never` by [@​NamesMT](https://github.com/NamesMT) in [https://github.com/honojs/hono/pull/2915](https://github.com/honojs/hono/pull/2915) - feat(context): `c.redirect()` supports `TypedResponse` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2908](https://github.com/honojs/hono/pull/2908) - feat(jsx): support htmlfor attribute alias by [@​akira-tsuno](https://github.com/akira-tsuno) in [https://github.com/honojs/hono/pull/2916](https://github.com/honojs/hono/pull/2916) - fix(filepath): allow suffix includes `-` and `_` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2910](https://github.com/honojs/hono/pull/2910) - fix(types): add `_` prefix to `TypedResponse` properties by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2917](https://github.com/honojs/hono/pull/2917) - fix(types): `SimplifyDeepArray` should now actually be "deep" by [@​NamesMT](https://github.com/NamesMT) in [https://github.com/honojs/hono/pull/2920](https://github.com/honojs/hono/pull/2920) - refactor(middleware/serve-static): call getContent only once if the file does not exist by [@​usualoma](https://github.com/usualoma) in [https://github.com/honojs/hono/pull/2922](https://github.com/honojs/hono/pull/2922) - chore: add `text` and `html` for coverage reporter by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2923](https://github.com/honojs/hono/pull/2923) - refactor(conninfo): create `types.ts` for type definitions by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2924](https://github.com/honojs/hono/pull/2924) ##### New Contributors - [@​yasuaki640](https://github.com/yasuaki640) made their first contribution in [https://github.com/honojs/hono/pull/2899](https://github.com/honojs/hono/pull/2899) - [@​Cherry](https://github.com/Cherry) made their first contribution in [https://github.com/honojs/hono/pull/2902](https://github.com/honojs/hono/pull/2902) - [@​akira-tsuno](https://github.com/akira-tsuno) made their first contribution in [https://github.com/honojs/hono/pull/2916](https://github.com/honojs/hono/pull/2916) **Full Changelog**: honojs/hono@v4.4.3...v4.4.4 ### [`v4.4.3`](https://github.com/honojs/hono/releases/tag/v4.4.3) [Compare Source](https://github.com/honojs/hono/compare/v4.4.2...v4.4.3) ##### What's Changed - ci: Update workflow name of release.yml by [@​siguici](https://github.com/siguici) in [https://github.com/honojs/hono/pull/2874](https://github.com/honojs/hono/pull/2874) - refactor: removed unnecessary line by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2869](https://github.com/honojs/hono/pull/2869) - ci: change name of workflow jobs by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2875](https://github.com/honojs/hono/pull/2875) - docs(jsdoc): add jsdoc of some modules by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2836](https://github.com/honojs/hono/pull/2836) - ci: Report coverage with CodeCov by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2862](https://github.com/honojs/hono/pull/2862) - docs: update readme and migrate guide for migrating `deno.land/x` to JSR by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2879](https://github.com/honojs/hono/pull/2879) - chore: add coverage badge to README by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2881](https://github.com/honojs/hono/pull/2881) - fix(websocket): the onopen event cannot be triggered during delayed operations in deno by [@​JetLua](https://github.com/JetLua) in [https://github.com/honojs/hono/pull/2864](https://github.com/honojs/hono/pull/2864) - fix(cloudflare-workers): Update websocket.ts to return 101 status code by [@​ronkeiser](https://github.com/ronkeiser) in [https://github.com/honojs/hono/pull/2886](https://github.com/honojs/hono/pull/2886) - test(workerd): rename the runtime test `wrangler` to `workerd` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2888](https://github.com/honojs/hono/pull/2888) - test(workerd): add tests for WebSocket by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2891](https://github.com/honojs/hono/pull/2891) - refactor(aws-lambda): merge custom-context into types by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2889](https://github.com/honojs/hono/pull/2889) - chore: Exclude type-only files from coverage by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2890](https://github.com/honojs/hono/pull/2890) - test(presets): add tests for `hono/quick` and `hono/tiny` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2892](https://github.com/honojs/hono/pull/2892) - fix(types): fix typo for unofficial status code type by [@​ryuapp](https://github.com/ryuapp) in [https://github.com/honojs/hono/pull/2894](https://github.com/honojs/hono/pull/2894) - feat(hono-base): add `replaceRequest` option for `app.mount` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/2852](https://github.com/honojs/hono/pull/2852) ##### New Contributors - [@​siguici](https://github.com/siguici) made their first contribution in [https://github.com/honojs/hono/pull/2874](https://github.com/honojs/hono/pull/2874) - [@​JetLua](https://github.com/JetLua) made their first contribution in [https://github.com/honojs/hono/pull/2864](https://github.com/honojs/hono/pull/2864) - [@​ronkeiser](https://github.com/ronkeiser) made their first contribution in [https://github.com/honojs/hono/pull/2886](https://github.com/honojs/hono/pull/2886) **Full Changelog**: honojs/hono@v4.4.2...v4.4.3 ### [`v4.4.2`](https://github.com/honojs/hono/releases/tag/v4.4.2) [Compare Source](https://github.com/honojs/hono/compare/v4.4.1...v4.4.2) #### What's Changed - fix: add return types of void function by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2870](https://github.com/honojs/hono/pull/2870) **Full Changelog**: honojs/hono@v4.4.1...v4.4.2 ### [`v4.4.1`](https://github.com/honojs/hono/releases/tag/v4.4.1) [Compare Source](https://github.com/honojs/hono/compare/v4.4.0...v4.4.1) #### What's Changed - refactor(pretty-json): remove useless condition by [@​6km](https://github.com/6km) in [https://github.com/honojs/hono/pull/2815](https://github.com/honojs/hono/pull/2815) - fix(aws-lambda): Update handler.ts getQueryString by [@​qualipsolutions](https://github.com/qualipsolutions) in [https://github.com/honojs/hono/pull/2782](https://github.com/honojs/hono/pull/2782) - refactor(aws-lambda): Object.hasOwn is recommended by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2831](https://github.com/honojs/hono/pull/2831) - fix(client): allow multiple files on the same key in form by [@​olivier-drieux](https://github.com/olivier-drieux) in [https://github.com/honojs/hono/pull/2791](https://github.com/honojs/hono/pull/2791) - fix(helper/ssg): fix bug of joinPaths by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2809](https://github.com/honojs/hono/pull/2809) - chore: Author should include JSDoc by [@​fzn0x](https://github.com/fzn0x) in [https://github.com/honojs/hono/pull/2840](https://github.com/honojs/hono/pull/2840) - fix(middleware/body-limit): set default duplex option for readable stream by [@​fzn0x](https://github.com/fzn0x) in [https://github.com/honojs/hono/pull/2837](https://github.com/honojs/hono/pull/2837) - refactor(websocket): remove unused condition by [@​fzn0x](https://github.com/fzn0x) in [https://github.com/honojs/hono/pull/2839](https://github.com/honojs/hono/pull/2839) - feat(bun): WebSocket helper supports that env be `{ server: server }` by [@​nakasyou](https://github.com/nakasyou) in [https://github.com/honojs/hono/pull/2812](https://github.com/honojs/hono/pull/2812) - refactor: added paths-ignore for ignore files of dont need tests by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2850](https://github.com/honojs/hono/pull/2850) - ci: include node22 tests by [@​Jayllyz](https://github.com/Jayllyz) in [https://github.com/honojs/hono/pull/2851](https://github.com/honojs/hono/pull/2851) - docs(src/\*): Add TSDoc comments to improve code documentation by [@​fzn0x](https://github.com/fzn0x) in [https://github.com/honojs/hono/pull/2841](https://github.com/honojs/hono/pull/2841) - fix(types): allow blank env by [@​fzn0x](https://github.com/fzn0x) in [https://github.com/honojs/hono/pull/2834](https://github.com/honojs/hono/pull/2834) - refactor: removed v4 branch in actions. by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2849](https://github.com/honojs/hono/pull/2849) - refactor(helper/adapter): improve runtime detection by [@​6km](https://github.com/6km) in [https://github.com/honojs/hono/pull/2846](https://github.com/honojs/hono/pull/2846) - fix(jsx/dom): Fixed to not add "px" for certain properties, even if numeric value is given by [@​usualoma](https://github.com/usualoma) in [https://github.com/honojs/hono/pull/2845](https://github.com/honojs/hono/pull/2845) - refactor(aws-lambda): remove unused setHeadersToResult by [@​exoego](https://github.com/exoego) in [https://github.com/honojs/hono/pull/2828](https://github.com/honojs/hono/pull/2828) - fix(validator): support json api header by [@​dil-borosz](https://github.com/dil-borosz) in [https://github.com/honojs/hono/pull/2855](https://github.com/honojs/hono/pull/2855) - refactor(helper/testing): remove some any of helper/testing by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2833](https://github.com/honojs/hono/pull/2833) - docs: change to shell highlight by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/2848](https://github.com/honojs/hono/pull/2848) - refactor(compose): Remove type definition of ComposeContext that was defined twice by [@​chimame](https://github.com/chimame) in [https://github.com/honojs/hono/pull/2858](https://github.com/honojs/hono/pull/2858) #### New Contributors - [@​6km](https://github.com/6km) made their first contribution in [https://github.com/honojs/hono/pull/2815](https://github.com/honojs/hono/pull/2815) - [@​qualipsolutions](https://github.com/qualipsolutions) made their first contribution in [https://github.com/honojs/hono/pull/2782](https://github.com/honojs/hono/pull/2782) - [@​olivier-drieux](https://github.com/olivier-drieux) made their first contribution in [https://github.com/honojs/hono/pull/2791](https://github.com/honojs/hono/pull/2791) - [@​Jayllyz](https://github.com/Jayllyz) made their first contribution in [https://github.com/honojs/hono/pull/2851](https://github.com/honojs/hono/pull/2851) - [@​dil-borosz](https://github.com/dil-borosz) made their first contribution in [https://github.com/honojs/hono/pull/2855](https://github.com/honojs/hono/pull/2855) - [@​chimame](https://github.com/chimame) made their first contribution in [https://github.com/honojs/hono/pull/2858](https://github.com/honojs/hono/pull/2858) **Full Changelog**: honojs/hono@v4.4.0...v4.4.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Chicago, 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/autoblocksai/cli). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Resolves #2781
This PR introduces the
rewritePath
option toapp.mount()
. With the current spec, if you useapp.mount()
, the path to pass to your mounted application will be changed. The base path will be removed.If you access
/sub-app/hello/foo
, the subApp receives/hello/foo
. This is good behavior for some apps, but it's bad for some apps like #2781.With the
rewritePath
option, you can specify the path to pass to the sub-application. If you don't want to remove the base path, you can write the following:The pain point
The logic will be a little bit complex. As for this, the application size will be slightly increased. Eitherway, I think we can reduce the size in other places.
The author should do the following, if applicable
bun run format:fix && bun run lint:fix
to format the code