option-t
Version:
A toolkit of Nullable/Option/Result type implementation in ECMAScript. Their APIs are inspired by Rust's `Option<T>` and `Result<T, E>`.
16 lines (15 loc) • 547 B
JavaScript
import { unsafeUnwrapValueInErrWithoutAnyCheck } from './internal/intrinsics_unsafe.js';
import { isOk } from './result.js';
/**
* Calls _recoverer_ and return its returned value if _input_ is `Err(E)`,
* otherwise returns _input_ as `Ok(T)`.
* This function can be used for control flow based on result values.
*/
export function orElseForResult(input, recoverer) {
if (isOk(input)) {
return input;
}
const err = unsafeUnwrapValueInErrWithoutAnyCheck(input);
const fallback = recoverer(err);
return fallback;
}