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() })