mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 23:01:09 +02:00
Applied formatting to 1487+ files using pnpm format:write - TypeScript/JavaScript files - Svelte components - Astro pages - JSON configs - Markdown docs 13 files still need manual review (Astro JSX comments)
33 lines
710 B
TypeScript
33 lines
710 B
TypeScript
import { drizzle } from 'drizzle-orm/postgres-js';
|
|
import postgres from 'postgres';
|
|
import * as schema from './schema';
|
|
|
|
let connection: ReturnType<typeof postgres> | null = null;
|
|
let db: ReturnType<typeof drizzle> | null = null;
|
|
|
|
export function getConnection(databaseUrl: string) {
|
|
if (!connection) {
|
|
connection = postgres(databaseUrl, {
|
|
max: 10,
|
|
idle_timeout: 20,
|
|
connect_timeout: 10,
|
|
});
|
|
}
|
|
return connection;
|
|
}
|
|
|
|
export function getDb(databaseUrl: string) {
|
|
if (!db) {
|
|
const conn = getConnection(databaseUrl);
|
|
db = drizzle(conn, { schema });
|
|
}
|
|
return db;
|
|
}
|
|
|
|
export async function closeConnection() {
|
|
if (connection) {
|
|
await connection.end();
|
|
connection = null;
|
|
db = null;
|
|
}
|
|
}
|