UNPKG

koa-body

Version:

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

37 lines 1.2 kB
import formidable from '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; } export default async function parseWithFormidable(ctx, options) { const { onFileBegin, onPart, ...directOptions } = options; const form = formidable({ 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