sverklo
D
Overall Health
honojs/hono
https://github.com/honojs/hono
2026-04-19 00:07:02
C
Dead code
21% orphan symbols (171/813)
C
Circular deps
5 cycles detected
F
Coupling
max fan-in: 55 (src/hono.ts)
F
Security
23 concerns found

Overview

  • 388 files indexed
  • 1839 code symbols extracted
  • 9920 symbol references tracked
  • 0 active memories (0 core, 0 stale)
  • Languages: typescript (382), javascript (6)

God Nodes (most-referenced symbols)

These are the symbols your codebase depends on most. Changes here have the largest blast radius.

  • Hono — 126 references
  • Expected — 118 references
  • Response — 106 references
  • res — 100 references
  • Component — 56 references
  • key — 45 references
  • Node — 45 references
  • Context — 38 references
  • bearerAuth — 35 references
  • parseAccept — 32 references

Hub Files (highest PageRank)

Core architectural files — imported by many others.

  • src/hono.ts (1.00)
  • src/utils/html.ts (0.78)
  • src/utils/url.ts (0.70)
  • src/http-exception.ts (0.61)
  • src/context.ts (0.59)
  • src/jsx/constants.ts (0.54)
  • src/request.ts (0.53)
  • src/router.ts (0.48)
  • benchmarks/routers/src/tool.mts (0.43)
  • src/utils/encode.ts (0.39)

Orphans (potential dead code)

Named functions with zero detected references. Could be dead code, public API exports, or referenced dynamically.

  • toURLBase64src/utils/encode.test.ts:3
  • makeResponseHeaderImmutablesrc/context.test.ts:4
  • buildRequestInitsrc/middleware/body-limit/index.test.ts:4
  • namedMiddlewaresrc/helper/dev/index.test.ts:6
  • createTestAppsrc/middleware/language/index.test.ts:6
  • str2UInt8Arraysrc/utils/encode.test.ts:6
  • ExpectedErrorsrc/compose.test.ts:8
  • RequestUrlsrc/middleware/jsx-renderer/index.test.tsx:9
  • buildMiddlewareTuplesrc/compose.test.ts:10
  • toStringsrc/helper/css/index.test.tsx:12

Coupling (high-PageRank files)

  • src/hono.ts (1.00)
  • src/utils/html.ts (0.78)
  • src/utils/url.ts (0.70)
  • src/http-exception.ts (0.61)
  • src/context.ts (0.59)

Circular Dependencies (5 cycles)

  1. src/request.ts -> src/utils/body.ts -> src/request.ts
  2. src/jsx/base.ts -> src/jsx/context.ts -> src/jsx/base.ts
  3. src/jsx/context.ts -> src/jsx/dom/context.ts -> src/jsx/context.ts
  4. src/jsx/dom/render.ts -> src/jsx/hooks/index.ts -> src/jsx/dom/render.ts
  5. src/jsx/components.ts -> src/jsx/streaming.ts -> src/jsx/components.ts

Security Issues (23 found)

Critical (22)

  • Hardcoded secretruntime-tests/deno/middleware.test.tsx:16
  • const password = 'ahotproject'
  • Hardcoded secretruntime-tests/fastly/index.test.ts:45
  • const password = 'hono-password-a'
  • Hardcoded secretsrc/middleware/bearer-auth/index.test.ts:13
  • token = 'abcdefg12345-._~+/='
  • Hardcoded secretsrc/utils/basic-auth.test.ts:34
  • expect(res).toEqual({ username: 'username', password: 'password' })
  • Hardcoded secretruntime-tests/fastly/index.test.ts:68
  • const password = 'hono-password-a'
  • Hardcoded secretsrc/helper/cookie/index.test.ts:62
  • const secret = 'secret lucky charm'
  • Hardcoded secretsrc/helper/cookie/index.test.ts:77
  • const secret = 'secret lucky charm'
  • Hardcoded secretsrc/utils/cookie.test.ts:105
  • const secret = 'secret ingredient'
  • Hardcoded secretsrc/utils/cookie.test.ts:125
  • const secret = 'secret ingredient'
  • Hardcoded secretsrc/utils/cookie.test.ts:132
  • const secret = 'secret ingredient'
  • ...and 12 more

High (1)

  • eval() usagesrc/router/reg-exp-router/prepared-router.test.ts:40
  • const params = eval(serialized) as ConstructorParameters<typeof PreparedRegExpRouter<T>>

Suggested Next Steps

  • Before refactoring Hono, run sverklo_impact to see the 126 call sites
  • src/hono.ts is your most-imported file — changes here cascade widely
  • 15+ potential orphans detected — audit for dead code