UNPKG

drizzle-zero

Version:

Generate Zero schemas from Drizzle ORM schemas

17 lines (14 loc) 1.04 kB
import { DBConnection, Row, DBTransaction } from '@rocicorp/zero/pg'; import { NodePgDatabase, NodePgClient, NodePgQueryResultHKT } from 'drizzle-orm/node-postgres'; import { PgTransaction } from 'drizzle-orm/pg-core'; import { ExtractTablesWithRelations } from 'drizzle-orm/relations'; type NodePgZeroTransaction<TDatabase extends NodePgDatabase<Record<string, unknown>>> = Parameters<Parameters<TDatabase["transaction"]>[0]>[0] & {}; declare class NodePgConnection<TDrizzle extends NodePgDatabase<Record<string, unknown>> & { $client: NodePgClient; }, TSchema extends TDrizzle extends NodePgDatabase<infer TSchema> ? TSchema : never, TTransaction extends PgTransaction<NodePgQueryResultHKT, TSchema, ExtractTablesWithRelations<TSchema>>> implements DBConnection<TTransaction> { #private; constructor(drizzle: TDrizzle); query(sql: string, params: unknown[]): Promise<Row[]>; transaction<T>(fn: (tx: DBTransaction<TTransaction>) => Promise<T>): Promise<T>; } export { NodePgConnection, type NodePgZeroTransaction };