Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

SqliteClient unstable

Connects Effect SQL to SQLite storage inside Cloudflare Durable Objects.

Provides SqliteClient and the generic SqlClient service. Pass db for queries only, or storage for transactions and migrations. SQLite blobs are returned as Uint8Array; updateValues is unsupported.

The outer transaction holds the connection semaphore until storage completes. Nested withTransaction calls reuse that connection and call storage.transaction() without emitting transaction SQL. Child failures and interruptions roll back the child; uncaught failures also roll back the parent.

Concurrent sibling transactions are unsupported. Fibers inheriting the transaction context must finish their transaction work before the enclosing transaction exits; later use can bypass the connection semaphore.

8 exports Added in v4.0.0 Source

Constructors

make unstable

Added in v4.0.0 Source

Creates a scoped Cloudflare Durable Object SQLite client around Durable Object SQLite storage, serializing access and converting returned ArrayBuffer values to Uint8Array.

Signature

declare function make(options: SqliteClientConfig): Effect<SqliteClient, never, Scope | Reactivity>

Layers

layer unstable

Added in v4.0.0 Source

Creates a layer from a concrete Durable Object SQLite client configuration, providing both SqliteClient and SqlClient.

Signature

declare function layer(config: SqliteClientConfig): Layer<SqliteClient | SqlClient>

layerConfig unstable

Added in v4.0.0 Source

Creates a layer from a Config-wrapped Durable Object SQLite client configuration, providing both SqliteClient and SqlClient.

Signature

declare function layerConfig(config: {
readonly db?: Config<any>;
readonly spanAttributes?: {
[key: string]: Config<unknown>;
} | Config<Record<string, unknown> | undefined>;
readonly storage?: Config<any>;
readonly transformQueryNames?: Config<(str: string) => string | undefined>;
readonly transformResultNames?: Config<(str: string) => string | undefined>;
} | Config<SqliteClientConfig>): Layer<SqliteClient | SqlClient, ConfigError>

Models

SqliteClientConfig interface unstable

Added in v4.0.0 Source

Configuration for a Cloudflare Durable Object SQLite client, including either a SqlStorage handle or the full DurableObjectStorage for transaction support, span attributes, and query/result name transforms.

Signature

interface SqliteClientConfig {
readonly db?: any;
readonly spanAttributes?: Record<string, unknown>;
readonly storage?: any;
readonly transformQueryNames?: (str: string) => string;
readonly transformResultNames?: (str: string) => string;
}

Services

SqliteClient unstable

Added in v4.0.0 Source

Service tag for the Cloudflare Durable Object SQLite client service.

When to use

Use to access or provide a Durable Object SQLite client through the Effect context.

Signature

declare const SqliteClient: Service<SqliteClient, SqliteClient>

SqliteClient interface unstable

Added in v4.0.0 Source

Cloudflare Durable Object SQLite client service, extending SqlClient with its configuration. updateValues is not supported.

Signature

interface SqliteClient extends SqlClient {
<A extends object = Row>(strings: TemplateStringsArray, ...args: Array<any>): Statement<A>;
(value: string): Identifier;
readonly "~@effect/sql-sqlite-do/SqliteClient": "~@effect/sql-sqlite-do/SqliteClient";
readonly config: SqliteClientConfig;
readonly updateValues: never;
}

Type IDs

TypeId unstable

Added in v4.0.0 Source

Runtime type identifier used to mark Cloudflare Durable Object SqliteClient values.

Signature

declare const TypeId: TypeId

TypeId type unstable

Added in v4.0.0 Source

Type-level identifier used to mark Cloudflare Durable Object SqliteClient values.

Signature

type TypeId = "~@effect/sql-sqlite-do/SqliteClient"