/** * libSQL migration support for Effect SQL applications. * * This module adapts the shared SQL migrator to libSQL. It re-exports the * common migration loaders and errors, then provides {@link run} and * {@link layer} helpers that apply pending migrations with the current * libSQL-backed `SqlClient`. `run` returns the applied migration IDs and names, * while `layer` runs migrations during layer construction and provides no * services. * * @since 4.0.0 */ import type * as Effect from "effect/Effect" import * as Layer from "effect/Layer" import * as Migrator from "effect/unstable/sql/Migrator" import type * as Client from "effect/unstable/sql/SqlClient" import type { SqlError } from "effect/unstable/sql/SqlError" /** * @since 4.0.0 */ export * from "effect/unstable/sql/Migrator" /** * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied. * * @category constructors * @since 4.0.0 */ export const run: ( options: Migrator.MigratorOptions ) => Effect.Effect< ReadonlyArray, Migrator.MigrationError | SqlError, Client.SqlClient | R2 > = Migrator.make({}) /** * Creates a layer that runs the configured SQL migrations during layer construction. * * @category constructors * @since 4.0.0 */ export const layer = ( options: Migrator.MigratorOptions ): Layer.Layer => Layer.effectDiscard(run(options))