redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
45 lines • 1.68 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RedisConfig = void 0;
const redis_smq_common_1 = require("redis-smq-common");
const lodash_1 = __importDefault(require("lodash"));
class RedisConfig {
constructor(redisConfig) {
this.config = this.mergeConfig(redisConfig);
}
mergeConfig(redisConfig) {
var _a;
const defaultConfig = {
client: redis_smq_common_1.ERedisConfigClient.IOREDIS,
options: { host: '127.0.0.1', port: 6379, db: 0 },
};
if ((redisConfig === null || redisConfig === void 0 ? void 0 : redisConfig.client) && redisConfig.client !== defaultConfig.client) {
return {
client: redisConfig.client,
options: (_a = redisConfig.options) !== null && _a !== void 0 ? _a : {},
};
}
return lodash_1.default.merge({}, defaultConfig, redisConfig !== null && redisConfig !== void 0 ? redisConfig : {});
}
static initialize(config) {
if (RedisConfig.instance) {
throw new Error('Already initialized');
}
RedisConfig.instance = new RedisConfig(config);
}
static getConfig() {
if (!RedisConfig.instance) {
throw new Error('Not initialized');
}
return Object.freeze(RedisConfig.instance.config);
}
static reset() {
RedisConfig.instance = null;
}
}
exports.RedisConfig = RedisConfig;
RedisConfig.instance = null;
//# sourceMappingURL=redis-config.js.map