Utilitaire Adapter
L’utilitaire Adapter permet d’interagir facilement avec différentes plateformes au moyen d’une interface unifiée.
Importation
import { Hono } from 'hono'
import { env, getRuntimeKey } from 'hono/adapter'env()
La fonction env() facilite la récupération des variables d’environnement dans différents environnements d’exécution, au-delà des seules liaisons de Cloudflare Workers. Les valeurs accessibles avec env(c) peuvent varier d’un environnement d’exécution à l’autre.
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)
})Environnements d’exécution, plateformes serverless et services cloud pris en charge :
- Cloudflare Workers
wrangler.tomlwrangler.jsonc
- Deno
Deno.env- Fichier
.env
- Bun
Bun.envprocess.env
- Node.js
process.env
- Vercel
- AWS Lambda
- Lambda@Edge
Les variables d’environnement de Lambda ne sont pas prises en charge par Lambda@Edge ; vous devez utiliser un événement Lambda@Edge à la place. - Fastly Compute
Sur Fastly Compute, vous pouvez utiliser ConfigStore pour gérer les données définies par l’utilisateur. - Netlify
Sur Netlify, vous pouvez utiliser les contextes Netlify pour gérer les données définies par l’utilisateur.
Spécifier l’environnement d’exécution
Vous pouvez spécifier l’environnement d’exécution dont vous souhaitez récupérer les variables d’environnement en passant sa clé comme deuxième argument.
app.get('/env', (c) => {
const { NAME } = env<{ NAME: string }>(c, 'workerd')
return c.text(NAME)
})getRuntimeKey()
La fonction getRuntimeKey() renvoie l’identifiant de l’environnement d’exécution actuel.
app.get('/', (c) => {
if (getRuntimeKey() === 'workerd') {
return c.text('You are on Cloudflare')
} else if (getRuntimeKey() === 'bun') {
return c.text('You are on Bun')
}
...
})Clés des environnements d’exécution disponibles
Voici les clés disponibles. Les environnements d’exécution qui n’ont pas de clé répertoriée peuvent être pris en charge et identifiés par other. Certaines clés s’inspirent des clés d’environnement d’exécution de WinterCG :
workerd- Cloudflare Workersdenobunnodeedge-light- Vercel Edge Functionsfastly- Fastly Computeother- Autres environnements d’exécution inconnus