UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

69 lines (67 loc) 1.15 kB
import { dfdlT } from "@monstermann/dfdl"; //#region src/map/getOrElse.ts /** * `getOrElse(map, key, orElse)` * * Gets the value associated with `key` from `map`, calling `orElse` with the map if the key doesn't exist or the value is nullable. * * ```ts * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "a", * () => 0, * ); // 1 * * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "b", * () => 0, * ); // 0 * * getOrElse( * new Map([ * ["a", 1], * ["b", null], * ]), * "c", * (map) => map.size, * ); // 2 * ``` * * ```ts * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("a", () => 0), * ); // 1 * * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("b", () => 0), * ); // 0 * * pipe( * new Map([ * ["a", 1], * ["b", null], * ]), * getOrElse("c", (map) => map.size), * ); // 2 * ``` */ const getOrElse = dfdlT((target, key, orElse) => { return target.get(key) ?? orElse(target); }, 3); //#endregion export { getOrElse };