@sigiljs/sigil
Version:
TypeScript-first Node.js HTTP framework offering schema-driven routing, modifier-based middleware, plugin extensibility, and flexible response templating
2 lines (1 loc) • 970 B
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("formidable"),c=require("node:stream"),f=require("../../utils/non-nullable.js"),d=require("../containers/incoming-body.js"),p=require("../containers/incoming-file.js"),F=i=>i&&i.__esModule?i:{default:i},b=F(u);async function w(i,l){const t={},[r,o]=await b.default({maxTotalFileSize:104857600,maxFileSize:10485760,maxFiles:10,allowEmptyFiles:!1,maxFieldsSize:5242880,maxFields:l?.fieldsLimit,filename:()=>crypto.randomUUID(),fileWriteStreamHandler:n=>{const a=[];return new c.Writable({write(e,_,m){a.push(e),m()},final(e){t[n.newFilename]=Buffer.concat(a),e()}})}}).parse(i),s=f.default(Object.entries(o).map(([n,a])=>a?.map(e=>new p.default({key:n,name:e.newFilename,originalName:e.originalFilename??"",mimeType:e.mimetype??"application/octet-stream",buffer:t[e.newFilename]})))).flat();return{body:new d.default(r),files:s}}exports.default=w;