3 lines
2.7 KiB
JavaScript
3 lines
2.7 KiB
JavaScript
var m=(r,n,e)=>new Promise((t,o)=>{var u=i=>{try{a(e.next(i))}catch(s){o(s)}},c=i=>{try{a(e.throw(i))}catch(s){o(s)}},a=i=>i.done?t(i.value):Promise.resolve(i.value).then(u,c);a((e=e.apply(r,n)).next())});function I(r,n){return m(this,null,function*(){const e=r.getReader();let t;for(;!(t=yield e.read()).done;)n(t.value)})}function L(r){let n,e,t,o=!1;return function(c){n===void 0?(n=c,e=0,t=-1):n=_(n,c);const a=n.length;let i=0;for(;e<a;){o&&(n[e]===10&&(i=++e),o=!1);let s=-1;for(;e<a&&s===-1;++e)switch(n[e]){case 58:t===-1&&(t=e-i);break;case 13:o=!0;case 10:s=e;break}if(s===-1)break;r(n.subarray(i,s),t),i=e,t=-1}i===a?n=void 0:i!==0&&(n=n.subarray(i),e-=i)}}function P(r,n,e){let t=T();const o=new TextDecoder;return function(c,a){if(c.length===0)e==null||e(t),t=T();else if(a>0){const i=o.decode(c.subarray(0,a)),s=a+(c[a+1]===32?2:1),d=o.decode(c.subarray(s));switch(i){case"data":t.data=t.data?t.data+`
|
|
`+d:d;break;case"event":t.event=d;break;case"id":r(t.id=d);break;case"retry":const f=parseInt(d,10);isNaN(f)||n(t.retry=f);break}}}}function _(r,n){const e=new Uint8Array(r.length+n.length);return e.set(r),e.set(n,r.length),e}function T(){return{data:"",event:"",id:"",retry:void 0}}var A=function(r,n){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&n.indexOf(t)<0&&(e[t]=r[t]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,t=Object.getOwnPropertySymbols(r);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(r,t[o])&&(e[t[o]]=r[t[o]]);return e};const O="text/event-stream",H=1e3,j="last-event-id";function W(r,n){var{signal:e,headers:t,onopen:o,onmessage:u,onclose:c,onerror:a,openWhenHidden:i,fetch:s}=n,d=A(n,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise((f,x)=>{const v=Object.assign({},t);v.accept||(v.accept=O);let y;function E(){y.abort(),document.hidden||g()}i||document.addEventListener("visibilitychange",E);let k=H,h=0;function p(){document.removeEventListener("visibilitychange",E),window.clearTimeout(h),y.abort()}e==null||e.addEventListener("abort",()=>{p(),f()});const S=s!=null?s:window.fetch,C=o!=null?o:N;function g(){return m(this,null,function*(){var w;y=new AbortController;try{const b=yield S(r,Object.assign(Object.assign({},d),{headers:v,signal:y.signal}));yield C(b),yield I(b.body,L(P(l=>{l?v[j]=l:delete v[j]},l=>{k=l},u))),c==null||c(),p(),f()}catch(b){if(!y.signal.aborted)try{const l=(w=a==null?void 0:a(b))!==null&&w!==void 0?w:k;window.clearTimeout(h),h=window.setTimeout(g,l)}catch(l){p(),x(l)}}})}g()})}function N(r){const n=r.headers.get("content-type");if(!(n!=null&&n.startsWith(O)))throw new Error(`Expected content-type to be ${O}, Actual: ${n}`)}export{W as f};
|