mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 16:38:19 +01:00
Fix header entries and FormData parsing
This commit is contained in:
parent
b7112f3f04
commit
2d6de3064c
|
|
@ -59,6 +59,8 @@ export async function parseRequest<T>(request: Request): Promise<Partial<T>> {
|
||||||
|
|
||||||
// If request contains FormData
|
// If request contains FormData
|
||||||
if (request.headers.get("Content-Type")?.includes("multipart/form-data")) {
|
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()];
|
const formData = [...(await request.formData()).entries()];
|
||||||
|
|
||||||
if (formData.length > 0) {
|
if (formData.length > 0) {
|
||||||
|
|
@ -67,15 +69,16 @@ export async function parseRequest<T>(request: Request): Promise<Partial<T>> {
|
||||||
for (const [key, value] of formData) {
|
for (const [key, value] of formData) {
|
||||||
// If object, parse as JSON
|
// If object, parse as JSON
|
||||||
try {
|
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());
|
data[key] = JSON.parse(value.toString());
|
||||||
} catch {
|
} catch {
|
||||||
// If a file, set as a file
|
// If a file, set as a file
|
||||||
if (value instanceof File) {
|
if (value instanceof File) {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||||
data[key] = value;
|
data[key] = value;
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, set as a string
|
// 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();
|
data[key] = value.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue