From 2d6de3064c9bda4096e28bde4384733c1b41c122 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sun, 3 Mar 2024 18:32:51 -1000 Subject: [PATCH] Fix header entries and FormData parsing --- utils/request.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/utils/request.ts b/utils/request.ts index e4fa0e52..bd9911fc 100644 --- a/utils/request.ts +++ b/utils/request.ts @@ -59,6 +59,8 @@ export async function parseRequest(request: Request): Promise> { // If request contains FormData if (request.headers.get("Content-Type")?.includes("multipart/form-data")) { + // @ts-expect-error It hates entries() for some reason + // eslint-disable-next-line @typescript-eslint/no-unsafe-call const formData = [...(await request.formData()).entries()]; if (formData.length > 0) { @@ -67,15 +69,16 @@ export async function parseRequest(request: Request): Promise> { for (const [key, value] of formData) { // If object, parse as JSON try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-base-to-string + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-base-to-string, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access data[key] = JSON.parse(value.toString()); } catch { // If a file, set as a file if (value instanceof File) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access data[key] = value; } else { // Otherwise, set as a string - // eslint-disable-next-line @typescript-eslint/no-base-to-string + // eslint-disable-next-line @typescript-eslint/no-base-to-string, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access data[key] = value.toString(); } }