@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
JavaScript
;
/**
* 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