UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

56 lines (54 loc) 969 B
import { dfdlT } from "@monstermann/dfdl"; import { cloneMap } from "@monstermann/remmi"; //#region src/map/removeOr.ts /** * `removeOr(map, key, or)` * * Removes the entry with the specified `key` from `map`, returning `or` if the key doesn't exist. * * ```ts * removeOr( * new Map([ * ["a", 1], * ["b", 2], * ]), * "a", * null, * ); // Map(1) { "b" => 2 } * * removeOr( * new Map([ * ["a", 1], * ["b", 2], * ]), * "c", * null, * ); // null * ``` * * ```ts * pipe( * new Map([ * ["a", 1], * ["b", 2], * ]), * removeOr("a", null), * ); // Map(1) { "b" => 2 } * * pipe( * new Map([ * ["a", 1], * ["b", 2], * ]), * removeOr("c", null), * ); // null * ``` */ const removeOr = dfdlT((target, key, or) => { if (!target.has(key)) return or; const result = cloneMap(target); result.delete(key); return result; }, 3); //#endregion export { removeOr };