SqliteClient overview
CR-SQLite compatible Sqlite client tag and type.
This augments the base @effect/sql SqlClient with the SQLite-specific ability to loadExtension, which CR-SQLite requires to activate its functionality on a connection.
Implementations are provided by platform drivers such as @effect/sql-sqlite-node and @effect/sql-sqlite-bun, which already expose a loadExtension method. This tag allows CR-SQLite helpers to depend on the minimal capability needed across platforms.
Added in v0.1.0
Table of contents
utils
SqliteClient
Tag for a CR-SQLite compatible SQLite client.
Signature
export declare const SqliteClient: Context.Tag<SqliteClient, SqliteClient>
Added in v0.1.0
SqliteClient (interface)
Extends the generic SqlClient with SQLite’s loadExtension capability.
Signature
export interface SqliteClient extends SqlClient.SqlClient {
/**
* Loads a SQLite extension from a full filesystem path.
*
* Required to enable CR-SQLite (crsqlite) for the current connection.
*/
readonly loadExtension: (path: string) => Effect.Effect<void, SqlError>
}
Added in v0.1.0
SqliteClientError (class)
Error raised when a base SqlClient does not support loadExtension.
Signature
export declare class SqliteClientError
Added in v0.1.0
fromSqlClient
Validates a base SqlClient supports loadExtension and narrows it to SqliteClient.
Signature
export declare const fromSqlClient: (
sql: SqliteClient | SqlClient.SqlClient
) => Effect.Effect<
SqliteClient,
[YieldWrap<Effect.Effect<never, SqliteClientError, never>>] extends [never]
? never
: [YieldWrap<Effect.Effect<never, SqliteClientError, never>>] extends [
YieldWrap<Effect.Effect<infer _A, infer E, infer _R>>
]
? E
: never,
[YieldWrap<Effect.Effect<never, SqliteClientError, never>>] extends [never]
? never
: [YieldWrap<Effect.Effect<never, SqliteClientError, never>>] extends [
YieldWrap<Effect.Effect<infer _A, infer _E, infer R>>
]
? R
: never
>
Added in v0.1.0
layer
Provides a SqliteClient instance into the environment.
Signature
export declare const layer: (sql: SqliteClient) => Layer.Layer<SqliteClient, never, never>
Added in v0.1.0
layerFromSqlClient
Lifts a base SqlClient into a SqliteClient if it exposes loadExtension.
Signature
export declare const layerFromSqlClient: (
sql: SqlClient.SqlClient | SqliteClient
) => Layer.Layer<SqliteClient, SqliteClientError, never>
Added in v0.1.0
loadExtension
Loads a SQLite extension (e.g., CR‑SQLite) on the current connection.
Signature
export declare const loadExtension: (
path: string
) => Effect.Effect<
void,
[
| YieldWrap<Effect.Effect<never, SqliteClientError, never>>
| YieldWrap<Effect.Effect<void, SqlError, never>>
| YieldWrap<Context.Tag<SqlClient.SqlClient, SqlClient.SqlClient>>
] extends [never]
? never
: [
| YieldWrap<Effect.Effect<never, SqliteClientError, never>>
| YieldWrap<Effect.Effect<void, SqlError, never>>
| YieldWrap<Context.Tag<SqlClient.SqlClient, SqlClient.SqlClient>>
] extends [YieldWrap<Effect.Effect<infer _A, infer E, infer _R>>]
? E
: never,
[
| YieldWrap<Effect.Effect<never, SqliteClientError, never>>
| YieldWrap<Effect.Effect<void, SqlError, never>>
| YieldWrap<Context.Tag<SqlClient.SqlClient, SqlClient.SqlClient>>
] extends [never]
? never
: [
| YieldWrap<Effect.Effect<never, SqliteClientError, never>>
| YieldWrap<Effect.Effect<void, SqlError, never>>
| YieldWrap<Context.Tag<SqlClient.SqlClient, SqlClient.SqlClient>>
] extends [YieldWrap<Effect.Effect<infer _A, infer _E, infer R>>]
? R
: never
>
Added in v0.1.0