UNPKG

thera

Version:

An ES6 Promise driven Eve Online API client.

7 lines (6 loc) 2.33 kB
Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value" in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _moment=require('moment');var _moment2=_interopRequireDefault(_moment);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var MemoryCache=function(){function MemoryCache(){_classCallCheck(this,MemoryCache);this.data={};this.timers={};}_createClass(MemoryCache,[{key:'put',value:function put(key,value,timer){var _this=this;return new Promise(function(resolve,reject){_this.delete(key);_this.clearTimer(key);_this.data[key]=value;if(timer){_this.deleteAfter(key,timer);}resolve(_this.data[key]);});}},{key:'get',value:function get(key){var _this2=this;return new Promise(function(resolve,reject){if(_this2.data[key])return resolve(_this2.data[key]);else return resolve(null);});}},{key:'delete',value:function _delete(key){var _this3=this;return new Promise(function(resolve,reject){if(key){if(_this3.data[key])delete _this3.data[key]; // clearTimer(key); }else {_this3.data={};_this3.clearTimers();}resolve();});}},{key:'exists',value:function exists(key){var _this4=this;return new Promise(function(resolve,reject){if(_this4.data[key])return resolve(true);else return resolve(false);});} // internal },{key:'clearTimer',value:function clearTimer(key){if(this.timers[key]){clearTimeout(this.timers[key]);}} // internal },{key:'clearTimers',value:function clearTimers(){for(var key in this.timers){this.clearTimer(key);}} // internal },{key:'deleteAfter',value:function deleteAfter(key,timer){var _this5=this;this.timers[key]=setTimeout(function(){return _this5.delete(key);},timer);}}]);return MemoryCache;}();exports.default=MemoryCache; //# sourceMappingURL=MemoryCache.js.map