TaskValidation<E, A> = Task<Validation<E, A>>
Defined in: Core/TaskValidation.ts:27
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.valid(name)
: TaskValidation.invalid("Name is required");
// Accumulate errors from multiple async validations using ap
pipe(
TaskValidation.valid((name: string) => (age: number) => ({ name, age })),
TaskValidation.ap(validateName("")),
TaskValidation.ap(validateAge(-1))
)();
// Invalid(["Name is required", "Age must be positive"])