Skip to content

MysqlClient

MySQL adapter for Effect SQL, backed by the mysql2 driver.

This module provides constructors and layers for a MysqlClient and the generic Effect SQL client service. make creates a managed mysql2 pool, checks the connection with SELECT 1, maps mysql2 failures to SqlError, supports transaction connections, and exposes streaming queries through mysql2 query streams. It also provides direct and config-backed layers plus a MySQL statement compiler.

9 exports Added in v4.0.0 Source

Constructors

make

Added in v4.0.0 Source

Creates a scoped MySQL client backed by a managed mysql2 pool, verifying connectivity and supporting streaming queries through mysql2 query streams.

Signature

declare function make(
  options: MysqlClientConfig,
): Effect<MysqlClient, SqlError, Scope | Reactivity>;

makeCompiler

Added in v4.0.0 Source

Creates the MySQL statement compiler, using ? placeholders and backtick-escaped identifiers.

Signature

declare function makeCompiler(transform?: (_: string) => string): Compiler;

Layers

layer

Added in v4.0.0 Source

Creates a layer from a concrete MySQL client configuration, providing both MysqlClient and SqlClient.

Signature

declare function layer(
  config: MysqlClientConfig,
): Layer<MysqlClient | SqlClient, SqlError | ConfigError>;

layerConfig

Added in v4.0.0 Source

Creates a layer from a Config-wrapped MySQL client configuration, providing both MysqlClient and SqlClient.

Signature

declare function layerConfig(
  config:
    | {
        readonly connectionTTL?: Config<Input | undefined>;
        readonly database?: Config<string | undefined>;
        readonly disablePreparedStatements?: Config<boolean | undefined>;
        readonly host?: Config<string | undefined>;
        readonly maxConnections?: Config<number | undefined>;
        readonly password?:
          | {
              readonly "~effect/data/Redacted":
                | {
                    readonly _A: Config<Covariant<string>>;
                  }
                | Config<{
                    readonly _A: Covariant<string>;
                  }>;
              "~effect/interfaces/Equal": Config<(that: Equal) => boolean>;
              "~effect/interfaces/Hash": Config<() => number>;
              readonly label: Config<string | undefined>;
              pipe: Config<{
                <A>(this: A): A;
                <A, B = never>(this: A, ab: (_: A) => B): B;
                <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
                <A, B = never, C = never, D = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                ): D;
                <A, B = never, C = never, D = never, E = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                ): E;
                <A, B = never, C = never, D = never, E = never, F = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                ): F;
                <A, B = never, C = never, D = never, E = never, F = never, G = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                ): G;
                <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                ): H;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                ): I;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                ): J;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                ): K;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                ): L;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                ): M;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                ): N;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                ): O;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                ): P;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                ): Q;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                ): R;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                ): S;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                ): T;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                  U = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                  tu: (_: T) => U,
                ): U;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                  U = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                  tu: (_: T) => U,
                ): U;
              }>;
            }
          | Config<Redacted<string> | undefined>;
        readonly poolConfig?: Config<any>;
        readonly port?: Config<number | undefined>;
        readonly spanAttributes?:
          | {
              [key: string]: Config<unknown>;
            }
          | Config<Record<string, unknown> | undefined>;
        readonly transformQueryNames?: Config<(str: string) => string | undefined>;
        readonly transformResultNames?: Config<(str: string) => string | undefined>;
        readonly url?:
          | {
              readonly "~effect/data/Redacted":
                | {
                    readonly _A: Config<Covariant<string>>;
                  }
                | Config<{
                    readonly _A: Covariant<string>;
                  }>;
              "~effect/interfaces/Equal": Config<(that: Equal) => boolean>;
              "~effect/interfaces/Hash": Config<() => number>;
              readonly label: Config<string | undefined>;
              pipe: Config<{
                <A>(this: A): A;
                <A, B = never>(this: A, ab: (_: A) => B): B;
                <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
                <A, B = never, C = never, D = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                ): D;
                <A, B = never, C = never, D = never, E = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                ): E;
                <A, B = never, C = never, D = never, E = never, F = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                ): F;
                <A, B = never, C = never, D = never, E = never, F = never, G = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                ): G;
                <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                ): H;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                ): I;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                ): J;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                ): K;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                ): L;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                ): M;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                ): N;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                ): O;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                ): P;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                ): Q;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                ): R;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                ): S;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                ): T;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                  U = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                  tu: (_: T) => U,
                ): U;
                <
                  A,
                  B = never,
                  C = never,
                  D = never,
                  E = never,
                  F = never,
                  G = never,
                  H = never,
                  I = never,
                  J = never,
                  K = never,
                  L = never,
                  M = never,
                  N = never,
                  O = never,
                  P = never,
                  Q = never,
                  R = never,
                  S = never,
                  T = never,
                  U = never,
                >(
                  this: A,
                  ab: (_: A) => B,
                  bc: (_: B) => C,
                  cd: (_: C) => D,
                  de: (_: D) => E,
                  ef: (_: E) => F,
                  fg: (_: F) => G,
                  gh: (_: G) => H,
                  hi: (_: H) => I,
                  ij: (_: I) => J,
                  jk: (_: J) => K,
                  kl: (_: K) => L,
                  lm: (_: L) => M,
                  mn: (_: M) => N,
                  no: (_: N) => O,
                  op: (_: O) => P,
                  pq: (_: P) => Q,
                  qr: (_: Q) => R,
                  rs: (_: R) => S,
                  st: (_: S) => T,
                  tu: (_: T) => U,
                ): U;
              }>;
            }
          | Config<Redacted<string> | undefined>;
        readonly username?: Config<string | undefined>;
      }
    | Config<MysqlClientConfig>,
): Layer<MysqlClient | SqlClient, SqlError | ConfigError>;

Models

MysqlClientConfig interface

Added in v4.0.0 Source

Configuration for a mysql2 client, including connection URI or connection fields, pool options, span attributes, and query/result name transforms.

Signature

interface MysqlClientConfig {
  readonly connectionTTL?: Input;
  readonly database?: string;
  readonly disablePreparedStatements?: boolean;
  readonly host?: string;
  readonly maxConnections?: number;
  readonly password?: Redacted<string>;
  readonly poolConfig?: any;
  readonly port?: number;
  readonly spanAttributes?: Record<string, unknown>;
  readonly transformQueryNames?: (str: string) => string;
  readonly transformResultNames?: (str: string) => string;
  readonly url?: Redacted<string>;
  readonly username?: string;
}

Services

MysqlClient

Added in v4.0.0 Source

Service tag for the mysql2 SQL client service.

When to use

Use to access or provide a mysql2 client through the Effect context.

Signature

declare const MysqlClient: Service<MysqlClient, MysqlClient>;

MysqlClient interface

Added in v4.0.0 Source

mysql2-backed SQL client service, extending SqlClient with its runtime type marker and client configuration.

Signature

interface MysqlClient extends SqlClient {
  <A extends object = Row>(strings: TemplateStringsArray, ...args: Array<any>): Statement<A>;
  (value: string): Identifier;
  readonly "~@effect/sql-mysql2/MysqlClient": "~@effect/sql-mysql2/MysqlClient";
  readonly config: MysqlClientConfig;
}

Type IDs

TypeId

Added in v4.0.0 Source

Runtime type identifier used to mark MysqlClient values.

Signature

declare const TypeId: TypeId;

TypeId type

Added in v4.0.0 Source

Type-level identifier used to mark MysqlClient values.

Signature

type TypeId = "~@effect/sql-mysql2/MysqlClient";