UNPKG

effect-sql-kysely

Version:

A full-featured integration between `@effect/sql` and `Kysely` that provides type-safe database operations with Effect's powerful error handling and resource management.

22 lines (21 loc) 2.26 kB
import { SqlError, SqlResolver } from "@effect/sql"; import type { Row } from "@effect/sql/SqlConnection"; import type { Option, Types } from "effect"; import * as Effect from "effect/Effect"; import type * as kysely from "kysely"; type KyselyEffect<DB> = <Out extends Row>(f: (db: kysely.Kysely<DB>) => kysely.Compilable<Out>) => Effect.Effect<ReadonlyArray<Out>, SqlError.SqlError, never>; export declare function makeResolver<DB, E0 = never, R0 = never>(input: KyselyEffect<DB> | Effect.Effect<KyselyEffect<DB>, E0, R0>): { readonly findById: <T extends string, I, II, RI, A, IA, Out extends Row, E, RA = never, R = never>(tag: T, options: Omit<Parameters<typeof SqlResolver.findById<T, I, II, RI, A, IA, Out, E, RA, R>>[1], "execute" | "withContext"> & { execute: (db: kysely.Kysely<DB>, requests: Array<Types.NoInfer<II>>) => kysely.Compilable<Out>; }) => Effect.Effect<SqlResolver.SqlResolver<T, I, Option.Option<A>, SqlError.SqlError, RI>, E0, R0 | RA>; readonly grouped: <T extends string, I, II, K, RI, A, IA, Out extends Row, E, RA = never, R = never>(tag: T, options: Omit<Parameters<typeof SqlResolver.grouped<T, I, II, K, RI, A, IA, Out, E, RA, R>>[1], "execute" | "withContext"> & { execute: (db: kysely.Kysely<DB>, requests: Array<Types.NoInfer<II>>) => kysely.Compilable<Out>; }) => Effect.Effect<SqlResolver.SqlResolver<T, I, A[], SqlError.SqlError, RI>, E0, R0 | RA>; readonly ordered: <T extends string, I, II, RI, A, IA, _, E, RA = never, R = never>(tag: T, options: Omit<Parameters<typeof SqlResolver.ordered<T, I, II, RI, A, IA, _, E, RA, R>>[1], "execute" | "withContext"> & { execute: (db: kysely.Kysely<DB>, requests: Array<Types.NoInfer<II>>) => kysely.Compilable<IA>; }) => Effect.Effect<SqlResolver.SqlResolver<T, I, A, SqlError.SqlError | SqlError.ResultLengthMismatch, RI>, E0, R0 | RA>; readonly void: <T extends string, I, II, RI, E, R = never>(tag: T, options: Omit<Parameters<typeof SqlResolver.void<T, I, II, RI, E, R>>[1], "execute" | "withContext"> & { execute: (db: kysely.Kysely<DB>, requests: Array<Types.NoInfer<II>>) => kysely.Compilable<object>; }) => Effect.Effect<SqlResolver.SqlResolver<T, I, void, SqlError.SqlError, RI>, E0, R0>; }; export {};