mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-15 15:26:59 +10:00
50ba37a27f
* chore(release): v5.1.0 * feat: implement resume thumbnails * fix: remove unused mcp tools * docs: fix formatting of docs
33 lines
833 B
TypeScript
33 lines
833 B
TypeScript
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
import { drizzle } from "drizzle-orm/node-postgres";
|
|
import { Pool } from "pg";
|
|
import { env } from "@reactive-resume/env/server";
|
|
import { relations } from "./relations";
|
|
import * as schema from "./schema";
|
|
|
|
declare global {
|
|
var __pool: Pool | undefined;
|
|
var __drizzle: NodePgDatabase<typeof schema> | undefined;
|
|
}
|
|
|
|
function getPool() {
|
|
if (!globalThis.__pool) {
|
|
globalThis.__pool = new Pool({ connectionString: env.DATABASE_URL });
|
|
}
|
|
return globalThis.__pool;
|
|
}
|
|
|
|
function makeDrizzleClient() {
|
|
const pool = getPool();
|
|
return drizzle({ client: pool, schema, relations });
|
|
}
|
|
|
|
export function createDatabase() {
|
|
if (!globalThis.__drizzle) {
|
|
globalThis.__drizzle = makeDrizzleClient();
|
|
}
|
|
return globalThis.__drizzle;
|
|
}
|
|
|
|
export const db = createDatabase();
|