diff --git a/backend/src/lib/fn/object.ts b/backend/src/lib/fn/object.ts index 87db80343..8e9ede8db 100644 --- a/backend/src/lib/fn/object.ts +++ b/backend/src/lib/fn/object.ts @@ -13,6 +13,22 @@ export const pick = (obj: T, keys: TKey ); }; +/** + * Omit a list of properties from an object + * into a new object + */ +export const omit = (obj: T, keys: TKeys[]): Omit => { + if (!obj) return {} as Omit; + return (Object.keys(obj) as TKeys[]).reduce( + (acc, key) => { + if (!keys.includes(key)) { + (acc as T)[key] = obj[key]; + } + return acc; + }, + {} as Omit + ); +}; /** * Removes (shakes out) undefined entries from an * object. Optional second argument shakes out values