From 74f8dcdf8351a30e4581572ad8d5a49f83e0843d Mon Sep 17 00:00:00 2001 From: Rewrite0 Date: Thu, 10 Aug 2023 12:13:04 +0800 Subject: [PATCH] feat: omit function --- webui/src/utils/omit.test.ts | 22 ++++++++++++++++++++++ webui/src/utils/omit.ts | 12 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 webui/src/utils/omit.test.ts create mode 100644 webui/src/utils/omit.ts diff --git a/webui/src/utils/omit.test.ts b/webui/src/utils/omit.test.ts new file mode 100644 index 00000000..7748deaf --- /dev/null +++ b/webui/src/utils/omit.test.ts @@ -0,0 +1,22 @@ +import { expect, it } from 'vitest'; +import { omit } from './omit'; + +it('test omit', () => { + const obj = { + a: 1, + b: 2, + c: 3, + d: 4, + }; + + expect(omit(obj, ['a'])).toStrictEqual({ + b: 2, + c: 3, + d: 4, + }); + + expect(omit(obj, ['b', 'c'])).toStrictEqual({ + a: 1, + d: 4, + }); +}); diff --git a/webui/src/utils/omit.ts b/webui/src/utils/omit.ts new file mode 100644 index 00000000..63d0b180 --- /dev/null +++ b/webui/src/utils/omit.ts @@ -0,0 +1,12 @@ +export function omit( + obj: T, + omitKeys: Array +) { + return Object.keys(obj).reduce((acc, key) => { + if (omitKeys.includes(key)) { + return acc; + } else { + return { ...acc, [key]: obj[key] }; + } + }, {}); +}