mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-03-19 16:06:35 +08:00
3 lines
38 KiB
JavaScript
3 lines
38 KiB
JavaScript
|
|
var Pe=Object.defineProperty;var ze=(l,e,t)=>e in l?Pe(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var g=(l,e)=>()=>(l&&(e=l(l=0)),e);var B=(l,e)=>{for(var t in e)Pe(l,t,{get:e[t],enumerable:!0})};var S=(l,e,t)=>(ze(l,typeof e!="symbol"?e+"":e,t),t);var qe,R,Z=g(()=>{qe={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},R=qe});var te={};B(te,{FileHandle:()=>O,FolderHandle:()=>N,Sink:()=>ee,default:()=>$e});var _,Ge,f,Ke,E,Te,Ve,de,kr,Xe,ee,O,N,Ye,$e,re=g(()=>{U();Z();({File:_,Blob:Ge,DOMException:f}=R),{INVALID:Ke,GONE:E,MISMATCH:Te,MOD_ERR:Ve,SYNTAX:de,SECURITY:kr,DISALLOWED:Xe}=I,ee=class{constructor(e,t){this.fileHandle=e,this.file=t,this.size=t.size,this.position=0}write(e){let t=this.file;if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.position=e.position,this.size<e.position&&(this.file=new _([this.file,new ArrayBuffer(e.position-this.size)],this.file.name,this.file))),!("data"in e))throw new f(...de("write requires a data argument"));e=e.data}else if(e.type==="seek")if(Number.isInteger(e.position)&&e.position>=0){if(this.size<e.position)throw new f(...Ke);this.position=e.position;return}else throw new f(...de("seek requires a position argument"));else if(e.type==="truncate")if(Number.isInteger(e.size)&&e.size>=0){t=e.size<this.size?new _([t.slice(0,e.size)],t.name,t):new _([t,new Uint8Array(e.size-this.size)],t.name),this.size=t.size,this.position>t.size&&(this.position=t.size),this.file=t;return}else throw new f(...de("truncate requires a size argument"))}e=new Ge([e]);let r=this.file,i=r.slice(0,this.position),n=r.slice(this.position+e.size),s=this.position-i.size;s<0&&(s=0),r=new _([i,new Uint8Array(s),e,n],r.name),this.size=r.size,this.position+=e.size,this.file=r}close(){if(this.fileHandle._deleted)throw new f(...E);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},O=class{constructor(e="",t=new _([],e),r=!0){this._file=t,this.name=e,this.kind="file",this._deleted=!1,this.writable=r,this.readable=!0}async getFile(){if(this._deleted)throw new f(...E);return this._file}async createWritable(e){if(!this.writable)throw new f(...Xe);if(this._deleted)throw new f(...E);let t=e.keepExistingData?await this.getFile():new _([],this.name);return new ee(this,t)}async isSameEntry(e){return this===e}async _destroy(){this._deleted=!0,this._file=null}},N=class{constructor(e,t=!0){this.name=e,this.kind="directory",this._deleted=!1,this._entries={},this.writable=t,this.readable=!0}async*entries(){if(this._deleted)throw new f(...E);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new f(...E);let r=this._entries[e];if(r){if(r instanceof O)throw new f(...Te);return r}else{if(t.create)return this._entries[e]=new N(e);throw new f(...E)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof O;if(r&&i)return r;if(r&&!i)throw new f(...Te);if(!r&&!t.create)throw new f(...E);if(!r&&t.create)return this._entries[e]=new O(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new f(...E);await r._destroy(t.recursive),delete this._entries[e]}async _destroy(e){for(let t of Object.values(this._entries)){if(!e)throw new f(...Ve);await t._destroy(e)}this._entries={},this._deleted=!0}},Ye=new N(""),$e=()=>Ye});var ue={};B(ue,{FileHandle:()=>V,FolderHandle:()=>x,default:()=>Qe});var Je,ie,V,x,Qe,pe=g(()=>{U();({DISALLOWED:Je}=I),ie=class{constructor(e,t){this.writer=e,this.fileEntry=t}async write(e){if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.writer.seek(e.position),this.writer.position!==e.position&&(await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.truncate(e.position)}),this.writer.seek(e.position))),!("data"in e))throw new DOMException("Failed to execute 'w
|
||
|
|
//# sourceMappingURL=storage.js.map
|