Core Concepts

Typed API Runtime Flow

Follow the exact request lifecycle from incoming `/api/*` call to router execution and serialized response.

Updated: 2026-03-04

Entrypoint Discovery

Runtime scans for `app/api/typed.ts` (and JS/TSX variants). If file is missing, typed API handling is skipped.

Path + Method Resolution

  • Request path candidates include both raw path and `/api`-stripped path.
  • Router checks matching procedure by normalized method (`get`/`post`).
  • No method match with existing route map returns 405.
  • No route match returns not-found and allows fallback.

Body Parsing Rules

  • `application/json` and `+json` parse into objects.
  • `application/x-www-form-urlencoded` parses via `URLSearchParams`.
  • `text/*` returns UTF-8 string.
  • Other content types return Buffer payload.

Context and Environment Factories

typed entrypoint optional exports

ts
export async function createContext({ req, res }) {
  return { userId: req.headers['x-user-id'] ?? null };
}

export function createEnv() {
  return { mode: process.env.NODE_ENV ?? 'development' };
}

Error Mapping

  • Validation and method errors map to 4xx responses with message.
  • Body size violations map to 413.
  • Unhandled runtime errors map to 500.
  • Router-level error handler can return custom `Response` for central handling.