UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

31 lines (29 loc) 739 B
import { dfdlT } from "@monstermann/dfdl"; import { cloneSet } from "@monstermann/remmi"; //#region src/set/addAll.ts /** * `addAll(target, values)` * * Adds all `values` from an iterable to the `target` set and returns a new set. * * ```ts * addAll(new Set([1, 2]), [3, 4]); // Set([1, 2, 3, 4]) * addAll(new Set([1, 2]), [2, 3]); // Set([1, 2, 3]) * ``` * * ```ts * pipe(new Set([1, 2]), addAll([3, 4])); // Set([1, 2, 3, 4]) * pipe(new Set([1, 2]), addAll([2, 3])); // Set([1, 2, 3]) * ``` */ const addAll = dfdlT((target, values) => { let result; for (const value of values) { if (target.has(value)) continue; result ??= cloneSet(target); result.add(value); } return result ?? target; }, 2); //#endregion export { addAll };