univ-fs-webnfs
Version:
The universal Filesystem for Web File System Access API (Native File System API)
1 lines • 946 B
JavaScript
;(self.webpackChunkuniv_fs_webnfs=self.webpackChunkuniv_fs_webnfs||[]).push([[384],{384:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});var s=n(272);const a=async function(e,...t){const n=await(0,s.et)(),a=e.getReader();return new ReadableStream({start:async c=>{let u,r=0;do{const e=await a.read(),s=e.value;if(u=e.done,!u){const e=s,a=e.byteLength;try{const s=r+a;for(const u of t){const t=u.start??0,l=t+(u.length??Number.MAX_SAFE_INTEGER);if(t<=r&&s<=l){const e=r-t,s=a;return void c.enqueue(n.slice(u.data,{start:e,length:s}))}if(r<=t&&t<=s){const a=t-r;if(0<a&&c.enqueue(e.slice(0,a)),l<s){const a=l-t;if(c.enqueue(n.slice(u.data,{start:0,length:a})),l<s){const t=l-r,n=s-l;c.enqueue(e.slice(t,n))}}return}if(t<r&&r<l){const e=r-t;let a;return a=l<s?l-r:s-r,void c.enqueue(n.slice(u.data,{start:e,length:a}))}c.enqueue(e)}}finally{r+=a}}}while(!u);c.close(),a.releaseLock(),(0,s.aP)(e)},cancel:t=>{a.releaseLock(),(0,s.aP)(e,t)}})}}}]);