flexmonster-mongo-connector
Version:
MongoDB connector for Flexmonster Pivot Table and Charts
55 lines • 2.4 kB
JavaScript
;
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