mailtrain/lib/caches.js

29 lines
668 B
JavaScript
Raw Normal View History

2016-05-25 20:58:17 +00:00
'use strict';
let cache = module.exports.cache = new Map();
module.exports.push = (name, value) => {
if (!cache.has(name)) {
cache.set(name, []);
} else if (!Array.isArray(cache.get(name))) {
cache.set(name, [].concat(cache.get(name) || []));
}
cache.get(name).push(value);
};
module.exports.shift = name => {
if (!cache.has(name)) {
return false;
}
if (!Array.isArray(cache.get(name))) {
let value = cache.get(name);
cache.delete(name);
return value;
}
let value = cache.get(name).shift();
if (!cache.get(name).length) {
cache.delete(name);
}
return value;
};