UNPKG

@mjackson/file-storage

Version:
64 lines (63 loc) 1.51 kB
// src/lib/memory-file-storage.ts var MemoryFileStorage = class { #map = /* @__PURE__ */ new Map(); get(key) { return this.#map.get(key) ?? null; } has(key) { return this.#map.has(key); } list(options) { let { cursor, includeMetadata = false, limit = Infinity, prefix } = options ?? {}; let files = []; let foundCursor = cursor === void 0; let nextCursor; for (let [key, file] of this.#map.entries()) { if (foundCursor) { if (prefix != null && !key.startsWith(prefix)) { continue; } if (files.length >= limit) { nextCursor = files[files.length - 1]?.key; break; } if (includeMetadata) { files.push({ key, lastModified: file.lastModified, name: file.name, size: file.size, type: file.type }); } else { files.push({ key }); } } else if (key === cursor) { foundCursor = true; } } return { cursor: nextCursor, files }; } async put(key, file) { await this.set(key, file); return this.get(key); } remove(key) { this.#map.delete(key); } async set(key, file) { let buffer = await file.arrayBuffer(); let newFile = new File([buffer], file.name, { lastModified: file.lastModified, type: file.type }); this.#map.set(key, newFile); } }; export { MemoryFileStorage }; //# sourceMappingURL=memory.js.map