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>`.
17 lines (16 loc) • 641 B
JavaScript
import { unsafeUnwrapValueInErrWithoutAnyCheck } from './internal/intrinsics_unsafe.js';
import { createErr, isOk } from './result.js';
/**
* Maps a `Result<T, E>` to `Result<T, F>` by applying a _transformer_ function `mapFn<E, F>`
* to an contained `Err(E)` value, leaving an `Ok(T)` value untouched.
*
* This function can be used to pass through a successful result while handling an error.
*/
export function mapErrForResult(input, transformer) {
if (isOk(input)) {
return input;
}
const err = unsafeUnwrapValueInErrWithoutAnyCheck(input);
const result = transformer(err);
return createErr(result);
}