Bracket overview

The Bracket module provides provides a monadic interface over TE.bracket.

Added in v1.0.0


Table of contents


apply

ap

Signature

export declare const ap: <E, A>(fa: Bracket<E, A>) => <B>(fab: Bracket<E, (a: A) => B>) => Bracket<E, B>

Added in v1.0.0

apFirst

Signature

export declare const apFirst: <E, B>(second: Bracket<E, B>) => <A>(first: Bracket<E, A>) => Bracket<E, A>

Added in v1.0.0

apFirstSeq

Signature

export declare const apFirstSeq: <E, B>(second: Bracket<E, B>) => <A>(first: Bracket<E, A>) => Bracket<E, A>

Added in v1.0.0

apSecond

Signature

export declare const apSecond: <E, B>(second: Bracket<E, B>) => <A>(first: Bracket<E, A>) => Bracket<E, B>

Added in v1.0.0

apSecondSeq

Signature

export declare const apSecondSeq: <E, B>(second: Bracket<E, B>) => <A>(first: Bracket<E, A>) => Bracket<E, B>

Added in v1.0.0

combinators

tap

Composes computations in sequence, using the return value of one computation to determine the next computation and keeping only the result of the first.

Signature

export declare const tap: {
  <A, E, _>(self: Bracket<E, A>, f: (a: A) => Bracket<E, _>): Bracket<E, A>
  <A, E, _>(f: (a: A) => Bracket<E, _>): (self: Bracket<E, A>) => Bracket<E, A>
}

Added in v1.0.0

tapEither

Signature

export declare const tapEither: {
  <A, E2, _>(f: (a: A) => E.Either<E2, _>): <E1>(self: Bracket<E1, A>) => Bracket<E2 | E1, A>
  <E1, A, E2, _>(self: Bracket<E1, A>, f: (a: A) => E.Either<E2, _>): Bracket<E1 | E2, A>
}

Added in v1.0.0

tapIO

Signature

export declare const tapIO: {
  <A, _>(f: (a: A) => IO<_>): <E>(self: Bracket<E, A>) => Bracket<E, A>
  <E, A, _>(self: Bracket<E, A>, f: (a: A) => IO<_>): Bracket<E, A>
}

Added in v1.0.0

tapTask

Signature

export declare const tapTask: {
  <A, _>(f: (a: A) => T.Task<_>): <E>(self: Bracket<E, A>) => Bracket<E, A>
  <E, A, _>(self: Bracket<E, A>, f: (a: A) => T.Task<_>): Bracket<E, A>
}

Added in v1.0.0

constructors

fromAcquire

alias for fromTaskEither

Signature

export declare const fromAcquire: NaturalTransformation22<'TaskEither', 'Bracket'>

Added in v1.0.0

of

Signature

export declare const of: <E = never, T = never>(x: T) => Bracket<E, T>

Added in v1.0.0

conversions

fromEither

Signature

export declare const fromEither: <E, R>(fa: E.Either<E, R>) => Bracket<E, R>

Added in v1.0.0

fromIO

Signature

export declare const fromIO: <E, R>(fa: IO<R>) => Bracket<E, R>

Added in v1.0.0

fromTask

Signature

export declare const fromTask: <E, R>(fa: T.Task<R>) => Bracket<E, R>

Added in v1.0.0

fromTaskEither

Signature

export declare const fromTaskEither: NaturalTransformation22<'TaskEither', 'Bracket'>

Added in v1.0.0

do notation

Do

Signature

export declare const Do: Bracket<never, {}>

Added in v1.0.0

apS

Signature

export declare const apS: <N, A, E, B>(
  name: Exclude<N, keyof A>,
  fb: Bracket<E, B>
) => (fa: Bracket<E, A>) => Bracket<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>

Added in v1.0.0

apSSeq

Signature

export declare const apSSeq: <N, A, E, B>(
  name: Exclude<N, keyof A>,
  fb: Bracket<E, B>
) => (fa: Bracket<E, A>) => Bracket<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>

Added in v1.0.0

bind

Signature

export declare const bind: <N, A, E, B>(
  name: Exclude<N, keyof A>,
  f: (a: A) => Bracket<E, B>
) => (ma: Bracket<E, A>) => Bracket<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>

Added in v1.0.0

bindTo

Signature

export declare const bindTo: <N>(name: N) => <E, A>(fa: Bracket<E, A>) => Bracket<E, { readonly [K in N]: A }>

Added in v1.0.0

let

Signature

export declare const let: <N, A, B>(
  name: Exclude<N, keyof A>,
  f: (a: A) => B
) => <E>(fa: Bracket<E, A>) => Bracket<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B }>

Added in v1.0.0

instances

ApplicativePar

Signature

export declare const ApplicativePar: Applicative2<'Bracket'>

Added in v1.0.0

ApplicativeSeq

Runs computations sequentially.

Signature

export declare const ApplicativeSeq: Applicative2<'Bracket'>

Added in v1.0.0

ApplyPar

Signature

export declare const ApplyPar: Apply2<'Bracket'>

Added in v1.0.0

ApplySeq

Signature

export declare const ApplySeq: Apply2<'Bracket'>

Added in v1.0.0

Bracket

Signature

export declare const Bracket: <E, R>(
  acquire: TE.TaskEither<E, R>,
  dispose: (resource: R) => TE.TaskEither<E, void>
) => Bracket<E, R>

Added in v1.0.0

Chain

Signature

export declare const Chain: Chain2<'Bracket'>

Added in v1.0.0

FromEither

Signature

export declare const FromEither: FromEither2<'Bracket'>

Added in v1.0.0

FromIO

Signature

export declare const FromIO: FromIO2<'Bracket'>

Added in v1.0.0

FromTask

Signature

export declare const FromTask: FromTask2<'Bracket'>

Added in v1.0.0

Functor

Signature

export declare const Functor: Functor2<'Bracket'>

Added in v1.0.0

Monad

Signature

export declare const Monad: Monad2<'Bracket'>

Added in v1.0.0

MonadIO

Signature

export declare const MonadIO: MonadIO2<'Bracket'>

Added in v1.0.0

MonadTask

Signature

export declare const MonadTask: MonadTask2<'Bracket'>

Added in v1.0.0

Pointed

Signature

export declare const Pointed: Pointed2<'Bracket'>

Added in v1.0.0

mapping

as

Maps the value to the specified constant value.

Signature

export declare const as: {
  <A>(a: A): <E, _>(self: Bracket<E, _>) => Bracket<E, A>
  <E, A, _>(self: Bracket<E, _>, a: A): Bracket<E, A>
}

Added in v1.0.0

asUnit

Maps every value to the void constant value.

Signature

export declare const asUnit: <E, _>(self: Bracket<E, _>) => Bracket<E, void>

Added in v1.0.0

flap

Signature

export declare const flap: <A>(a: A) => <E, B>(fab: Bracket<E, (a: A) => B>) => Bracket<E, B>

Added in v1.0.0

map

Signature

export declare const map: <A, B>(f: (a: A) => B) => <E>(fa: Bracket<E, A>) => Bracket<E, B>

Added in v1.0.0

model

Bracket (type alias)

Signature

export type Bracket<E, R> = <T>(use: (resource: R) => TE.TaskEither<E, T>) => TE.TaskEither<E, T>

Added in v1.0.0

ResourceOf (type alias)

Utility type for extraction Resource type from Bracket

Signature

export type ResourceOf<B extends Bracket<any, any> | Bracket<never, any>> = B extends Bracket<any, infer R>
  ? R
  : B extends Bracket<never, infer R>
  ? R
  : never

Added in v1.0.0

sequencing

flatMap

Signature

export declare const flatMap: <E, A, B>(f: (a: A) => Bracket<E, B>) => (fa: Bracket<E, A>) => Bracket<E, B>

Added in v1.0.0

sequenceS

Signature

export declare const sequenceS: <E, NER>(
  r: (keyof NER extends never ? never : NER) & Record<string, Bracket<E, any>>
) => Bracket<E, { [K in keyof NER]: [NER[K]] extends [Bracket<any, infer A>] ? A : never }>

Added in v1.0.0

sequenceSSeq

Signature

export declare const sequenceSSeq: <E, NER>(
  r: (keyof NER extends never ? never : NER) & Record<string, Bracket<E, any>>
) => Bracket<E, { [K in keyof NER]: [NER[K]] extends [Bracket<any, infer A>] ? A : never }>

Added in v1.0.0

sequenceT

Signature

export declare const sequenceT: <E, T>(
  ...t: T & { readonly 0: Bracket<E, any> }
) => Bracket<E, { [K in keyof T]: [T[K]] extends [Bracket<E, infer A>] ? A : never }>

Added in v1.0.0

sequenceTSeq

Signature

export declare const sequenceTSeq: <E, T>(
  ...t: T & { readonly 0: Bracket<E, any> }
) => Bracket<E, { [K in keyof T]: [T[K]] extends [Bracket<E, infer A>] ? A : never }>

Added in v1.0.0

traversing

sequenceArray

Equivalent to ReadonlyArray#sequence(ApplicativePar).

Signature

export declare const sequenceArray: <E, A>(ta: readonly Bracket<E, A>[]) => Bracket<E, readonly A[]>

Added in v1.0.0

sequenceSeqArray

Equivalent to ReadonlyArray#sequence(ApplicativeSeq).

Signature

export declare const sequenceSeqArray: <E, A>(ta: readonly Bracket<E, A>[]) => Bracket<E, readonly A[]>

Added in v1.0.0

traverseArray

Equivalent to ReadonlyArray#traverse(ApplicativePar).

Signature

export declare const traverseArray: <A, FE, B>(
  f: (a: A) => Bracket<FE, B>
) => (ta: readonly A[]) => Bracket<FE, readonly B[]>

Added in v1.0.0

traverseReadonlyArrayWithIndex

Equivalent to ReadonlyArray#traverseWithIndex(ApplicativePar).

Signature

export declare const traverseReadonlyArrayWithIndex: <A, E, B>(
  f: (i: number, a: A) => Bracket<E, B>
) => (ta: readonly A[]) => Bracket<E, readonly B[]>

Added in v1.0.0

traverseReadonlyNonEmptyArrayWithIndex

Equivalent to ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar).

Signature

export declare const traverseReadonlyNonEmptyArrayWithIndex: <A, E, B>(
  f: (i: number, a: A) => Bracket<E, B>
) => (ta: RNEA.ReadonlyNonEmptyArray<A>) => Bracket<E, RNEA.ReadonlyNonEmptyArray<B>>

Added in v1.0.0

traverseSeqArray

Equivalent to ReadonlyArray#traverse(ApplicativeSeq).

Signature

export declare const traverseSeqArray: <A, FE, B>(
  f: (a: A) => Bracket<FE, B>
) => (ta: readonly A[]) => Bracket<FE, readonly B[]>

Added in v1.0.0

traverseSeqReadonlyArrayWithIndex

Equivalent to ReadonlyArray#traverseWithIndex(ApplicativeSeq).

Signature

export declare const traverseSeqReadonlyArrayWithIndex: <A, E, B>(
  f: (i: number, a: A) => Bracket<E, B>
) => (ta: readonly A[]) => Bracket<E, readonly B[]>

Added in v1.0.0

traverseSeqReadonlyNonEmptyArrayWithIndex

Equivalent to ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq).

Signature

export declare const traverseSeqReadonlyNonEmptyArrayWithIndex: <A, E, B>(
  f: (i: number, a: A) => Bracket<E, B>
) => (ta: RNEA.ReadonlyNonEmptyArray<A>) => Bracket<E, RNEA.ReadonlyNonEmptyArray<B>>

Added in v1.0.0

type lambdas

URI

Signature

export declare const URI: 'Bracket'

Added in v1.0.0

URI (type alias)

Signature

export type URI = typeof URI

Added in v1.0.0

utils

noDispose

Signature

export declare const noDispose: <E>() => TE.TaskEither<E, undefined>

Added in v1.0.0

use

Signature

export declare const use: <E, R, T>(
  use: (r: R) => TE.TaskEither<E, T>
) => (bracket: Bracket<E, R>) => TE.TaskEither<E, T>

Added in v1.0.0