UNPKG

cogsbox-shape

Version:

A TypeScript library for creating type-safe database schemas with Zod validation, SQL type definitions, and automatic client/server transformations. Unifies client, server, and database types through a single schema definition, with built-in support for r

37 lines (36 loc) 1.49 kB
import { Kysely } from "kysely"; import type { Compilable, DatabaseIntrospector, Dialect, DialectAdapter, Driver, QueryCompiler } from "kysely"; export interface D1Result<T = Record<string, unknown>> { success: boolean; error?: string; results?: T[]; meta?: { changes?: number; last_row_id?: number; rows_written?: number; }; } export interface D1PreparedStatement { bind(...values: unknown[]): D1PreparedStatement; all<T = Record<string, unknown>>(): Promise<D1Result<T>>; run<T = Record<string, unknown>>(): Promise<D1Result<T>>; } export interface D1Database { prepare(query: string): D1PreparedStatement; batch<T = Record<string, unknown>>(statements: D1PreparedStatement[]): Promise<D1Result<T>[]>; } export type D1BatchQuery = Compilable<any>; export type D1Kysely<TDb> = Kysely<TDb> & { /** Execute compiled Kysely queries as one atomic Cloudflare D1 batch. */ batch(queries: readonly D1BatchQuery[]): Promise<D1Result[]>; }; export declare class D1Dialect implements Dialect { #private; constructor(database: D1Database); createDriver(): Driver; createQueryCompiler(): QueryCompiler; createAdapter(): DialectAdapter; createIntrospector(db: Kysely<any>): DatabaseIntrospector; } export declare function createD1Db<TDb = unknown>(database: D1Database): D1Kysely<TDb>; export declare function executeD1Batch(database: D1Database, queries: readonly D1BatchQuery[]): Promise<D1Result[]>;