serverless-aws-lambda
Version:
AWS Application Load Balancer and API Gateway - Lambda dev tool for Serverless. Allows Express synthax in handlers. Supports packaging, local invoking and offline ALB, APG, S3, SNS, SQS, DynamoDB Stream server mocking.
2 lines (1 loc) • 1.53 kB
JavaScript
var i=Object.defineProperty;var y=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var d=(e,t,s)=>t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,p=(e,t)=>{for(var s in t||(t={}))g.call(t,s)&&d(e,s,t[s]);if(y)for(var s of y(t))h.call(t,s)&&d(e,s,t[s]);return e};var u=(e,t)=>{var f;let s=[],n={};e.isBase64Encoded&&(e.body=Buffer.from(e.body,"base64").toString("utf-8"));let r=(f=e.headers)==null?void 0:f["content-type"],l=r==null?void 0:r.split("=")[1];if(l){let c={};e.body.split(l).forEach(o=>{/filename=".+"/g.test(o)?c[o.match(/name=".+";/g)[0].slice(6,-2)]={type:"file",filename:o.match(/filename=".+"/g)[0].slice(10,-1),contentType:o.match(/Content-Type:\s.+/g)[0].slice(14),content:t?Buffer.from(o.slice(o.search(/Content-Type:\s.+/g)+o.match(/Content-Type:\s.+/g)[0].length+4,-4),"binary"):o.slice(o.search(/Content-Type:\s.+/g)+o.match(/Content-Type:\s.+/g)[0].length+4,-4)}:/name=".+"/g.test(o)&&(c[o.match(/name=".+"/g)[0].slice(6,-1)]=o.slice(o.search(/name=".+"/g)+o.match(/name=".+"/g)[0].length+4,-4))});for(let[o,a]of Object.entries(c))typeof a=="string"?n[o]=a:a&&typeof a=="object"&&s.push(p({name:o},a))}else r=="application/x-www-form-urlencoded"&&(e.body.split("&").forEach(c=>{let[o,a]=c.split("=");n[decodeURIComponent(o)]=decodeURIComponent(a)}),e.body=n);return{files:s,body:n}},b=(e,t,s)=>{try{let n=u(e,!0);e.files=n.files,e.body=n.body,e.isBase64Encoded=!1}catch(n){}s()},C=b;export{b as bodyParser,C as default};