evtjs
Version:
Javascript API Bindings for the everiToken blockchain.
45 lines (35 loc) • 1.21 kB
JavaScript
;
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MemoryCache = function () {
function MemoryCache(limit) {
(0, _classCallCheck3.default)(this, MemoryCache);
this.limit = limit || 200;
this.map = {};
this.keys = [];
}
(0, _createClass3.default)(MemoryCache, [{
key: "set",
value: function set(key, value) {
var map = this.map;
var keys = this.keys;
if (!Object.prototype.hasOwnProperty.call(map, key)) {
if (keys.length === this.limit) {
delete map[keys.shift()];
}
keys.push(key);
}
map[key] = value;
}
}, {
key: "get",
value: function get(key) {
return this.map[key];
}
}]);
return MemoryCache;
}();
module.exports = MemoryCache;