import { createClient } from "@libsql/client"; import { drizzle } from "drizzle-orm/libsql"; import * as schema from "./schema"; let _db: ReturnType | null = null; export function getDb() { if (_db) return _db; const url = ( process.env.TURSO_DATABASE_URL || (typeof import.meta !== "undefined" && (import.meta as any).env?.TURSO_DATABASE_URL) || "" ).trim(); const authToken = ( process.env.TURSO_AUTH_TOKEN || (typeof import.meta !== "undefined" && (import.meta as any).env?.TURSO_AUTH_TOKEN) || "" ).trim(); if (!url) { throw new Error( "TURSO_DATABASE_URL is required. Set it in your .env to a Turso database URL.\n" + "Example: TURSO_DATABASE_URL=libsql://your-db-name-your-org.turso.io" ); } const client = createClient({ url, authToken: authToken || undefined, }); _db = drizzle(client, { schema }); return _db; } export * from "./schema";