@vulppi/toolbelt
Version:
A collection of tools and utilities.
2 lines (1 loc) • 1.23 kB
JavaScript
;var d=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var p=(e,r)=>{for(var o in r)d(e,o,{get:r[o],enumerable:!0})},b=(e,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of g(r))!h.call(e,n)&&n!==o&&d(e,n,{get:()=>r[n],enumerable:!(a=u(r,n))||a.enumerable});return e};var m=e=>b(d({},"__esModule",{value:!0}),e);var w={};p(w,{deserializeObject:()=>k,progressResponse:()=>R,serializeObject:()=>S});module.exports=m(w);var s=require("pako");function S(e){return(0,s.deflate)(JSON.stringify(e))}function k(e){return JSON.parse((0,s.inflate)(e,{to:"string"}).toString())}async function*R(e){if(!e.body)return;let r=parseInt(e.headers.get("content-length")||"0",10),o=new TextDecoder,a=0,n=e.body;async function*l(t){let c=t.getReader();try{for(;;){let{done:i,value:y}=await c.read();if(i)break;y&&(yield y)}}finally{c.releaseLock()}}let f=n[Symbol.asyncIterator]?n[Symbol.asyncIterator]():l(n);try{for await(let t of f){let c=o.decode(t,{stream:!0});a+=t.byteLength;let i=r?a/r:-1;yield{chunk:c,progress:i}}}catch(t){throw console.error("Error reading stream:",t),t}finally{let t=o.decode();t&&(yield{chunk:t,progress:1})}}