UNPKG

flexmonster-mongo-connector

Version:

Custom data source API implementation for MongoDB

55 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigManager = void 0; class ConfigManager { constructor(config) { this._currentConfig = undefined; this._defaultConfig = { cacheMemoryLimit: 0, cacheEnabled: true, cacheTimeToLive: 0, logsEnabled: false }; if (ConfigManager._instance !== undefined) throw new Error("Initialization failed: " + "use Singleton.getInstance() instead of new."); this._currentConfig = this.validateConfig(config); } static getInstance(config) { if (this._instance === undefined) { this._instance = new ConfigManager(config); } return this._instance; } validateConfig(config) { if (config === undefined) return this._defaultConfig; let currentConfig = {}; if (config.cacheMemoryLimit !== undefined || config.cacheMemoryLimit !== null) { currentConfig.cacheMemoryLimit = !isNaN(config.cacheMemoryLimit) && config.cacheMemoryLimit > 0 ? config.cacheMemoryLimit : this._defaultConfig.cacheMemoryLimit; } if (config.cacheTimeToLive !== undefined || config.cacheTimeToLive !== null) { currentConfig.cacheTimeToLive = !isNaN(config.cacheTimeToLive) && config.cacheTimeToLive > 0 ? config.cacheTimeToLive : this._defaultConfig.cacheTimeToLive; } currentConfig.cacheEnabled = (config.cacheEnabled !== undefined || config.cacheEnabled !== null) ? (typeof config.cacheEnabled === "boolean" ? config.cacheEnabled : this._defaultConfig.cacheEnabled) : this._defaultConfig.cacheEnabled; currentConfig.logsEnabled = config.logsEnabled !== undefined || config.logsEnabled !== null ? (typeof config.logsEnabled === "boolean" ? config.logsEnabled : this._defaultConfig.logsEnabled) : this._defaultConfig.logsEnabled; return currentConfig; } get currentConfig() { return this._currentConfig; } toString() { return JSON.stringify(this.currentConfig); } } exports.ConfigManager = ConfigManager; ConfigManager._instance = undefined; //# sourceMappingURL=ConfigManager.js.map