Lib: Fix bug in form_data_clean (mutating while iterating)

This commit is contained in:
2024-12-15 00:11:42 +01:00
parent 2e0539a9b8
commit 3b6c45e86e

View File

@ -15,20 +15,26 @@ export const form_data_get_and_remove_id = (data: FormData): string => {
* Remove empty fields and files from FormData objects. * Remove empty fields and files from FormData objects.
*/ */
export const form_data_clean = (data: FormData): FormData => { export const form_data_clean = (data: FormData): FormData => {
let delete_keys: string[] = [];
for (const [key, value] of data.entries()) { for (const [key, value] of data.entries()) {
if (value === "") { if (value === "" || value === null) {
// Remove empty keys // Remove empty keys
data.delete(key); delete_keys.push(key);
} else if ( } else if (
// Remove empty files // Remove empty files
typeof value === "object" &&
value !== null && value !== null &&
typeof value === "object" &&
"size" in value && "size" in value &&
value.size === 0 value.size === 0
) { ) {
delete_keys.push(key);
}
}
delete_keys.forEach((key) => {
data.delete(key); data.delete(key);
} });
}
return data; return data;
}; };