Hyperlinkv0.8.0-beta.28

Array

Array.liftResultconsteffect/Array.ts:4110
<A extends Array<unknown>, E, B>(f: (...a: A) => Result.Result<B, E>): (
  ...a: A
) => Array<B>

Lifts a Result-returning function into one that returns an array: failures produce [], successes produce [value].

When to use

Use when a fallible parser or lookup should participate in array pipelines as zero-or-one results and the failure value should be discarded.

Example (Lifting a Result function)

import { Array, Result } from "effect"

const parseNumber = (s: string): Result.Result<number, Error> =>
  isNaN(Number(s))
    ? Result.fail(new Error("Not a number"))
    : Result.succeed(Number(s))

const liftedParseNumber = Array.liftResult(parseNumber)
console.log(liftedParseNumber("42")) // [42]
console.log(liftedParseNumber("not a number")) // []
Source effect/Array.ts:41107 lines
export const liftResult = <A extends Array<unknown>, E, B>(
  f: (...a: A) => Result.Result<B, E>
) =>
(...a: A): Array<B> => {
  const e = f(...a)
  return Result.isFailure(e) ? [] : [e.success]
}