True Myth / result / mapOrElse
Function: mapOrElse()
Call Signature
mapOrElse<
T,U,E>(orElseFn,mapFn,result):U
Map over a Result instance as in map and get out the value if result is Ok, or apply a function (orElseFn) to the value wrapped in the Err to get a default value.
Like mapOr but using a function to transform the error into a usable value instead of simply using a default value.
Examples
import { ok, err, mapOrElse } from 'true-myth/result';
const summarize = (s: string) => `The response was: '${s}'`;
const getReason = (err: { code: number, reason: string }) => err.reason;
const okResponse = ok("Things are grand here.");
const mappedOkAndUnwrapped = mapOrElse(getReason, summarize, okResponse);
console.log(mappedOkAndUnwrapped); // The response was: 'Things are grand here.'
const errResponse = err({ code: 500, reason: 'Nothing at this endpoint!' });
const mappedErrAndUnwrapped = mapOrElse(getReason, summarize, errResponse);
console.log(mappedErrAndUnwrapped); // Nothing at this endpoint!Type Parameters
T
T
The type of the wrapped Ok value.
U
U
The type of the resulting value from applying mapFn to the Ok value or orElseFn to the Err value.
E
E
The type of the wrapped Err value.
Parameters
orElseFn
(err) => U
The function to apply to the wrapped Err value to get a usable value if result is an Err.
mapFn
(t) => U
The function to apply to the wrapped Ok value if result is an Ok.
result
Result<T, E>
The Result instance to map over.
Returns
U
Call Signature
mapOrElse<
T,U,E>(orElseFn,mapFn): (result) =>U
Map over a Result instance as in map and get out the value if result is Ok, or apply a function (orElseFn) to the value wrapped in the Err to get a default value.
Like mapOr but using a function to transform the error into a usable value instead of simply using a default value.
Examples
import { ok, err, mapOrElse } from 'true-myth/result';
const summarize = (s: string) => `The response was: '${s}'`;
const getReason = (err: { code: number, reason: string }) => err.reason;
const okResponse = ok("Things are grand here.");
const mappedOkAndUnwrapped = mapOrElse(getReason, summarize, okResponse);
console.log(mappedOkAndUnwrapped); // The response was: 'Things are grand here.'
const errResponse = err({ code: 500, reason: 'Nothing at this endpoint!' });
const mappedErrAndUnwrapped = mapOrElse(getReason, summarize, errResponse);
console.log(mappedErrAndUnwrapped); // Nothing at this endpoint!Type Parameters
T
T
The type of the wrapped Ok value.
U
U
The type of the resulting value from applying mapFn to the Ok value or orElseFn to the Err value.
E
E
The type of the wrapped Err value.
Parameters
orElseFn
(err) => U
The function to apply to the wrapped Err value to get a usable value if result is an Err.
mapFn
(t) => U
The function to apply to the wrapped Ok value if result is an Ok.
Returns
(
result):U
Parameters
result
Result<T, E>
Returns
U
Call Signature
mapOrElse<
T,U,E>(orElseFn): (mapFn) => (result) =>U
Map over a Result instance as in map and get out the value if result is Ok, or apply a function (orElseFn) to the value wrapped in the Err to get a default value.
Like mapOr but using a function to transform the error into a usable value instead of simply using a default value.
Examples
import { ok, err, mapOrElse } from 'true-myth/result';
const summarize = (s: string) => `The response was: '${s}'`;
const getReason = (err: { code: number, reason: string }) => err.reason;
const okResponse = ok("Things are grand here.");
const mappedOkAndUnwrapped = mapOrElse(getReason, summarize, okResponse);
console.log(mappedOkAndUnwrapped); // The response was: 'Things are grand here.'
const errResponse = err({ code: 500, reason: 'Nothing at this endpoint!' });
const mappedErrAndUnwrapped = mapOrElse(getReason, summarize, errResponse);
console.log(mappedErrAndUnwrapped); // Nothing at this endpoint!Type Parameters
T
T
The type of the wrapped Ok value.
U
U
The type of the resulting value from applying mapFn to the Ok value or orElseFn to the Err value.
E
E
The type of the wrapped Err value.
Parameters
orElseFn
(err) => U
The function to apply to the wrapped Err value to get a usable value if result is an Err.
Returns
(
mapFn): (result) =>U
Parameters
mapFn
(t) => U
Returns
(
result):U
Parameters
result
Result<T, E>
Returns
U