'use strict';
var MapCache = require('map-cache');
function FragmentCache(caches) {
this.caches = caches || {};
}
FragmentCache.prototype = {
cache: function(cacheName) {
return this.caches[cacheName] || (this.caches[cacheName] = new MapCache());
},
set: function(cacheName, key, val) {
var cache = this.cache(cacheName);
cache.set(key, val);
return cache;
},
has: function(cacheName, key) {
return typeof this.get(cacheName, key) !== 'undefined';
},
get: function(name, key) {
var cache = this.cache(name);
if (typeof key === 'string') {
return cache.get(key);
}
return cache;
}
};
exports = module.exports = FragmentCache;