import type { FileBackend } from "../storage.js"; import type { Metafile } from "../types.js"; import { isRawBytesWrapper, decodeRawBytesWrapper, createRawBytesWrapper } from "./encoding.js"; export class MemoryBackend implements FileBackend { private cache = new Map(); async read(key: string): Promise { const value = this.cache.get(key); if (!value) return undefined; if (isRawBytesWrapper(value)) { return decodeRawBytesWrapper(value); } return value as Metafile; } async write(key: string, value: Metafile): Promise { this.cache.set(key, value); } async writeRaw(key: string, value: Uint8Array): Promise { this.cache.set(key, createRawBytesWrapper(value)); } async delete(key: string): Promise { this.cache.delete(key); } }