Skip to content

chain

chain<E, A, B>(f): (data) => Validation<E, B>

Defined in: Core/Validation.ts:115

Chains Validation computations. If the first is Valid, passes the value to f. If the first is Invalid, propagates the errors.

Note: chain short-circuits on first error. Use ap to accumulate errors.

E

A

B

(a) => Validation<E, B>

(data): Validation<E, B>

Validation<E, A>

Validation<E, B>

const validatePositive = (n: number): Validation<string, number> =>
  n > 0 ? Validation.of(n) : Validation.fail("Must be positive");

pipe(Validation.of(5), Validation.chain(validatePositive)); // Valid(5)
pipe(Validation.of(-1), Validation.chain(validatePositive)); // Invalid(["Must be positive"])