// src/utils/body.ts import { HonoRequest } from "../request.js"; var parseBody = async (request, options = { all: false }) => { const headers = request instanceof HonoRequest ? request.raw.headers : request.headers; const contentType = headers.get("Content-Type"); if (contentType !== null && contentType.startsWith("multipart/form-data") || contentType !== null && contentType.startsWith("application/x-www-form-urlencoded")) { return parseFormData(request, options); } return {}; }; async function parseFormData(request, options) { const formData = await request.formData(); if (formData) { return convertFormDataToBodyData(formData, options); } return {}; } function convertFormDataToBodyData(formData, options) { const form = {}; formData.forEach((value, key) => { const shouldParseAllValues = options.all || key.endsWith("[]"); if (!shouldParseAllValues) { form[key] = value; } else { handleParsingAllValues(form, key, value); } }); return form; } var handleParsingAllValues = (form, key, value) => { const formKey = form[key]; if (formKey && Array.isArray(formKey)) { ; form[key].push(value); } else if (formKey) { form[key] = [formKey, value]; } else { form[key] = value; } }; export { parseBody };