forked from imbytecat/fullstack-starter
28 lines
502 B
TypeScript
28 lines
502 B
TypeScript
import { drizzle } from 'drizzle-orm/postgres-js'
|
|
import * as schema from '@/db/schema'
|
|
import { env } from '@/env'
|
|
|
|
export const createDb = () =>
|
|
drizzle({
|
|
connection: {
|
|
url: env.DATABASE_URL,
|
|
prepare: true,
|
|
},
|
|
schema,
|
|
})
|
|
|
|
export type Db = ReturnType<typeof createDb>
|
|
|
|
export const getDb = (() => {
|
|
let db: Db | null = null
|
|
|
|
return (serverless: boolean = false): Db => {
|
|
if (serverless) {
|
|
return createDb()
|
|
}
|
|
|
|
db ??= createDb()
|
|
return db
|
|
}
|
|
})()
|