UNPKG

@restorecommerce/chassis-srv

Version:
77 lines 2.82 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.get = exports.register = void 0; const _ = __importStar(require("lodash")); const cache_manager_1 = require("cache-manager"); const keyv_1 = require("keyv"); const lru_cache_1 = require("lru-cache"); /** * A key, value map containing cache providers. * Cache providers are registered with the register function. */ const providers = {}; /** * Register a cache provider. * Providers need to be compatible to the node-cache-manager module. * https://github.com/BryanDonovan/node-cache-manager * @param {string} name cache provider identifier * @param {constructor} provider cache store constructor */ const register = (name, provider) => { providers[name] = provider; }; exports.register = register; // register defaults // add memory provider by default, since it is included with the cache-manager. (0, exports.register)('memory', (config, logger) => { const options = { max: config?.max || 500, dispose: config?.dispose, allowStale: config?.allowStale, ttl: config?.ttl || 5000, }; const lruCache = new lru_cache_1.LRUCache(options); const keyv = new keyv_1.Keyv({ store: lruCache }); const cache = (0, cache_manager_1.createCache)({ stores: [keyv] }); return cache; }); /** * Get a new cache instance. * @param {Object} config Cache configuration * @param [Logger] logger * @return Cache instance */ const get = (config, logger) => { if (_.isNil(config)) { throw new Error('missing argument config'); } const providerName = config[0].provider; const provider = providers[providerName]; const cache = provider(config, logger); return cache; }; exports.get = get; //# sourceMappingURL=index.js.map