UNPKG

@e280/quay

Version:

File-browser and outliner UI for the web

44 lines 1.39 kB
export class OpfsForklift { directory; static async setup(dirname) { const root = await navigator.storage.getDirectory(); const directory = await root.getDirectoryHandle(dirname, { create: true }); return new this(directory); } constructor(directory) { this.directory = directory; } async *list() { for await (const [name, handle] of this.directory.entries()) { if (handle.kind === "file") yield name; } } async has(label) { try { await this.directory.getFileHandle(label); return true; } catch (err) { if (err.name === "NotFoundError") return false; throw err; } } async save(label, bytes) { const fileHandle = await this.directory.getFileHandle(label, { create: true }); const writable = await fileHandle.createWritable(); await writable.write(bytes); await writable.close(); } async load(label) { const fileHandle = await this.directory.getFileHandle(label); const file = await fileHandle.getFile(); const buffer = await file.arrayBuffer(); return new Uint8Array(buffer); } async delete(label) { await this.directory.removeEntry(label); } } //# sourceMappingURL=opfs-forklift.js.map