19 lines · 719 B · TypeScript
RawDownload
import type * as Effect from "effect/Effect";import type * as SqlClient from "effect/unstable/sql/SqlClient"; import type { EffectSqliteDatabaseAdapter, SqliteDatabase } from "./sqliteAdapter";import { PersistenceInitializationError } from "./errors"; function isEffectSqliteDatabase(db: SqliteDatabase): db is EffectSqliteDatabaseAdapter {  return "runWithSqlClient" in db && typeof db.runWithSqlClient === "function";} export function runWithSqlClient<A>(  db: SqliteDatabase,  effect: Effect.Effect<A, unknown, SqlClient.SqlClient>,): A {  if (isEffectSqliteDatabase(db)) {    return db.runWithSqlClient(effect);  }  throw new PersistenceInitializationError("Expected Effect-backed sqlite adapter");}