From 0ddfe1a64deb8fa4e3ac747b67bb7ef1fb50cd25 Mon Sep 17 00:00:00 2001 From: Bereket Engida Date: Sun, 30 Nov 2025 13:44:11 -0800 Subject: [PATCH] refactor: replace DBPreservedModels with BaseModelNames --- packages/better-auth/src/db/with-hooks.ts | 16 ++++++---------- packages/core/src/db/index.ts | 3 ++- packages/core/src/db/type.ts | 18 ++++++------------ packages/core/src/types/context.ts | 5 ++--- packages/core/src/types/init-options.ts | 4 ++-- 5 files changed, 18 insertions(+), 28 deletions(-) diff --git a/packages/better-auth/src/db/with-hooks.ts b/packages/better-auth/src/db/with-hooks.ts index 07ca760e55..ac85370412 100644 --- a/packages/better-auth/src/db/with-hooks.ts +++ b/packages/better-auth/src/db/with-hooks.ts @@ -3,7 +3,7 @@ import { getCurrentAdapter, getCurrentAuthContext, } from "@better-auth/core/context"; -import type { DBPreservedModels } from "@better-auth/core/db"; +import type { BaseModelNames } from "@better-auth/core/db"; import type { DBAdapter, Where } from "@better-auth/core/db/adapter"; export function getWithHooks( @@ -14,13 +14,9 @@ export function getWithHooks( }, ) { const hooks = ctx.hooks; - type BaseModels = Extract< - DBPreservedModels, - "user" | "account" | "session" | "verification" - >; async function createWithHooks>( data: T, - model: BaseModels, + model: BaseModelNames, customCreateFn?: | { fn: (data: Record) => void | Promise; @@ -74,7 +70,7 @@ export function getWithHooks( async function updateWithHooks>( data: any, where: Where[], - model: BaseModels, + model: BaseModelNames, customUpdateFn?: | { fn: (data: Record) => void | Promise; @@ -129,7 +125,7 @@ export function getWithHooks( async function updateManyWithHooks>( data: any, where: Where[], - model: BaseModels, + model: BaseModelNames, customUpdateFn?: | { fn: (data: Record) => void | Promise; @@ -184,7 +180,7 @@ export function getWithHooks( async function deleteWithHooks>( where: Where[], - model: BaseModels, + model: BaseModelNames, customDeleteFn?: | { fn: (where: Where[]) => void | Promise; @@ -246,7 +242,7 @@ export function getWithHooks( async function deleteManyWithHooks>( where: Where[], - model: BaseModels, + model: BaseModelNames, customDeleteFn?: | { fn: (where: Where[]) => void | Promise; diff --git a/packages/core/src/db/index.ts b/packages/core/src/db/index.ts index f7b9d45a2c..73259fb336 100644 --- a/packages/core/src/db/index.ts +++ b/packages/core/src/db/index.ts @@ -15,12 +15,13 @@ export { coreSchema } from "./schema/shared"; export { type User, userSchema } from "./schema/user"; export { type Verification, verificationSchema } from "./schema/verification"; export type { + BaseModelNames, BetterAuthDBSchema, DBFieldAttribute, DBFieldAttributeConfig, DBFieldType, - DBPreservedModels, DBPrimitive, + ModelNames, SecondaryStorage, } from "./type"; diff --git a/packages/core/src/db/type.ts b/packages/core/src/db/type.ts index f6878e2877..be4b6f77df 100644 --- a/packages/core/src/db/type.ts +++ b/packages/core/src/db/type.ts @@ -1,18 +1,12 @@ import type { StandardSchemaV1 } from "@standard-schema/spec"; import type { LiteralString } from "../types"; -export type DBPreservedModels = - | "user" - | "account" - | "session" - | "verification" - | "rate-limit" - | "organization" - | "member" - | "invitation" - | "jwks" - | "passkey" - | "two-factor"; +export type BaseModelNames = "user" | "account" | "session" | "verification"; + +export type ModelNames = + | BaseModelNames + | T + | "rate-limit"; export type DBFieldType = | "string" diff --git a/packages/core/src/types/context.ts b/packages/core/src/types/context.ts index 158d2dd1a2..ceb7d3f06c 100644 --- a/packages/core/src/types/context.ts +++ b/packages/core/src/types/context.ts @@ -2,7 +2,7 @@ import type { CookieOptions, EndpointContext } from "better-call"; import type { Account, BetterAuthDBSchema, - DBPreservedModels, + ModelNames, SecondaryStorage, Session, User, @@ -12,7 +12,6 @@ import type { DBAdapter, Where } from "../db/adapter"; import type { createLogger } from "../env"; import type { OAuthProvider } from "../oauth2"; import type { BetterAuthCookies } from "./cookie"; -import type { LiteralUnion } from "./helper"; import type { BetterAuthOptions, BetterAuthRateLimitOptions, @@ -226,7 +225,7 @@ export type AuthContext = }; }; generateId: (options: { - model: LiteralUnion; + model: ModelNames; size?: number | undefined; }) => string | false; secondaryStorage: SecondaryStorage | undefined; diff --git a/packages/core/src/types/init-options.ts b/packages/core/src/types/init-options.ts index 1baca0d66f..f0683c0c43 100644 --- a/packages/core/src/types/init-options.ts +++ b/packages/core/src/types/init-options.ts @@ -12,7 +12,7 @@ import type { AuthMiddleware } from "../api"; import type { Account, DBFieldAttribute, - DBPreservedModels, + ModelNames, RateLimit, SecondaryStorage, Session, @@ -33,7 +33,7 @@ type Optional = { }; export type GenerateIdFn = (options: { - model: LiteralUnion; + model: ModelNames; size?: number | undefined; }) => string | false;