From 6592cf817220d2f7034dcff6d42ce121686cb500 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sun, 15 Dec 2024 00:11:42 +0100 Subject: [PATCH] Lib: Fix bug in form_data_clean (mutating while iterating) --- src/lib/form.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib/form.ts b/src/lib/form.ts index 93c35b7..4445532 100644 --- a/src/lib/form.ts +++ b/src/lib/form.ts @@ -15,21 +15,27 @@ export const form_data_get_and_remove_id = (data: FormData): string => { * Remove empty fields and files from FormData objects. */ export const form_data_clean = (data: FormData): FormData => { + let delete_keys: string[] = []; + for (const [key, value] of data.entries()) { - if (value === "") { + if (value === "" || value === null) { // Remove empty keys - data.delete(key); + delete_keys.push(key); } else if ( // Remove empty files - typeof value === "object" && value !== null && + typeof value === "object" && "size" in value && value.size === 0 ) { - data.delete(key); + delete_keys.push(key); } } + delete_keys.forEach((key) => { + data.delete(key); + }); + return data; };