method TaskClass.ensure
Private
TaskClass.ensure<T, E, F extends AnyFailure>(
task: TaskClass<T, E>,
predicate: (value: T) => boolean,
toFailure: (value: T) => F
): TaskClass<T, E | F>

Data-first twin of TaskClass#ensure — the invariant, receiver-first.

import { define } from '../result/failure.ts';
const Empty = define('Empty', 'no rows');

const rows = Task(() => [1, 2]);
await Task.ensure(rows, (r) => r.length > 0, () => Empty()); // [1, 2]

Type Parameters

F extends AnyFailure

Parameters

task: TaskClass<T, E>
predicate: (value: T) => boolean
toFailure: (value: T) => F

Return Type

Usage

import { TaskClass } from "lib/task/task.ts";