UNPKG

ts-outcome

Version:

A small set of Typescript utils to represent success / failure in a more sane way than throwing errors

33 lines (32 loc) 1.2 kB
type DefaultErrorType = Error; export type OutcomeSuccess<SuccessType> = { type: 'success'; isSuccess: true; value: SuccessType; }; export type OutcomeError<ErrorType> = { type: 'error'; isSuccess: false; error: ErrorType; }; /** * An Outcome type representing either a successful value or an error. */ export type Outcome<SuccessType, ErrorType = DefaultErrorType> = OutcomeSuccess<SuccessType> | OutcomeError<ErrorType>; /** * Creates a successful Outcome. */ export declare function makeSuccess<SuccessType, ErrorType = DefaultErrorType>(value: SuccessType): Outcome<SuccessType, ErrorType>; /** * Creates an error Outcome. */ export declare function makeError<SuccessType, ErrorType = DefaultErrorType>(error: ErrorType): Outcome<SuccessType, ErrorType>; /** * Checks if an Outcome is successful. */ export declare function isSuccess<SuccessType, ErrorType = DefaultErrorType>(result: Outcome<SuccessType, ErrorType>): result is OutcomeSuccess<SuccessType>; /** * Checks if an Outcome is an error. */ export declare function isError<SuccessType, ErrorType = DefaultErrorType>(result: Outcome<SuccessType, ErrorType>): result is OutcomeError<ErrorType>; export {};