UNPKG

do-try-tuple

Version:

Catches errors and rejected promises, returns tuple

21 lines (20 loc) 1.01 kB
export type Failure<E = unknown> = readonly [ok: false, error: E, undefined]; export type Success<T> = readonly [ok: true, error: undefined, value: T]; export type ErrValueTuple<T, E = unknown> = Failure<E> | Success<T>; /** @since 3.0.0 */ export declare const success: <T>(value: T) => Success<T>; /** @since 3.0.0 */ export declare const failure: <E>(err: E) => Failure<E>; export declare const safe: { (promise: Promise<never>): Promise<readonly [false, unknown, never]>; <T>(promise: Promise<T>): Promise<ErrValueTuple<T>>; }; export declare const doTry: { (fn: () => never): readonly [false, unknown, never]; (fn: () => Promise<never>): Promise<readonly [false, unknown, never]>; <T>(fn: () => Promise<T>): Promise<ErrValueTuple<T>>; <T>(fn: () => T): ErrValueTuple<T>; }; export declare const isFailure: (result: ErrValueTuple<unknown>) => result is Failure; export declare const isSuccess: (result: ErrValueTuple<unknown>) => result is Success<unknown>; export default doTry;