Package: effect
Module: Result
Adds a named field to the do-notation accumulator by running a Result-producing
function that receives the current accumulated object.
When to use
Use when you need to add a Result-producing step to a Result
do-notation pipeline and store its successful value under a named field in
the accumulated object.
Details
Failurelet for pure (non-Result) computed fieldsExample (Binding Result values)
import { pipe, Result } from "effect"
const result = pipe(
Result.Do,
Result.bind("x", () => Result.succeed(2)),
Result.bind("y", ({ x }) => Result.succeed(x + 3))
)
console.log(result)
// Output: { _tag: "Success", success: { x: 2, y: 5 }, ... }
See
Do to start the do-notation chainlet for pure computed fieldsbindTo to wrap an initial Result into a named fieldSignature
declare const bind: { <N extends string, A extends object, B, L2>(name: Exclude<N, keyof A>, f: (a: NoInfer<A>) => Result<B, L2>): <L1>(self: Result<A, L1>) => Result<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }, L1 | L2>; <A extends object, L1, N extends string, B, L2>(self: Result<A, L1>, name: Exclude<N, keyof A>, f: (a: NoInfer<A>) => Result<B, L2>): Result<{ [K in N | keyof A]: K extends keyof A ? A[K] : B; }, L1 | L2>; }
Since v2.0.0