Files
Home_Buying_App/node_modules/@apollo/utils.keyvaluecache/dist/InMemoryLRUCache.js
jackbeeby b412dfe2ca Initialisation
Added the packages and files for the backend server
2024-12-15 17:48:45 +11:00

47 lines
1.4 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemoryLRUCache = void 0;
const lru_cache_1 = __importDefault(require("lru-cache"));
class InMemoryLRUCache {
constructor(lruCacheOpts) {
this.cache = new lru_cache_1.default({
sizeCalculation: InMemoryLRUCache.sizeCalculation,
maxSize: Math.pow(2, 20) * 30,
...lruCacheOpts,
});
}
static sizeCalculation(item) {
if (typeof item === "string") {
return item.length;
}
if (typeof item === "object") {
return Buffer.byteLength(JSON.stringify(item), "utf8");
}
return 1;
}
async set(key, value, options) {
if (options === null || options === void 0 ? void 0 : options.ttl) {
this.cache.set(key, value, { ttl: options.ttl * 1000 });
}
else {
this.cache.set(key, value);
}
}
async get(key) {
return this.cache.get(key);
}
async delete(key) {
return this.cache.delete(key);
}
clear() {
this.cache.clear();
}
keys() {
return [...this.cache.keys()];
}
}
exports.InMemoryLRUCache = InMemoryLRUCache;
//# sourceMappingURL=InMemoryLRUCache.js.map