Asserts that a Result or ResultAsync is a Failure and returns it. If the result is a Success, throws an error.
The type of the error value.
The Result or ResultAsync to assert as a Failure.
If the result is a Success.
import { import Result Result } from '@praha/byethrow';
const const result: Result.Result<never, "error"> result = import Result Result .const fail: <"error">(error: "error") => Result.Result<never, "error"> (+1 overload) fail ('error');
const const failure: Result.Failure<"error"> failure = import Result Result .const assertFailure: <Result.Result<never, "error">>(result: Result.Result<never, "error">) => Result.Failure<"error"> (+1 overload) assertFailure (const result: Result.Result<never, "error"> result );
// failure: { type: 'Failure', error: 'error' }import { import Result Result } from '@praha/byethrow';
const const result: Result.Result<42, never> result = import Result Result .const succeed: <42>(value: 42) => Result.Result<42, never> (+1 overload) succeed (42);
import Result Result .const assertFailure: <Result.ResultAsync<never, any>>(result: Result.ResultAsync<never, any>) => Promise<Result.Failure<any>> (+1 overload) assertFailure (result); // throws Errorimport { import Result Result } from '@praha/byethrow';
const const getResult: () => Result.Result<number, string> getResult = (): import Result Result .type Result<T, E> = Result.Success<T> | Result.Failure<E>A union type representing either a success or a failure.
Result <number, string> => import Result Result .const fail: <"error">(error: "error") => Result.Result<never, "error"> (+1 overload) fail ('error');
const const value: any value = import Result Result .const pipe: <Result.Result<number, string>, Result.Result<never, string>, Result.Failure<any>, any>(a: Result.Result<number, string>, ab: (a: Result.Result<number, string>) => Result.Result<never, string>, bc: (b: Result.Result<never, string>) => Result.Failure<any>, cd: (c: Result.Failure<any>) => any) => any (+25 overloads) pipe (
const getResult: () => Result.Result<number, string> getResult (),
import Result Result .const andThen: <Result.Result<number, string>, Result.Result<never, "die">>(fn: (a: number) => Result.Result<never, "die">) => (result: Result.Result<number, string>) => Result.Result<never, string> (+1 overload) andThen (() => import Result Result .const fail: <"die">(error: "die") => Result.Result<never, "die"> (+1 overload) fail ('die')),
import Result Result .const assertFailure: {
<R extends Result.ResultAsync<never, any>>(result: R): Promise<Result.Failure<Result.InferFailure<R>>>;
<R extends Result.Result<never, any>>(result: R): Result.Failure<Result.InferFailure<R>>;
}
Asserts that a
Result
or
ResultAsync
is a
Failure
and returns it.
If the result is a
Success
, throws an error.
assertFailure ,
import Result Result .const unwrapError: <Result.Failure<any>>() => (result: Result.Failure<any>) => any (+3 overloads) unwrapError (), // Safe unwrap after assertion
);unwrapError - Use with assertFailure to safely unwrap error values.
assertFailure<
R>(result):Promise<Failure<InferFailure<R>>>
Defined in: functions/assert-failure.ts:54
R extends ResultAsync<never, any>
R
Promise<Failure<InferFailure<R>>>
assertFailure<
R>(result):Failure<InferFailure<R>>
Defined in: functions/assert-failure.ts:55
R extends Result<never, any>
R
Failure<InferFailure<R>>