UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

31 lines (29 loc) 716 B
import { dfdlT } from "@monstermann/dfdl"; //#region src/object/getOrElse.ts /** * `getOrElse(target, key, orElse)` * * Returns the value of `key` property from `target` object, or the result of calling `orElse` function with `target` if not found or falsy. * * ```ts * getOrElse({ a: 1, b: 2 }, "a", () => 0); // 1 * getOrElse({ a: 1, b: 2 }, "c", (obj) => Object.keys(obj).length); // 2 * ``` * * ```ts * pipe( * { a: 1, b: 2 }, * getOrElse("a", () => 0), * ); // 1 * * pipe( * { a: 1, b: 2 }, * getOrElse("c", (obj) => Object.keys(obj).length), * ); // 2 * ``` */ const getOrElse = dfdlT((target, key, orElse) => { return target[key] || orElse(target); }, 3); //#endregion export { getOrElse };