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 - 所有请求都包含的上下文
|
* 基础 Context - 所有请求都包含的上下文
|
||||||
@@ -11,7 +11,7 @@ export interface BaseContext {
|
|||||||
* 数据库 Context - 通过 db middleware 扩展
|
* 数据库 Context - 通过 db middleware 扩展
|
||||||
*/
|
*/
|
||||||
export interface DBContext extends BaseContext {
|
export interface DBContext extends BaseContext {
|
||||||
db: Database
|
db: DB
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { os } from '@orpc/server'
|
import { os } from '@orpc/server'
|
||||||
import { getDb } from '@/server/db'
|
import { getDB } from '@/server/db'
|
||||||
|
|
||||||
export const db = os.middleware(async ({ context, next }) => {
|
export const db = os.middleware(async ({ context, next }) => {
|
||||||
return next({
|
return next({
|
||||||
context: {
|
context: {
|
||||||
...context,
|
...context,
|
||||||
db: getDb(),
|
db: getDB(),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { drizzle } from 'drizzle-orm/postgres-js'
|
|||||||
import { env } from '@/env'
|
import { env } from '@/env'
|
||||||
import * as schema from '@/server/db/schema'
|
import * as schema from '@/server/db/schema'
|
||||||
|
|
||||||
export const createDb = () =>
|
export const createDB = () =>
|
||||||
drizzle({
|
drizzle({
|
||||||
connection: {
|
connection: {
|
||||||
url: env.DATABASE_URL,
|
url: env.DATABASE_URL,
|
||||||
@@ -11,17 +11,17 @@ export const createDb = () =>
|
|||||||
schema,
|
schema,
|
||||||
})
|
})
|
||||||
|
|
||||||
export type Database = ReturnType<typeof createDb>
|
export type DB = ReturnType<typeof createDB>
|
||||||
|
|
||||||
export const getDb = (() => {
|
export const getDB = (() => {
|
||||||
let db: Database | null = null
|
let db: DB | null = null
|
||||||
|
|
||||||
return (singleton = true): Database => {
|
return (singleton = true): DB => {
|
||||||
if (!singleton) {
|
if (!singleton) {
|
||||||
return createDb()
|
return createDB()
|
||||||
}
|
}
|
||||||
|
|
||||||
db ??= createDb()
|
db ??= createDB()
|
||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
|
|||||||
Reference in New Issue
Block a user