UNPKG

@coursebuilder/adapter-drizzle

Version:

Drizzle adapter for Course Builder.

25 lines (22 loc) 1.36 kB
import { MySqlDatabase, MySqlTableFn, AnyMySqlTable } from 'drizzle-orm/mysql-core'; import { PgDatabase, PgTableFn } from 'drizzle-orm/pg-core'; import { BaseSQLiteDatabase, SQLiteTableFn, AnySQLiteTable } from 'drizzle-orm/sqlite-core'; import { DefaultSchema } from './mysql/index.cjs'; import 'drizzle-orm'; import '@auth/core/adapters'; import '@coursebuilder/core/adapters'; import '@coursebuilder/core/types'; type AnyMySqlDatabase = MySqlDatabase<any, any>; type AnyPgDatabase = PgDatabase<any, any, any>; type AnySQLiteDatabase = BaseSQLiteDatabase<any, any, any, any>; interface MinimumSchema { mysql: DefaultSchema & Record<string, AnyMySqlTable>; } type SqlFlavorOptions = AnyMySqlDatabase | AnyPgDatabase | AnySQLiteDatabase; type ClientFlavors<Flavor> = Flavor extends AnyMySqlDatabase ? MinimumSchema['mysql'] : never; type TableFn<Flavor> = Flavor extends AnyMySqlDatabase ? MySqlTableFn : Flavor extends AnyPgDatabase ? PgTableFn : Flavor extends AnySQLiteDatabase ? SQLiteTableFn : AnySQLiteTable; type NonNullableProps<T> = { [P in keyof T]: null extends T[P] ? never : P; }[keyof T]; declare function stripUndefined<T>(obj: T): Pick<T, NonNullableProps<T>>; export { type AnyMySqlDatabase, type AnyPgDatabase, type AnySQLiteDatabase, type ClientFlavors, type MinimumSchema, type SqlFlavorOptions, type TableFn, stripUndefined };