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) • 581 B
JavaScript
import { createErr, createOk } from '../../plain_result/core/result.js';
import { isNotNullOrUndefined } from '../core/maybe.js';
/**
* Transforms the `Maybe<T>` into a `Result<T, E>` by mapping `T` to `Ok(T)`.
* If `input` is `undefined` or `null`, then returns `Err(E)` with the result of `recoverer()`
*/
export function okOrElseForMaybe(input, recoverer) {
if (isNotNullOrUndefined(input)) {
const okWrapped = createOk(input);
return okWrapped;
}
const fallback = recoverer();
const errWrapped = createErr(fallback);
return errWrapped;
}