UNPKG

typed-utilities

Version:
35 lines (34 loc) 1.62 kB
import { Left, Right } from "./Either"; export declare type Ok<Value = unknown> = Left<Value>; export declare type Err<Error = unknown> = Right<Error>; export declare type Result<Value = unknown, Error = unknown> = Ok<Value> | Err<Error>; declare function isOk<Value = unknown>(result: Result<Value, unknown>): result is Ok<Value>; declare function assertOk<Value = unknown>(result: Result<Value, unknown>, message?: string): asserts result is Ok<Value>; declare function isErr<Error = unknown>(result: Result<unknown, Error>): result is Err<Error>; declare function assertErr<Error = unknown>(result: Result<unknown, Error>, message?: string): asserts result is Err<Error>; declare type Match<IfOk, IfErr, Value = unknown, Error = unknown> = { readonly ok: (value: Value) => IfOk; readonly err: (error: Error) => IfErr; }; export declare const Result: { is: { ok: typeof isOk; err: typeof isErr; }; assert: { ok: typeof assertOk; err: typeof assertErr; }; of: { ok: <Value = unknown>(value: Value) => Ok<Value>; err: <Error_1 = unknown>(error: Error_1) => Err<unknown>; }; to: { okValue: <Value_1 = unknown>(result: Ok<Value_1>) => Value_1; errError: <Error_2 = unknown>(result: Err<Error_2>) => Error_2; }; match: <IfOk, IfErr, Value_2 = unknown, Error_3 = unknown>(result: Result<Value_2, Error_3>, match: Match<IfOk, IfErr, Value_2, Error_3>) => IfOk | IfErr; tryCatch: <T>(fn: () => T) => Result<T, unknown>; tryCatchAsync: <T_1>(fn: () => Promise<T_1>) => Promise<Result<T_1, unknown>>; }; export {};