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; };