redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
38 lines • 1.2 kB
JavaScript
import { ERedisConfigClient } from 'redis-smq-common';
import _ from 'lodash';
export class RedisConfig {
static instance = null;
config;
constructor(redisConfig) {
this.config = this.mergeConfig(redisConfig);
}
mergeConfig(redisConfig) {
const defaultConfig = {
client: ERedisConfigClient.IOREDIS,
options: { host: '127.0.0.1', port: 6379, db: 0 },
};
if (redisConfig?.client && redisConfig.client !== defaultConfig.client) {
return {
client: redisConfig.client,
options: redisConfig.options ?? {},
};
}
return _.merge({}, defaultConfig, 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;
}
}
//# sourceMappingURL=redis-config.js.map