Files
NapCatQQ/.pnpm-store/v3/files/b4/9d045edf1f74483c3041cee271b9c81389f5ef0f04f4e804c8a5889b51e786debc46ccfba5040e153ca2954cde0afed161a064df9f3dd6e6c0a13ea4e1ee72
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

46 lines
1.1 KiB
Plaintext

// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
function createLruCache(maxCacheSize) {
if (maxCacheSize < 1) {
return {
get: function get() {
return undefined;
},
set: function set() {}
};
}
var cacheSize = 0;
var cache = new Map();
var previousCache = new Map();
function update(key, value) {
cache.set(key, value);
cacheSize++;
if (cacheSize > maxCacheSize) {
cacheSize = 0;
previousCache = cache;
cache = new Map();
}
}
return {
get: function get(key) {
var value = cache.get(key);
if (value !== undefined) {
return value;
}
if ((value = previousCache.get(key)) !== undefined) {
update(key, value);
return value;
}
},
set: function set(key, value) {
if (cache.has(key)) {
cache.set(key, value);
} else {
update(key, value);
}
}
};
}
export { createLruCache };
//# sourceMappingURL=lru-cache.mjs.map