UNPKG

hono

Version:

Web framework built on Web Standards

56 lines (55 loc) 1.36 kB
// src/helper/adapter/index.ts var env = (c, runtime) => { const global = globalThis; const globalEnv = global?.process?.env; runtime ??= getRuntimeKey(); const runtimeEnvHandlers = { bun: () => globalEnv, node: () => globalEnv, "edge-light": () => globalEnv, deno: () => { return Deno.env.toObject(); }, workerd: () => c.env, fastly: () => ({}), other: () => ({}) }; return runtimeEnvHandlers[runtime](); }; var knownUserAgents = { deno: "Deno", bun: "Bun", workerd: "Cloudflare-Workers", node: "Node.js" }; var getRuntimeKey = () => { const global = globalThis; const userAgentSupported = typeof navigator !== "undefined" && typeof navigator.userAgent === "string"; if (userAgentSupported) { for (const [runtimeKey, userAgent] of Object.entries(knownUserAgents)) { if (checkUserAgentEquals(userAgent)) { return runtimeKey; } } } if (typeof global?.EdgeRuntime === "string") { return "edge-light"; } if (global?.fastly !== void 0) { return "fastly"; } if (global?.process?.release?.name === "node") { return "node"; } return "other"; }; var checkUserAgentEquals = (platform) => { const userAgent = navigator.userAgent; return userAgent.startsWith(platform); }; export { checkUserAgentEquals, env, getRuntimeKey, knownUserAgents };