Thanks to visit codestin.com
Credit goes to effect-ts.github.io

Skip to main content Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

Statement.ts overview

Since v1.0.0


Exports Grouped by Category


compiler

Compiler (interface)

Signature

export interface Compiler {
  readonly dialect: Dialect
  readonly compile: (
    statement: Fragment,
    withoutTransform: boolean
  ) => readonly [sql: string, params: ReadonlyArray<unknown>]
  readonly withoutTransform: this
}

Source

Since v1.0.0

makeCompiler

Signature

declare const makeCompiler: <C extends Custom<any, any, any, any> = any>(options: {
  readonly dialect: Dialect
  readonly placeholder: (index: number, value: unknown) => string
  readonly onIdentifier: (value: string, withoutTransform: boolean) => string
  readonly onRecordUpdate: (
    placeholders: string,
    alias: string,
    columns: string,
    values: ReadonlyArray<ReadonlyArray<unknown>>,
    returning: readonly [sql: string, params: ReadonlyArray<unknown>] | undefined
  ) => readonly [sql: string, params: ReadonlyArray<unknown>]
  readonly onCustom: (
    type: C,
    placeholder: (u: unknown) => string,
    withoutTransform: boolean
  ) => readonly [sql: string, params: ReadonlyArray<unknown>]
  readonly onInsert?: (
    columns: ReadonlyArray<string>,
    placeholders: string,
    values: ReadonlyArray<ReadonlyArray<unknown>>,
    returning: readonly [sql: string, params: ReadonlyArray<unknown>] | undefined
  ) => readonly [sql: string, binds: ReadonlyArray<unknown>]
  readonly onRecordUpdateSingle?: (
    columns: ReadonlyArray<string>,
    values: ReadonlyArray<unknown>,
    returning: readonly [sql: string, params: ReadonlyArray<unknown>] | undefined
  ) => readonly [sql: string, params: ReadonlyArray<unknown>]
}) => Compiler

Source

Since v1.0.0

makeCompilerSqlite

Signature

declare const makeCompilerSqlite: (transform?: ((_: string) => string) | undefined) => Compiler

Source

Since v1.0.0

constructor

and

Signature

declare const and: (clauses: ReadonlyArray<string | Fragment>) => Fragment

Source

Since v1.0.0

csv

Signature

declare const csv: {
  (values: ReadonlyArray<string | Fragment>): Fragment
  (prefix: string, values: ReadonlyArray<string | Fragment>): Fragment
}

Source

Since v1.0.0

custom

Signature

declare const custom: <C extends Custom<any, any, any, any>>(
  kind: C["kind"]
) => (i0: C["i0"], i1: C["i1"], i2: C["i2"]) => Fragment

Source

Since v1.0.0

join

Signature

declare const join: (
  literal: string,
  addParens?: boolean,
  fallback?: string
) => (clauses: ReadonlyArray<string | Fragment>) => Fragment

Source

Since v1.0.0

make

Signature

declare const make: (
  acquirer: Connection.Acquirer,
  compiler: Compiler,
  spanAttributes: ReadonlyArray<readonly [string, unknown]>,
  transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined
) => Constructor

Source

Since v1.0.0

or

Signature

declare const or: (clauses: ReadonlyArray<string | Fragment>) => Fragment

Source

Since v1.0.0

unsafeFragment

Signature

declare const unsafeFragment: (sql: string, params?: ReadonlyArray<unknown> | undefined) => Fragment

Source

Since v1.0.0

guard

isCustom

Signature

declare const isCustom: <A extends Custom<any, any, any, any>>(kind: A["kind"]) => (u: unknown) => u is A

Source

Since v1.0.0

isFragment

Signature

declare const isFragment: (u: unknown) => u is Fragment

Source

Since v1.0.0

model

ArrayHelper (interface)

Signature

export interface ArrayHelper {
  readonly _tag: "ArrayHelper"
  readonly value: ReadonlyArray<unknown | Fragment>
}

Source

Since v1.0.0

Constructor (interface)

Signature

export interface Constructor {
  <A extends object = Row>(strings: TemplateStringsArray, ...args: Array<any>): Statement<A>

  (value: string): Identifier

  /**
   * Create unsafe SQL query
   */
  readonly unsafe: <A extends object>(sql: string, params?: ReadonlyArray<any> | undefined) => Statement<A>

  readonly literal: (sql: string) => Fragment

  readonly in: {
    (value: ReadonlyArray<unknown>): ArrayHelper
    (column: string, value: ReadonlyArray<unknown>): Fragment
  }

  readonly insert: {
    (value: ReadonlyArray<Record<string, unknown>>): RecordInsertHelper
    (value: Record<string, unknown>): RecordInsertHelper
  }

  /** Update a single row */
  readonly update: <A extends Record<string, unknown>>(
    value: A,
    omit?: ReadonlyArray<keyof A>
  ) => RecordUpdateHelperSingle

  /**
   * Update multiple rows
   *
   * **Note:** Not supported in sqlite
   */
  readonly updateValues: (value: ReadonlyArray<Record<string, unknown>>, alias: string) => RecordUpdateHelper

  /**
   * Create an `AND` chain for a where clause
   */
  readonly and: (clauses: ReadonlyArray<string | Fragment>) => Fragment

  /**
   * Create an `OR` chain for a where clause
   */
  readonly or: (clauses: ReadonlyArray<string | Fragment>) => Fragment

  /**
   * Create comma seperated values, with an optional prefix
   *
   * Useful for `ORDER BY` and `GROUP BY` clauses
   */
  readonly csv: {
    (values: ReadonlyArray<string | Fragment>): Fragment
    (prefix: string, values: ReadonlyArray<string | Fragment>): Fragment
  }

  readonly join: (
    literal: string,
    addParens?: boolean,
    fallback?: string
  ) => (clauses: ReadonlyArray<string | Fragment>) => Fragment

  readonly onDialect: <A, B, C, D, E>(options: {
    readonly sqlite: () => A
    readonly pg: () => B
    readonly mysql: () => C
    readonly mssql: () => D
    readonly clickhouse: () => E
  }) => A | B | C | D | E

  readonly onDialectOrElse: <A, B = never, C = never, D = never, E = never, F = never>(options: {
    readonly orElse: () => A
    readonly sqlite?: () => B
    readonly pg?: () => C
    readonly mysql?: () => D
    readonly mssql?: () => E
    readonly clickhouse?: () => F
  }) => A | B | C | D | E | F
}

Source

Since v1.0.0

Custom (interface)

Signature

export interface Custom<T extends string = string, A = void, B = void, C = void> {
  readonly _tag: "Custom"
  readonly kind: T
  readonly i0: A
  readonly i1: B
  readonly i2: C
}

Source

Since v1.0.0

Dialect (type alias)

Signature

type Dialect = "sqlite" | "pg" | "mysql" | "mssql" | "clickhouse"

Source

Since v1.0.0

Fragment (interface)

Signature

export interface Fragment {
  readonly [FragmentId]: (_: never) => FragmentId
  readonly segments: ReadonlyArray<Segment>
}

Source

Since v1.0.0

Helper (type alias)

Signature

type Helper = ArrayHelper | RecordInsertHelper | RecordUpdateHelper | RecordUpdateHelperSingle | Identifier | Custom

Source

Since v1.0.0

Identifier (interface)

Signature

export interface Identifier {
  readonly _tag: "Identifier"
  readonly value: string
}

Source

Since v1.0.0

Literal (interface)

Signature

export interface Literal {
  readonly _tag: "Literal"
  readonly value: string
  readonly params?: ReadonlyArray<unknown> | undefined
}

Source

Since v1.0.0

Parameter (interface)

Signature

export interface Parameter {
  readonly _tag: "Parameter"
  readonly value: unknown
}

Source

Since v1.0.0

PrimitiveKind (type alias)

Signature

type PrimitiveKind =
  | "string"
  | "number"
  | "bigint"
  | "boolean"
  | "Date"
  | "null"
  | "Int8Array"
  | "Uint8Array"
  | "object"

Source

Since v1.0.0

RecordInsertHelper (interface)

Signature

export interface RecordInsertHelper {
  readonly _tag: "RecordInsertHelper"
  readonly value: ReadonlyArray<Record<string, unknown>>
  /** @internal */
  readonly returningIdentifier: string | Fragment | undefined
  readonly returning: (sql: string | Identifier | Fragment) => RecordInsertHelper
}

Source

Since v1.0.0

RecordUpdateHelper (interface)

Signature

export interface RecordUpdateHelper {
  readonly _tag: "RecordUpdateHelper"
  readonly value: ReadonlyArray<Record<string, unknown>>
  readonly alias: string
  /** @internal */
  readonly returningIdentifier: string | Fragment | undefined
  readonly returning: (sql: string | Identifier | Fragment) => RecordUpdateHelper
}

Source

Since v1.0.0

RecordUpdateHelperSingle (interface)

Signature

export interface RecordUpdateHelperSingle {
  readonly _tag: "RecordUpdateHelperSingle"
  readonly value: Record<string, unknown>
  readonly omit: ReadonlyArray<string>
  /** @internal */
  readonly returningIdentifier: string | Fragment | undefined
  readonly returning: (sql: string | Identifier | Fragment) => RecordUpdateHelperSingle
}

Source

Since v1.0.0

Segment (type alias)

Signature

type Segment =
  | Literal
  | Identifier
  | Parameter
  | ArrayHelper
  | RecordInsertHelper
  | RecordUpdateHelper
  | RecordUpdateHelperSingle
  | Custom

Source

Since v1.0.0

Statement (interface)

Signature

export interface Statement<A> extends Fragment, Effect<ReadonlyArray<A>, SqlError>, Pipeable {
  readonly raw: Effect<unknown, SqlError>
  readonly withoutTransform: Effect<ReadonlyArray<A>, SqlError>
  readonly stream: Stream.Stream<A, SqlError>
  readonly values: Effect<ReadonlyArray<ReadonlyArray<unknown>>, SqlError>
  readonly unprepared: Effect<ReadonlyArray<A>, SqlError>
  readonly compile: (withoutTransform?: boolean | undefined) => readonly [sql: string, params: ReadonlyArray<unknown>]
}

Source

Since v1.0.0

Statement (namespace)

Source

Since v1.0.0

Transformer (type alias)

Signature

type Transformer = (
  self: Statement<unknown>,
  sql: Constructor,
  context: FiberRefs.FiberRefs,
  span: Tracer.Span
) => Effect<Statement<unknown>>

Source

Since v1.0.0

transformer

currentTransformer

Signature

declare const currentTransformer: FiberRef.FiberRef<Option.Option<Statement.Transformer>>

Source

Since v1.0.0

setTransformer

Signature

declare const setTransformer: (f: Statement.Transformer) => Layer.Layer<never, never, never>

Source

Since v1.0.0

withTransformer

Signature

declare const withTransformer: {
  (f: Statement.Transformer): <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, R>
  <A, E, R>(effect: Effect<A, E, R>, f: Statement.Transformer): Effect<A, E, R>
}

Source

Since v1.0.0

withTransformerDisabled

Signature

declare const withTransformerDisabled: <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, R>

Source

Since v1.0.0

type id

FragmentId

Signature

declare const FragmentId: unique symbol

Source

Since v1.0.0

FragmentId (type alias)

Signature

type FragmentId = typeof FragmentId

Source

Since v1.0.0

utils

defaultEscape

Signature

declare const defaultEscape: (c: string) => (str: string) => string

Source

Since v1.0.0

defaultTransforms

Signature

declare const defaultTransforms: (
  transformer: (str: string) => string,
  nested?: boolean
) => {
  readonly value: (value: any) => any
  readonly object: (obj: Record<string, any>) => any
  readonly array: <A extends object>(rows: ReadonlyArray<A>) => ReadonlyArray<A>
}

Source

Since v1.0.0

primitiveKind

Signature

declare const primitiveKind: (value: unknown) => PrimitiveKind

Source

Since v1.0.0