@apeleghq/multipart-parser
Version:
TypeScript streaming parser for MIME multipart messages
3 lines (2 loc) • 816 B
JavaScript
var h=(n,s)=>{e:for(let e=0;e<=n.length-s.length;e++){for(let r=0;r<s.length;r++)if(n[e+r]!==s[r])continue e;return e}return-1},o=h;var c=new TextDecoder,x=new TextEncoder,a=x.encode(`\r
`),y=[9,32],g=(n,s)=>{let e=0,r=[];for(;(e=o(n,a))!==-1&&e!==0;){let t=n.indexOf(58);if(t===-1)throw new Error("Invalid header");let l=c.decode(n.subarray(0,t));for(;y.includes(n[e+2]);){let d=o(n.subarray(e+2),a);if(d<1)break;e+=2+d}let p=c.decode(n.subarray(t+1,e)).replace(/\r\n/g,"");r.push([l,p]),n=n.subarray(e+a.length)}return{headers:s?s(r):(()=>{let t=new Headers(r);return t.has("content-transfer-encoding")||t.set("content-transfer-encoding","7bit"),t.has("content-type")||t.set("content-type","text/plain; charset=us-ascii"),t})(),body:e===-1?null:n.subarray(e+a.length)}},i=g;export{i as default,i as parseMessage};