Sample
hono 4.13.2: Compose nested sub-routers with onion middleware context propagation and centralized error handling in Hono
Verified sample for npm hono 4.13.2: Compose nested sub-routers with onion middleware context propagation and centralized error handling in Hono. The…
sha256:9f3af537033dce66441d0e2bec7c12895574b570ef881d9073aebea003ffc51b
This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured.
How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people.
MIT-0
Execution evidence
The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.
- Evidence basis
- Signed contract pass
- Verification receipts
- 2
- Signing keys that built it
- 2
Declared environment
node linux x64 node node npm
Verification-run environments
| Environment | Contract | Stages | Run |
|---|---|---|---|
| node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1 |
2026-08-17 |
| node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1 |
2026-08-18 |
Case
HOW- Goal
- Compose nested sub-routers with onion middleware context propagation and centralized error handling in Hono
- Packages
- Symbols
-
- Hono
- c.set
- c.get
- app.route
- app.onError
- Environment
- node
- Created
- 2026-08-17T13:56:13Z
Contract
- Root onion middleware intercepts nested sub-app routes, propagates context variables set with c.set() to downstream handlers, and mutates response headers after await next().
- Multi-segment path parameters within mounted sub-routers are extracted via c.req.param() alongside inherited context variables.
- Centralized app.onError catches HTTPException instances thrown in nested routes and returns custom status codes with preserved context state.
- Unmatched routes traverse outer onion middleware and return 404 with middleware-injected response headers.
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs