EdgeAIG's picture
download
raw
4.09 kB
/**
* Wraps SQL execution callbacks with request encoding and result decoding.
*
* `SqlSchema` is a small adapter between Effect Schema and SQL statements. Each
* helper builds a function that accepts the decoded request type used by
* application code, encodes it before calling `execute`, and decodes unknown
* driver rows into the result schema. The helpers cover returning all rows, a
* non-empty row list, the first row, an optional first row, or discarding the
* SQL result for side-effect-only statements.
*
* @since 4.0.0
*/
import * as Arr from "../../Array.ts";
import * as Cause from "../../Cause.ts";
import * as Effect from "../../Effect.ts";
import type * as Option from "../../Option.ts";
import * as Schema from "../../Schema.ts";
/**
* Builds a query function that encodes the request and decodes all result rows,
* allowing an empty result set.
*
* **When to use**
*
* Use when you need to run a query that may return zero or more rows and
* represent an empty result as an empty array.
*
* @see {@link findNonEmpty} for queries where an empty result is a failure
*
* @category constructors
* @since 4.0.0
*/
export declare const findAll: <Req extends Schema.Top, Res extends Schema.Top, E, R>(options: {
readonly Request: Req;
readonly Result: Res;
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
}) => (request: Req["Type"]) => Effect.Effect<Array<Res["Type"]>, E | Schema.SchemaError, Req["EncodingServices"] | Res["DecodingServices"] | R>;
/**
* Builds a query function that encodes the request, decodes all result rows,
* and fails with `NoSuchElementError` when the result set is empty.
*
* **When to use**
*
* Use when you need to run a query that must return at least one row and treat
* an empty result as a failure.
*
* @see {@link findAll} for queries where an empty result should return an empty array
*
* @category constructors
* @since 4.0.0
*/
export declare const findNonEmpty: <Req extends Schema.Top, Res extends Schema.Top, E, R>(options: {
readonly Request: Req;
readonly Result: Res;
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
}) => (request: Req["Type"]) => Effect.Effect<Arr.NonEmptyArray<Res["Type"]>, E | Schema.SchemaError | Cause.NoSuchElementError, Req["EncodingServices"] | Res["DecodingServices"] | R>;
declare const void_: <Req extends Schema.Top, E, R>(options: {
readonly Request: Req;
readonly execute: (request: Req["Encoded"]) => Effect.Effect<unknown, E, R>;
}) => (request: Req["Type"]) => Effect.Effect<void, E | Schema.SchemaError, R | Req["EncodingServices"]>;
export {
/**
* Runs a sql query with a request schema and discard the result.
*
* @category constructors
* @since 4.0.0
*/
void_ as void };
/**
* Builds a query function that encodes the request, decodes the first result
* row, and fails with `NoSuchElementError` when no rows are returned.
*
* @category constructors
* @since 4.0.0
*/
export declare const findOne: <Req extends Schema.Top, Res extends Schema.Top, E, R>(options: {
readonly Request: Req;
readonly Result: Res;
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
}) => (request: Req["Type"]) => Effect.Effect<Res["Type"], E | Schema.SchemaError | Cause.NoSuchElementError, R | Req["EncodingServices"] | Res["DecodingServices"]>;
/**
* Builds a query function that encodes the request, decodes the first result row
* as `Option.some`, and returns `Option.none` when no rows are returned.
*
* @category constructors
* @since 4.0.0
*/
export declare const findOneOption: <Req extends Schema.Top, Res extends Schema.Top, E, R>(options: {
readonly Request: Req;
readonly Result: Res;
readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>;
}) => (request: Req["Type"]) => Effect.Effect<Option.Option<Res["Type"]>, E | Schema.SchemaError, R | Req["EncodingServices"] | Res["DecodingServices"]>;
//# sourceMappingURL=SqlSchema.d.ts.map

Xet Storage Details

Size:
4.09 kB
·
Xet hash:
78448636e25f96fe7333f8475b7392e10f049fd56e59a2148e44bccdd13ccf82

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.