@monstermann/fn
Version:
A utility library for TypeScript.
28 lines (26 loc) • 651 B
JavaScript
import { dfdlT } from "@monstermann/dfdl";
import { markAsMutable } from "@monstermann/remmi";
//#region src/object/omit.ts
/**
* `omit(target, keys)`
*
* Creates a new object excluding the properties specified in the `keys` iterable.
*
* ```ts
* omit({ a: 1, b: 2, c: 3 }, ["a", "c"]); // { b: 2 }
* ```
*
* ```ts
* pipe({ a: 1, b: 2, c: 3 }, omit(["a", "c"])); // { b: 2 }
* ```
*/
const omit = dfdlT((target, keys) => {
for (const key of keys) if (key in target) {
const result = {};
for (const k in target) if (!keys.includes(k)) result[k] = target[k];
return markAsMutable(result);
}
return target;
}, 2);
//#endregion
export { omit };