forked from imbytecat/fullstack-starter
refactor: 统一数据库相关命名规范并优化单例实现
- 统一使用DB类型别名替换Database类型定义 - 将 db 中间件中获取数据库实例的函数名从 getDb 改为 getDB 以保持命名一致性。 - 重命名数据库相关函数和类型以使用一致的命名规范,并确保单例模式正确返回数据库实例。
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import type { Database } from '@/server/db'
|
||||
import type { DB } from '@/server/db'
|
||||
|
||||
/**
|
||||
* 基础 Context - 所有请求都包含的上下文
|
||||
@@ -11,7 +11,7 @@ export interface BaseContext {
|
||||
* 数据库 Context - 通过 db middleware 扩展
|
||||
*/
|
||||
export interface DBContext extends BaseContext {
|
||||
db: Database
|
||||
db: DB
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { os } from '@orpc/server'
|
||||
import { getDb } from '@/server/db'
|
||||
import { getDB } from '@/server/db'
|
||||
|
||||
export const db = os.middleware(async ({ context, next }) => {
|
||||
return next({
|
||||
context: {
|
||||
...context,
|
||||
db: getDb(),
|
||||
db: getDB(),
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2,7 +2,7 @@ import { drizzle } from 'drizzle-orm/postgres-js'
|
||||
import { env } from '@/env'
|
||||
import * as schema from '@/server/db/schema'
|
||||
|
||||
export const createDb = () =>
|
||||
export const createDB = () =>
|
||||
drizzle({
|
||||
connection: {
|
||||
url: env.DATABASE_URL,
|
||||
@@ -11,17 +11,17 @@ export const createDb = () =>
|
||||
schema,
|
||||
})
|
||||
|
||||
export type Database = ReturnType<typeof createDb>
|
||||
export type DB = ReturnType<typeof createDB>
|
||||
|
||||
export const getDb = (() => {
|
||||
let db: Database | null = null
|
||||
export const getDB = (() => {
|
||||
let db: DB | null = null
|
||||
|
||||
return (singleton = true): Database => {
|
||||
return (singleton = true): DB => {
|
||||
if (!singleton) {
|
||||
return createDb()
|
||||
return createDB()
|
||||
}
|
||||
|
||||
db ??= createDb()
|
||||
db ??= createDB()
|
||||
return db
|
||||
}
|
||||
})()
|
||||
|
||||
Reference in New Issue
Block a user