mem100x
Version:
⚡ The FASTEST MCP memory server ever built - 66k+ entities/sec with intelligent context detection
46 lines • 1.81 kB
JavaScript
;
/**
* Unified cache interface for all cache implementations
* Allows seamless switching between LRU, 2Q, ARC, and RadixTree caches
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCache = createCache;
exports.createStringCache = createStringCache;
// Cache factory
const lru_cache_js_1 = require("./lru-cache.js");
const two_queue_cache_js_1 = require("./two-queue-cache.js");
const arc_cache_js_1 = require("./arc-cache.js");
const radix_tree_cache_js_1 = require("./radix-tree-cache.js");
function createCache(strategy, maxSize) {
switch (strategy) {
case 'lru':
return new lru_cache_js_1.LRUCache(maxSize);
case '2q':
return new two_queue_cache_js_1.TwoQueueCache(maxSize);
case 'arc':
return new arc_cache_js_1.ARCCache(maxSize);
case 'radix':
// RadixTree only works with string keys - fallback to LRU for non-string keys
return new lru_cache_js_1.LRUCache(maxSize);
default:
// Default to LRU for unknown strategies
return new lru_cache_js_1.LRUCache(maxSize);
}
}
// Specialized factory for string-key caches (common in entity storage)
function createStringCache(strategy, maxSize) {
switch (strategy) {
case 'lru':
return new lru_cache_js_1.LRUCache(maxSize);
case '2q':
return new two_queue_cache_js_1.TwoQueueCache(maxSize);
case 'arc':
return new arc_cache_js_1.ARCCache(maxSize);
case 'radix':
return new radix_tree_cache_js_1.RadixTreeCache(maxSize);
default:
// Default to LRU for unknown strategies
return new lru_cache_js_1.LRUCache(maxSize);
}
}
//# sourceMappingURL=cache-interface.js.map