import { Database } from "bun:sqlite"; import { isAuthEnabled } from "../../atproto/env.ts"; import { initSchema } from "./schema.ts"; import { seedIfEmpty } from "./seed.ts"; const DB_PATH = process.env["DB_PATH"] ?? "lichen.db"; let db: Database | null = null; export function getDb(): Database { if (!db) { db = new Database(DB_PATH); initSchema(db); // Auto-seed dev databases. Tests use :memory: and manage their own state. if (!isAuthEnabled() && DB_PATH !== ":memory:") seedIfEmpty(db); } return db; }