Skip to content

어댑터 헬퍼

어댑터 헬퍼는 다양한 플랫폼과 통합된 인터페이스를 통해 원활하게 상호작용할 수 있는 방법을 제공한다.

임포트

ts
import { Hono } from 'hono'
import { env, getRuntimeKey } from 'hono/adapter'

env()

env() 함수는 Cloudflare Workers의 바인딩을 넘어 다양한 런타임에서 환경 변수를 쉽게 가져올 수 있도록 도와준다. env(c)로 가져올 수 있는 값은 각 런타임마다 다를 수 있다.

ts
import { env } from 'hono/adapter'

app.get('/env', (c) => {
  // Node.js나 Bun에서는 process.env.NAME
  // Cloudflare에서는 `wrangler.toml`에 작성된 값
  const { NAME } = env<{ NAME: string }>(c)
  return c.text(NAME)
})

지원하는 런타임, 서버리스 플랫폼, 클라우드 서비스:

런타임 지정하기

환경 변수를 얻기 위해 두 번째 인자로 런타임 키를 전달하여 런타임을 지정할 수 있다.

ts
app.get('/env', (c) => {
  const { NAME } = env<{ NAME: string }>(c, 'workerd')
  return c.text(NAME)
})

getRuntimeKey()

getRuntimeKey() 함수는 현재 런타임의 식별자를 반환한다.

ts
app.get('/', (c) => {
  if (getRuntimeKey() === 'workerd') {
    return c.text('You are on Cloudflare')
  } else if (getRuntimeKey() === 'bun') {
    return c.text('You are on Bun')
  }
  ...
})

사용 가능한 런타임 키

다음은 사용 가능한 런타임 키 목록이다. 지원되지 않는 런타임 키는 other로 표시될 수 있으며, 일부는 WinterCG의 런타임 키에서 영감을 받았다.

  • workerd - Cloudflare Workers
  • deno
  • bun
  • node
  • edge-light - Vercel Edge Functions
  • fastly - Fastly Compute
  • other - 기타 알려지지 않은 런타임 키

Released under the MIT License.