Files
fullstack-starter/src/server/plugins/shutdown.ts
T
imbytecat d15b22ad1b refactor(db): 去掉 lazy singleton,改为模块级 const db
getDB/closeDB + 可空单例是 Cloudflare Workers 场景的模式——每个请求独
立上下文、不允许模块加载期副作用。在 Bun 单进程长驻服务下这些都是冗余
的仪式,徒增心智。

改为模块级 const db:
- src/server/db/index.ts 直接 export drizzle(...) 实例
- shutdown 插件用 db.$client.end() 收尾
- db.middleware.ts 跟随内部重命名以避免同名遮蔽(本身的去留放到下一
  次提交)
2026-04-24 20:36:16 +08:00

23 lines
377 B
TypeScript

import { db } from '@/server/db'
export default () => {
if (import.meta.dev) return
let exiting = false
const shutdown = async () => {
if (exiting) {
process.exit(0)
}
exiting = true
setTimeout(async () => {
await db.$client.end()
process.exit(0)
}, 500)
}
process.on('SIGINT', shutdown)
process.on('SIGTERM', shutdown)
}