effect-io-ai

Package: effect
Module: Effect

Effect.filterOrDie

Filters an effect, dying with a custom defect if the predicate fails.

Details

This function applies a predicate to the result of an effect. If the predicate evaluates to false, the effect dies with a custom defect generated by the orDieWith function.

When to Use

This is useful for enforcing constraints on values and treating violations as fatal program errors.

Signature

declare const filterOrDie: { <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, orDieWith: (a: EqualsWith<A, B, A, Exclude<A, B>>) => unknown): <E, R>(self: Effect<A, E, R>) => Effect<B, E, R>; <A>(predicate: Predicate<NoInfer<A>>, orDieWith: (a: NoInfer<A>) => unknown): <E, R>(self: Effect<A, E, R>) => Effect<A, E, R>; <A, E, R, B extends A>(self: Effect<A, E, R>, refinement: Refinement<A, B>, orDieWith: (a: EqualsWith<A, B, A, Exclude<A, B>>) => unknown): Effect<B, E, R>; <A, E, R>(self: Effect<A, E, R>, predicate: Predicate<A>, orDieWith: (a: A) => unknown): Effect<A, E, R>; }

Source

Since v2.0.0