UNPKG

@phroun/paged-buffer

Version:

High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities

58 lines 1.48 kB
"use strict"; /** * In-memory page storage implementation */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MemoryPageStorage = void 0; const page_storage_1 = require("./page-storage"); /** * In-memory page storage for testing/small files */ class MemoryPageStorage extends page_storage_1.PageStorage { constructor() { super(); this.pages = new Map(); } async savePage(pageKey, data) { this.pages.set(pageKey, Buffer.from(data)); } async loadPage(pageKey) { const page = this.pages.get(pageKey); if (!page) throw new Error(`Page ${pageKey} not found`); return page; } async deletePage(pageKey) { this.pages.delete(pageKey); } async pageExists(pageKey) { return this.pages.has(pageKey); } /** * Get all stored page keys (useful for debugging/testing) */ getAllPageKeys() { return Array.from(this.pages.keys()); } /** * Get memory usage statistics */ getMemoryStats() { let totalBytes = 0; for (const buffer of this.pages.values()) { totalBytes += buffer.length; } return { pageCount: this.pages.size, totalBytes }; } /** * Clear all stored pages */ clear() { this.pages.clear(); } } exports.MemoryPageStorage = MemoryPageStorage; //# sourceMappingURL=memory-page-storage.js.map