26 lines
647 B
JavaScript
26 lines
647 B
JavaScript
![]() |
/**
|
||
|
* Omit properties from input object. Accepts any number of properties to
|
||
|
* remove. Example:
|
||
|
*
|
||
|
* ```ts
|
||
|
* omit(myObject, "if", "dependencies");
|
||
|
* ```
|
||
|
*
|
||
|
* @returns shallow copy of input object without specified properties
|
||
|
*/
|
||
|
export function omit(object, ...keysToOmit) {
|
||
|
const result = {};
|
||
|
Object.keys(object).forEach((key) => {
|
||
|
if (!keysToOmit.includes(key)) {
|
||
|
result[key] = object[key];
|
||
|
}
|
||
|
});
|
||
|
if (object.getOneOfOrigin) {
|
||
|
Object.defineProperty(result, "getOneOfOrigin", {
|
||
|
enumerable: false,
|
||
|
value: object.getOneOfOrigin
|
||
|
});
|
||
|
}
|
||
|
return result;
|
||
|
}
|