From ba50d17846ec8b0757bdab6553cee04d65cf28f0 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Fri, 6 May 2022 03:42:41 +0100 Subject: [PATCH] fix: tidy up deleteundefinedprops and validate against arrays --- server/src/utils/misc.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/src/utils/misc.ts b/server/src/utils/misc.ts index 79b18eea0..5f212ead8 100644 --- a/server/src/utils/misc.ts +++ b/server/src/utils/misc.ts @@ -109,13 +109,17 @@ export function StripUrl(url: string, userInput: string | null) { // runtime validation. // eslint-disable-next-line @typescript-eslint/no-explicit-any export function DeleteUndefinedProps(record: any) { - if (typeof record !== "object" || record === null) { + if (typeof record !== "object" || record === null || Array.isArray(record)) { throw new Error(`Non-object passed to DeleteUndefinedProps.`); } - for (const key in record) { - if (record[key] === undefined) { - delete record[key]; + // asserted above + const rec = record as Record; + + for (const key of Object.keys(rec)) { + if (rec[key] === undefined) { + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete rec[key]; } } }