db

Connect your database so every request can use it.

BackendServer

Every export of kitr/db, read from the published type definitions. The guide shows them in use.

kitr/db

defineDb

function defineDb<T>(definition: DbDefinition<T>): DbDefinition<T>;

useDb

function useDb<T>(app: KitrApp): T;

Typed access: const db = useDb<AppDb>(app).

dbProvider

const dbProvider: KitrProvider;

Binds db from config/db.ts. Connects on boot, disconnects on shutdown.

defineConfig

const defineConfig: <const C extends DbDefinition<any>>(config: C) => C;

DbDefinition

interface DbDefinition<T> {
  connect: (app: KitrApp) => T | Promise<T>;
  disconnect?: (db: T, app: KitrApp) => void | Promise<void>;
  /** Run on `ready` (e.g. pending migrations check). */
  onReady?: (db: T, app: KitrApp) => void | Promise<void>;
}

kitr ships no ORM. defineDb binds whatever you use (Drizzle, Prisma, Kysely, a raw pool) as db in the container with connect/disconnect in the lifecycle.

// config/db.ts
export default defineDb({ connect: () => drizzle(process.env.DATABASE_URL!), disconnect: (db) => db.$client.end() })