perlica
Version:
<h1 align="center">Perlica</h1>
27 lines (26 loc) • 1.03 kB
TypeScript
import type { Option } from "../Option";
import type { Result } from "../Result";
import { OnceIterator } from "../Iterator";
export declare class Task<T> {
private readonly f;
constructor(f: () => Promise<T>);
unsafeRun(): Promise<T>;
map<B>(f: (a: T) => B): Task<B>;
flatMap<B>(f: (a: T) => Task<B>): Task<B>;
filter(predicate: (arg: T) => boolean): Task<Option<T>>;
and<B>(that: Task<B>): Task<B>;
expect(msg: string): Task<T>;
inspect(f: (v: T) => void): Task<T>;
mapOr<B>(def: B, f: (a: T) => B): Task<B>;
mapOrElse<B>(d: () => B, f: (a: T) => B): Task<B>;
okOr<E>(error: E): Task<Result<T, E>>;
okOrElse<E>(f: () => E): Task<Result<T, E>>;
or(that: Task<T>): Task<T>;
orElse(f: () => Task<T>): Task<T>;
unwrap(): Task<T>;
unwrapOr(def: T): Task<T>;
unwrapOrElse(f: () => T): Task<T>;
safeRun(): Promise<Result<T, unknown>>;
[Symbol.iterator](): OnceIterator<Task<T>, T>;
}
export declare const createTask: <T>(f: () => Promise<T>) => Task<T>;