123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- function MemoryCache() {
- this.cache = {}
- this.size = 0
- }
- MemoryCache.prototype.add = function (key, value, time, timeoutCallback) {
- var old = this.cache[key]
- var instance = this
- var entry = {
- value: value,
- expire: time + Date.now(),
- timeout: setTimeout(function () {
- instance.delete(key)
- return (
- timeoutCallback &&
- typeof timeoutCallback === 'function' &&
- timeoutCallback(value, key)
- )
- }, time),
- }
- this.cache[key] = entry
- this.size = Object.keys(this.cache).length
- return entry
- }
- MemoryCache.prototype.delete = function (key) {
- var entry = this.cache[key]
- if (entry) {
- clearTimeout(entry.timeout)
- }
- delete this.cache[key]
- this.size = Object.keys(this.cache).length
- return null
- }
- MemoryCache.prototype.get = function (key) {
- var entry = this.cache[key]
- return entry
- }
- MemoryCache.prototype.getValue = function (key) {
- var entry = this.get(key)
- return entry && entry.value
- }
- MemoryCache.prototype.clear = function () {
- Object.keys(this.cache).forEach(function (key) {
- this.delete(key)
- }, this)
- return true
- }
- module.exports = MemoryCache
|