Package: effect
Module: Result
Lifts a value into a Result based on a predicate or refinement.
When to use
Use to construct a Result from a raw value guarded by a predicate or
refinement.
Details
true, the value becomes Success<A>false, orFailWith produces the error for Failure<E>Refinement to narrow the success typeExample (Validating a number)
import { pipe, Result } from "effect"
const ensurePositive = pipe(
5,
Result.liftPredicate(
(n: number) => n > 0,
(n) => `${n} is not positive`
)
)
console.log(ensurePositive)
// Output: { _tag: "Success", success: 5, ... }
See
filterOrFail to validate a value that is already in a ResultfromNullishOr for nullable-based constructionSignature
declare const liftPredicate: { <A, B extends A, E>(refinement: Refinement<A, B>, orFailWith: (a: A) => E): (a: A) => Result<B, E>; <B extends A, E, A = B>(predicate: Predicate<A>, orFailWith: (a: A) => E): (a: B) => Result<B, E>; <A, E, B extends A>(self: A, refinement: Refinement<A, B>, orFailWith: (a: A) => E): Result<B, E>; <B extends A, E, A = B>(self: B, predicate: Predicate<A>, orFailWith: (a: A) => E): Result<B, E>; }
Since v3.4.0