@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
89 lines • 3.15 kB
JavaScript
;
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