UNPKG

@ixily/activ

Version:

Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.

89 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CacheNodeStorageModule = exports.resetData = exports.removeDataByPattern = exports.removeData = exports.updateData = exports.getData = exports.addData = void 0; const memory_provider_module_1 = require("./cache-node-providers/memory-provider.module"); const redis_provider_module_1 = require("./cache-node-providers/redis-provider.module"); const level_provider_module_1 = require("./cache-node-providers/level-provider.module."); const none_provider_module_1 = require("./cache-node-providers/none-provider.module"); const DEFAULT_EXPIRATION = 300; // 5 minutes const state = { dbParams: undefined, isBrowser: false, module: null, }; let dBProvider = 'none'; let storageModule; const getStorageModule = () => { switch (dBProvider) { case 'redis': storageModule = redis_provider_module_1.CacheNodeRedisStorageModule; break; case 'memory': storageModule = memory_provider_module_1.CacheNodeMemoryStorageModule; break; case 'level': storageModule = level_provider_module_1.CacheNodeLevelStorageModule; break; case 'none': storageModule = none_provider_module_1.CacheNodeNoneStorageModule; break; default: storageModule = none_provider_module_1.CacheNodeNoneStorageModule; } return storageModule; }; const init = async () => { await config(state); storageModule = getStorageModule(); await storageModule?.config(state); }; const config = async (_config) => { state.dbParams = _config.dbParams; state.isBrowser = _config.isBrowser; dBProvider = _config?.dbParams?.provider; }; const addData = async (key, data, expiration = DEFAULT_EXPIRATION) => { await init(); await storageModule?.addData(key, data, expiration); }; exports.addData = addData; const getData = async (key) => { await init(); return storageModule.getData(key); }; exports.getData = getData; const updateData = async (key, data, expiration = DEFAULT_EXPIRATION) => { await init(); await storageModule?.updateData(key, data, expiration); }; exports.updateData = updateData; const removeData = async (key) => { await init(); await storageModule?.removeData(key); }; exports.removeData = removeData; const removeDataByPattern = async (pattern) => { await init(); if ((await storageModule?.removeDataByPattern) !== undefined) { await storageModule?.removeDataByPattern(pattern); } else { throw new Error('removeDataByPattern is not defined'); } }; exports.removeDataByPattern = removeDataByPattern; const resetData = async () => { await init(); await storageModule?.resetData(); }; exports.resetData = resetData; exports.CacheNodeStorageModule = { config, addData: exports.addData, getData: exports.getData, updateData: exports.updateData, removeData: exports.removeData, removeDataByPattern: exports.removeDataByPattern, resetData: exports.resetData, }; //# sourceMappingURL=cache-node-storage.module.js.map