UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

27 lines (25 loc) 591 B
import { is } from "../function/is.js"; import { dfdlT } from "@monstermann/dfdl"; import { cloneObject } from "@monstermann/remmi"; //#region src/object/set.ts /** * `set(target, key, value)` * * Creates a new object with the `key` property set to `value`. * * ```ts * set({ a: 1, b: 2 }, "a", 3); // { a: 3, b: 2 } * ``` * * ```ts * pipe({ a: 1, b: 2 }, set("a", 3)); // { a: 3, b: 2 } * ``` */ const set = dfdlT((target, key, value) => { if (is(target[key], value)) return target; target = cloneObject(target); target[key] = value; return target; }, 3); //#endregion export { set };