ts-method-cache
Version:
Data method caching logic based on TypeScript decorators
30 lines (29 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var memory_cache_provider_1 = require('../../cache/memory/provider/memory-cache.provider');
var session_cache_provider_1 = require('../../cache/persistent/session/provider/session-cache.provider');
var storage_cache_provider_1 = require('../../cache/persistent/storage/provider/storage-cache.provider');
var cache_type_enum_1 = require('../enum/cache-type.enum');
var cacheProviders = new Map([
[cache_type_enum_1.CacheType.Memory, new memory_cache_provider_1.MemoryCacheProvider()],
[cache_type_enum_1.CacheType.Session, new session_cache_provider_1.SessionCacheProvider()],
[cache_type_enum_1.CacheType.Storage, new storage_cache_provider_1.StorageCacheProvider()]
]);
var containers = new Map();
function getMethodCacheProvider(type) {
return cacheProviders.get(type);
}
exports.getMethodCacheProvider = getMethodCacheProvider;
function setCacheContainer(container, options) {
containers.forEach(function(testContainer) {
if (testContainer.key === options.key) {
throw new Error('Cache container with name ' + options.key + ' already exists');
}
});
containers.set(container, options);
}
exports.setCacheContainer = setCacheContainer;
function getCacheContainer(container) {
return containers.get(container);
}
exports.getCacheContainer = getCacheContainer;