Asserts that a Result or ResultAsync is a Success and returns it. If the result is a Failure, throws an error.
The type of the success value.
The Result or ResultAsync to assert as a Success.
If the result is a Failure.
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);
const const success: Result.Success<42> success = import Result Result .const assertSuccess: <Result.Result<42, never>>(result: Result.Result<42, never>) => Result.Success<42> (+1 overload) assertSuccess (const result: Result.Result<42, never> result );
// success: { type: 'Success', value: 42 }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');
import Result Result .const assertSuccess: <Result.ResultAsync<any, never>>(result: Result.ResultAsync<any, never>) => Promise<Result.Success<any>> (+1 overload) assertSuccess (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 succeed: <42>(value: 42) => Result.Result<42, never> (+1 overload) succeed (42);
const const value: any value = import Result Result .const pipe: <Result.Result<number, string>, Result.Result<number | "fallback", never>, Result.Success<any>, any>(a: Result.Result<number, string>, ab: (a: Result.Result<number, string>) => Result.Result<number | "fallback", never>, bc: (b: Result.Result<number | "fallback", never>) => Result.Success<any>, cd: (c: Result.Success<any>) => any) => any (+25 overloads) pipe (
const getResult: () => Result.Result<number, string> getResult (),
import Result Result .const orElse: <Result.Result<number, string>, Result.Result<"fallback", never>>(fn: (a: string) => Result.Result<"fallback", never>) => (result: Result.Result<number, string>) => Result.Result<number | "fallback", never> (+1 overload) orElse (() => import Result Result .const succeed: <"fallback">(value: "fallback") => Result.Result<"fallback", never> (+1 overload) succeed ('fallback')),
import Result Result .const assertSuccess: {
<R extends Result.ResultAsync<any, never>>(result: R): Promise<Result.Success<Result.InferSuccess<R>>>;
<R extends Result.Result<any, never>>(result: R): Result.Success<Result.InferSuccess<R>>;
}
Asserts that a
Result
or
ResultAsync
is a
Success
and returns it.
If the result is a
Failure
, throws an error.
assertSuccess ,
import Result Result .const unwrap: <Result.Success<any>>() => (result: Result.Success<any>) => any (+3 overloads) unwrap (), // Safe unwrap after assertion
);unwrap - Use with assertSuccess to safely unwrap success values.
assertSuccess<
R>(result):Promise<Success<InferSuccess<R>>>
Defined in: functions/assert-success.ts:54
R extends ResultAsync<any, never>
R
Promise<Success<InferSuccess<R>>>
assertSuccess<
R>(result):Success<InferSuccess<R>>
Defined in: functions/assert-success.ts:55
R extends Result<any, never>
R
Success<InferSuccess<R>>