LruMap.js 609 B

123456789101112131415161718192021222324
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.LruMap = void 0;
  4. class LruMap extends Map {
  5. constructor(limit = Infinity) {
  6. super();
  7. this.limit = limit;
  8. }
  9. set(key, value) {
  10. super.set(key, value);
  11. if (this.size > this.limit)
  12. this.delete(super.keys().next().value);
  13. return this;
  14. }
  15. get(key) {
  16. if (!super.has(key))
  17. return undefined;
  18. const value = super.get(key);
  19. super.delete(key);
  20. super.set(key, value);
  21. return value;
  22. }
  23. }
  24. exports.LruMap = LruMap;