Compare commits

...

2 Commits

3 changed files with 35 additions and 7 deletions
+11 -6
View File
@@ -10,11 +10,16 @@ export const createDB = () =>
export type DB = ReturnType<typeof createDB> export type DB = ReturnType<typeof createDB>
export const getDB = (() => { let _db: DB | null = null
let db: DB | null = null
return (): DB => { export const getDB = (): DB => {
db ??= createDB() _db ??= createDB()
return db return _db
}
export const closeDB = async () => {
if (_db) {
await _db.$client.end()
_db = null
}
} }
})()
+23
View File
@@ -0,0 +1,23 @@
import { closeDB } from '@/server/db'
export default () => {
if (import.meta.dev) return
let exiting = false
const shutdown = async () => {
if (exiting) {
process.exit(0)
}
exiting = true
// Brief delay to let srvx close the HTTP server first
setTimeout(async () => {
await closeDB()
process.exit(0)
}, 500)
}
process.on('SIGINT', shutdown)
process.on('SIGTERM', shutdown)
}
+1 -1
View File
@@ -15,7 +15,7 @@ export default defineConfig({
nitro({ nitro({
preset: 'bun', preset: 'bun',
serveStatic: 'inline', serveStatic: 'inline',
plugins: ['./src/server/plugins/migrate.ts'], plugins: ['./src/server/plugins/migrate.ts', './src/server/plugins/shutdown.ts'],
}), }),
], ],
resolve: { resolve: {