You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

30 lines
780 B

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LruMap = void 0;
class LruMap extends Map {
constructor(
// 2^30 - 1 (a SMI in V8, for 32-bit platforms)
limit = 1073741823) {
super();
this.limit = limit;
}
set(key, value) {
super.delete(key);
super.set(key, value);
if (super.size > this.limit)
super.delete(super.keys().next().value);
return this;
}
get(key) {
const value = super.get(key);
if (value === void 0) {
if (super.delete(key))
super.set(key, value);
return value;
}
super.delete(key);
super.set(key, value);
return value;
}
}
exports.LruMap = LruMap;