surreal-better-auth
Version:
SurrealDB adapter for Better Auth
57 lines (51 loc) • 1.97 kB
text/typescript
import * as better_auth from 'better-auth';
import { Surreal } from 'surrealdb';
import { AdapterDebugLogs } from 'better-auth/adapters';
/**
* ID generation strategies for SurrealDB records.
*/
type IdGenerator = "sdk.UUIDv4" | "sdk.UUIDv7" | "surreal" | "surreal.ULID" | "surreal.UUID" | "surreal.UUIDv4" | "surreal.UUIDv7" | "surreal.guid";
/**
* Configuration options for the SurrealDB adapter.
*/
interface SurrealDBAdapterConfig {
/** Enable debug logging for adapter operations. */
debugLogs?: AdapterDebugLogs;
/** Use plural table names (e.g., 'users' instead of 'user'). @default false */
usePlural?: boolean;
/** ID generation strategy. @default undefined (uses Better Auth default) */
idGenerator?: IdGenerator;
/** Allow passing custom IDs in data objects. @default false */
allowPassingId?: boolean;
}
/**
* Parameters for schema generation from Better Auth tables.
*/
interface GenerateSchemaParams {
file?: string;
tables: Record<string, any>;
getModelName: (model: string) => string;
getFieldName: (opts: {
model: string;
field: string;
}) => string;
getReferencedModel: (tableName: string, fieldName: string) => string | null;
}
/**
* Result of schema generation with path and content.
*/
interface GenerateSchemaResult {
path: string;
code: string;
overwrite: boolean;
}
declare const surrealdbAdapter: (db: Surreal, config?: SurrealDBAdapterConfig) => (options: better_auth.BetterAuthOptions) => better_auth.Adapter;
/**
* Schema generation utilities for SurrealDB Better Auth adapter.
* Generates SurrealDB schema definitions with proper field types and indexes.
*/
/**
* Generates SurrealDB schema from Better Auth table definitions with proper field types and indexes.
*/
declare function generateSchema(params: GenerateSchemaParams): GenerateSchemaResult;
export { type IdGenerator, type SurrealDBAdapterConfig, generateSchema, surrealdbAdapter };