diff options
Diffstat (limited to 'apps/web/src/lib/storage/opfs-adapter.ts')
| -rw-r--r-- | apps/web/src/lib/storage/opfs-adapter.ts | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/apps/web/src/lib/storage/opfs-adapter.ts b/apps/web/src/lib/storage/opfs-adapter.ts deleted file mode 100644 index 87b5c886..00000000 --- a/apps/web/src/lib/storage/opfs-adapter.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { StorageAdapter } from "./types"; - -export class OPFSAdapter implements StorageAdapter<File> { - private directoryName: string; - - constructor(directoryName = "media") { - this.directoryName = directoryName; - } - - private async getDirectory(): Promise<FileSystemDirectoryHandle> { - const opfsRoot = await navigator.storage.getDirectory(); - return await opfsRoot.getDirectoryHandle(this.directoryName, { - create: true, - }); - } - - async get(key: string): Promise<File | null> { - try { - const directory = await this.getDirectory(); - const fileHandle = await directory.getFileHandle(key); - return await fileHandle.getFile(); - } catch (error) { - if ((error as Error).name === "NotFoundError") { - return null; - } - throw error; - } - } - - async set(key: string, file: File): Promise<void> { - const directory = await this.getDirectory(); - const fileHandle = await directory.getFileHandle(key, { create: true }); - const writable = await fileHandle.createWritable(); - - await writable.write(file); - await writable.close(); - } - - async remove(key: string): Promise<void> { - try { - const directory = await this.getDirectory(); - await directory.removeEntry(key); - } catch (error) { - if ((error as Error).name !== "NotFoundError") { - throw error; - } - } - } - - async list(): Promise<string[]> { - const directory = await this.getDirectory(); - const keys: string[] = []; - - for await (const name of directory.keys()) { - keys.push(name); - } - - return keys; - } - - async clear(): Promise<void> { - const directory = await this.getDirectory(); - - for await (const name of directory.keys()) { - await directory.removeEntry(name); - } - } - - // Helper method to check OPFS support - static isSupported(): boolean { - return "storage" in navigator && "getDirectory" in navigator.storage; - } -} |
