UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

45 lines (44 loc) 1.35 kB
import type { Connection } from "../../data/connection"; import type { Compilable, CompiledQuery, QueryResult as KyselyQueryResult } from "kysely"; export type ResultHydrator<T = any> = (rows: T[]) => any; export type ResultOptions<T = any> = { hydrator?: ResultHydrator<T>; beforeExecute?: (compiled: CompiledQuery) => void | Promise<void>; onError?: (error: Error) => void | Promise<void>; single?: boolean; }; export type ResultJSON<T = any> = { data: T; meta: { items: number; time: number; sql?: string; parameters?: any[]; [key: string]: any; }; }; export interface QueryResult<T = any> extends Omit<KyselyQueryResult<T>, "rows"> { time: number; items: number; data: T; rows: unknown[]; sql: string; parameters: any[]; count?: number; total?: number; } export declare class Result<T = unknown> { protected conn: Connection; protected options: ResultOptions<T>; results: QueryResult<T>[]; time: number; constructor(conn: Connection, options?: ResultOptions<T>); get(): QueryResult<T>; first(): QueryResult<T>; get sql(): string; get parameters(): any[]; get data(): T; execute(qb: Compilable | Compilable[]): Promise<this>; protected additionalMetaKeys(): string[]; toJSON(): ResultJSON<T>; }