INNER CODE UNIT · TypeScript

buildApp

im4codes/imcodes · server/src/index.ts:95

export function buildApp(env: Env) {
  const app = new Hono<{ Bindings: Env }>();

  // Inject env into every request context
  app.use('*', async (c, next) => {
    if (!c.env) (c as unknown as { env: Env }).env = {} as Env;
    Object.assign(c.env, env);
    await next();
  });

  // Extract real client IP.
  // Priority: REAL_IP_HEADER (CDN-injected, default cf-connecting-ip) → XFF via trusted proxies → socket IP.
  // Runs once per request; routes read c.get('clientIp') — never raw headers.
  const realIpHeader = env.REAL_IP_HEADER ?? 'cf-connecting-ip';
  const originalHostHeader = env.ORIGINAL_HOST_HEADER ?? 'x-original-host';
  const trust = proxyAddr.compile(
    env.TRUSTED_PROXIES
      ? env.TRUSTED_PROXIES.split(',').map((s) => s.trim()).filter(Boolean)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…