diff --git a/src/server/api/middlewares/db.middleware.ts b/src/server/api/middlewares/db.middleware.ts index d57afd2..77d5f9b 100644 --- a/src/server/api/middlewares/db.middleware.ts +++ b/src/server/api/middlewares/db.middleware.ts @@ -1,11 +1,11 @@ import { os } from '@/server/api/server' -import { getDB } from '@/server/db' +import { db as dbSingleton } from '@/server/db' -export const db = os.middleware(async ({ context, next }) => { - return next({ +export const db = os.middleware(async ({ context, next }) => + next({ context: { ...context, - db: getDB(), + db: dbSingleton, }, - }) -}) + }), +) diff --git a/src/server/db/index.ts b/src/server/db/index.ts index ea564c2..14db5da 100644 --- a/src/server/db/index.ts +++ b/src/server/db/index.ts @@ -2,24 +2,9 @@ import { drizzle } from 'drizzle-orm/postgres-js' import { env } from '@/env' import * as schema from '@/server/db/schema' -export const createDB = () => - drizzle({ - connection: env.DATABASE_URL, - schema, - }) +export const db = drizzle({ + connection: env.DATABASE_URL, + schema, +}) -export type DB = ReturnType - -let _db: DB | null = null - -export const getDB = (): DB => { - _db ??= createDB() - return _db -} - -export const closeDB = async () => { - if (_db) { - await _db.$client.end() - _db = null - } -} +export type DB = typeof db diff --git a/src/server/plugins/shutdown.ts b/src/server/plugins/shutdown.ts index 3e5d0cf..b402e5a 100644 --- a/src/server/plugins/shutdown.ts +++ b/src/server/plugins/shutdown.ts @@ -1,4 +1,4 @@ -import { closeDB } from '@/server/db' +import { db } from '@/server/db' export default () => { if (import.meta.dev) return @@ -11,9 +11,8 @@ export default () => { } exiting = true - // Brief delay to let srvx close the HTTP server first setTimeout(async () => { - await closeDB() + await db.$client.end() process.exit(0) }, 500) }