UNPKG

univ-fs-webnfs

Version:

The universal Filesystem for Web File System Access API (Native File System API)

1 lines 1.97 kB
"use strict";(self.webpackChunkuniv_fs_webnfs=self.webpackChunkuniv_fs_webnfs||[]).push([[759],{759:(t,e,r)=>{r.r(e),r.d(e,{BlobConverter:()=>o});var s=r(78),a=r(888),n=r(706),i=r(413);class o extends s.f{constructor(){super(...arguments),this.type="blob"}empty(){return n.EV}is(t){return n.eo&&t instanceof Blob}async _convert(t,e){if(this.is(t)){if((0,a.az)(e))return t;const{start:r,end:s}=await this._getStartEnd(t,e);return t.slice(r,s)}const r=await(0,s._)().convert("uint8array",t,e);return new Blob([r])}_getStartEnd(t,e){return Promise.resolve((0,a.og)(e,t.size))}_isEmpty(t){return 0===t.size}_merge(t){return Promise.resolve(new Blob(t))}_size(t){return Promise.resolve(t.size)}async _toArrayBuffer(t,e){const r=await this._toUint8Array(t,e);return r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)}async _toBase64(t,e){const r=await this._getStartEnd(t,e);let s=r.start;const a=r.end,o=[],u=e.bufferSize;for(;s<a;s+=u){let e=s+u;a<e&&(e=a);const r=t.slice(s,e),f=await(0,n.S6)((t=>t.readAsDataURL(r)),(t=>(0,i.R)(t)));o.push(f)}return o.join("")}async _toText(t,e){if("utf8"===e.bufferToTextCharset)return n.w$?await t.text():await(0,n.S6)((e=>e.readAsText(t)),(t=>t));const r=await this._toUint8Array(t,e),s=await(0,i.p)();return await s.bufferToText(r,e)}async _toUint8Array(t,e){if(n.zi){const e=await t.arrayBuffer();return(0,n.ai)(e)}const r=await this._getStartEnd(t,e);let a=r.start;const i=r.end,o=e.bufferSize;if(n.br){const e=(0,n.QM)(i-a);for(let r=0;a<i;a+=o){let s=a+o;i<s&&(s=i);const u=t.slice(a,s),f=await(0,n.S6)((t=>t.readAsArrayBuffer(u)),(t=>t));e.set((0,n.ai)(f),r),r+=f.byteLength}return e}const u=(0,s._)()._of("uint8array");if(n.Mn){const r=t.stream(),s=[];let o=0;return await(0,n.vg)(r,(t=>{const e=t.byteLength;if(a<o+e){let r=o+e;i<r&&(r=i),o<a&&a<r?s.push(t.subarray(a,r)):a<=o&&s.push(t)}return o+=e,Promise.resolve(null==i||o<i)})),await u.merge(s,e)}const f=await this._toBase64(t,e);return await u.convert(f)}}}}]);