مساعد `Adapter`

توفر الأداة المساعدة للمحول (Adapter Helper) طريقة سلسة للتفاعل مع المنصات المختلفة عبر واجهة موحدة.

Import

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

env()

الـ env() تسهل الدالة استرجاع متغيرات البيئة عبر أوقات تشغيل مختلفة، متجاوزةً ارتباطات Cloudflare Workers فقط. القيمة التي يمكن استرجاعها باستخدام env(c) قد يختلف لكل بيئة تشغيل (runtime).

import { env } from 'hono/adapter'

app.get('/env', (c) => {
  // NAME is process.env.NAME on Node.js or Bun
  // NAME is the value written in `wrangler.toml` on Cloudflare
  const { NAME } = env<{ NAME: string }>(c)
  return c.text(NAME)
})

بيئات التشغيل المدعومة والمنصات بلا خوادم (Serverless) والخدمات السحابية:

تحديد بيئة التشغيل

يمكنك تحديد بيئة التشغيل للحصول على متغيرات البيئة بتمرير مفتاح بيئة التشغيل كوسيطة ثانية.

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

getRuntimeKey()

الـ getRuntimeKey() تُعيد الدالة معرّف بيئة التشغيل (runtime) الحالية.

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، وبعضها مستوحى من مفاتيح Runtime الخاصة بـ WinterCG:

  • workerd - Cloudflare Workers
  • deno
  • bun
  • node
  • edge-light - دوال Vercel Edge
  • fastly - Fastly Compute
  • other - مفاتيح بيئات تشغيل أخرى غير معروفة