@visactor/vchart
Version:
charts lib based @visactor/VGrammar
34 lines (30 loc) • 884 B
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.WordMeasureCache = void 0;
class WordMeasureCache {
constructor(maxSize = 1e3) {
this._map = new Map, this._maxSize = maxSize;
}
get(key) {
const v = this._map.get(key);
if (v) return this._map.delete(key), this._map.set(key, v), v;
}
set(key, value) {
if (this._map.has(key)) this._map.set(key, value); else {
if (this._map.size >= this._maxSize) {
const oldest = this._map.keys().next().value;
void 0 !== oldest && this._map.delete(oldest);
}
this._map.set(key, value);
}
}
clear() {
this._map.clear();
}
size() {
return this._map.size;
}
}
exports.WordMeasureCache = WordMeasureCache;
//# sourceMappingURL=measure-cache.js.map