Skip to content

authDbApi

authDbApi<DataModel>(options): object

Defined in: packages/better-auth/src/convex/index.ts:53

Creates the auth DB operations as proper Convex functions.

Use this in www/convex/auth/db.ts to export the db operations:

import { authDbApi } from "@vexcms/better-auth/convex"
import { internalMutation, internalQuery } from "../../_generated/server"
import schema from "../schema"
export const { dbCreate, dbFindOne, dbFindMany, dbCount, dbUpdate, dbUpdateMany, dbDelete, dbDeleteMany } = authDbApi({
schema,
internalMutation,
internalQuery,
})

This follows the exact same pattern as queryApi/mutationApi in @vexcms/core. The returned functions are proper Convex FunctionReferences available as internal.auth.db.dbCreate, etc. in the user’s Convex API.

DataModel extends GenericDataModel

AuthDbApiOptions<DataModel>

The user’s Convex schema plus their internalMutation and internalQuery builders, used to construct the auth DB functions.

object

An object exposing dbCreate, dbFindOne, dbFindMany, dbCount, dbUpdate, dbUpdateMany, dbDelete, and dbDeleteMany as internal Convex function references, ready to re-export from the user’s Convex API.

dbCount: RegisteredQuery<"internal", { betterAuthSchema: string; model: string; where?: any[]; }, Promise<number>>

dbCreate: RegisteredMutation<"internal", { betterAuthSchema: string; data: any; model: string; select?: string[]; }, Promise<GenericDocument | null>>

dbDelete: RegisteredMutation<"internal", { betterAuthSchema: string; model: string; where: any[]; }, Promise<void>>

dbDeleteMany: RegisteredMutation<"internal", { betterAuthSchema: string; model: string; where: any[]; }, Promise<number>>

dbFindMany: RegisteredQuery<"internal", { betterAuthSchema: string; limit?: number; model: string; sortBy?: { direction: "asc" | "desc"; field: string; }; where?: any[]; }, Promise<any[]>>

dbFindOne: RegisteredQuery<"internal", { betterAuthSchema: string; model: string; select?: string[]; where: any[]; }, Promise<GenericDocument | null>>

dbUpdate: RegisteredMutation<"internal", { betterAuthSchema: string; model: string; update: any; where: any[]; }, Promise<GenericDocument | null>>

dbUpdateMany: RegisteredMutation<"internal", { betterAuthSchema: string; model: string; update: any; where: any[]; }, Promise<number>>