Buckets:
| ; | |
| var __defProp = Object.defineProperty; | |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |
| var __getOwnPropNames = Object.getOwnPropertyNames; | |
| var __hasOwnProp = Object.prototype.hasOwnProperty; | |
| var __export = (target, all) => { | |
| for (var name in all) | |
| __defProp(target, name, { get: all[name], enumerable: true }); | |
| }; | |
| var __copyProps = (to, from, except, desc) => { | |
| if (from && typeof from === "object" || typeof from === "function") { | |
| for (let key of __getOwnPropNames(from)) | |
| if (!__hasOwnProp.call(to, key) && key !== except) | |
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |
| } | |
| return to; | |
| }; | |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | |
| var body_exports = {}; | |
| __export(body_exports, { | |
| parseBody: () => parseBody | |
| }); | |
| module.exports = __toCommonJS(body_exports); | |
| var import_request = require("../request"); | |
| const parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => { | |
| const { all = false, dot = false } = options; | |
| const headers = request instanceof import_request.HonoRequest ? request.raw.headers : request.headers; | |
| const contentType = headers.get("Content-Type"); | |
| if (contentType?.startsWith("multipart/form-data") || contentType?.startsWith("application/x-www-form-urlencoded")) { | |
| return parseFormData(request, { all, dot }); | |
| } | |
| return {}; | |
| }; | |
| async function parseFormData(request, options) { | |
| const formData = await request.formData(); | |
| if (formData) { | |
| return convertFormDataToBodyData(formData, options); | |
| } | |
| return {}; | |
| } | |
| function convertFormDataToBodyData(formData, options) { | |
| const form = /* @__PURE__ */ Object.create(null); | |
| formData.forEach((value, key) => { | |
| const shouldParseAllValues = options.all || key.endsWith("[]"); | |
| if (!shouldParseAllValues) { | |
| form[key] = value; | |
| } else { | |
| handleParsingAllValues(form, key, value); | |
| } | |
| }); | |
| if (options.dot) { | |
| Object.entries(form).forEach(([key, value]) => { | |
| const shouldParseDotValues = key.includes("."); | |
| if (shouldParseDotValues) { | |
| handleParsingNestedValues(form, key, value); | |
| delete form[key]; | |
| } | |
| }); | |
| } | |
| return form; | |
| } | |
| const handleParsingAllValues = (form, key, value) => { | |
| if (form[key] !== void 0) { | |
| if (Array.isArray(form[key])) { | |
| ; | |
| form[key].push(value); | |
| } else { | |
| form[key] = [form[key], value]; | |
| } | |
| } else { | |
| if (!key.endsWith("[]")) { | |
| form[key] = value; | |
| } else { | |
| form[key] = [value]; | |
| } | |
| } | |
| }; | |
| const handleParsingNestedValues = (form, key, value) => { | |
| let nestedForm = form; | |
| const keys = key.split("."); | |
| keys.forEach((key2, index) => { | |
| if (index === keys.length - 1) { | |
| nestedForm[key2] = value; | |
| } else { | |
| if (!nestedForm[key2] || typeof nestedForm[key2] !== "object" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) { | |
| nestedForm[key2] = /* @__PURE__ */ Object.create(null); | |
| } | |
| nestedForm = nestedForm[key2]; | |
| } | |
| }); | |
| }; | |
| // Annotate the CommonJS export names for ESM import in node: | |
| 0 && (module.exports = { | |
| parseBody | |
| }); | |
Xet Storage Details
- Size:
- 3.19 kB
- Xet hash:
- 31af2e8a46ed0bce51a72c4c0841adbeaccae5699ed1eca660ff294a9bb69907
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.