Skip to content

TaskValidation

TaskValidation<E, A> = Task<Validation<E, A>>

Defined in: Core/TaskValidation.ts:26

A Task that resolves to a Validation — combining async operations with error accumulation. Unlike TaskResult, multiple failures are collected rather than short-circuiting on the first error.

E

A

const validateName = (name: string): TaskValidation<string, string> =>
  name.length > 0
    ? TaskValidation.of(name)
    : TaskValidation.fail("Name is required");

// Accumulate errors from multiple async validations using ap
pipe(
  TaskValidation.of((name: string) => (age: number) => ({ name, age })),
  TaskValidation.ap(validateName("")),
  TaskValidation.ap(validateAge(-1))
)();
// Invalid(["Name is required", "Age must be positive"])