UNPKG

koa-body

Version:

A Koa body parser middleware. Supports multipart, urlencoded and JSON request bodies.

43 lines 1.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = parseWithFormidable; const formidable_1 = __importDefault(require("formidable")); function convertFormidableFields(fields) { const result = {}; for (const key in fields) { const value = fields[key]; if (value !== undefined) { result[key] = value.length === 1 ? value[0] : value; } } return result; } function convertFormidableFiles(files) { const result = {}; for (const key in files) { const value = files[key]; if (value !== undefined) { result[key] = value.length === 1 ? value[0] : value; } } return result; } async function parseWithFormidable(ctx, options) { const { onFileBegin, onPart, ...directOptions } = options; const form = (0, formidable_1.default)({ multiples: true, ...directOptions }); if (onPart) { const delegate = form._handlePart.bind(form); form.onPart = (part) => { onPart(part, delegate); }; } if (onFileBegin) { form.on('fileBegin', onFileBegin); } const [fields, files] = await form.parse(ctx.req); return { fields: convertFormidableFields(fields), files: convertFormidableFiles(files) }; } //# sourceMappingURL=parse-with-formidable.js.map