UNPKG

@hypernetlabs/common-redis-provider

Version:
59 lines 2.78 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisProvider = void 0; const utils_1 = require("@hypernetlabs/utils"); const inversify_1 = require("inversify"); const neverthrow_1 = require("neverthrow"); const redis_1 = __importDefault(require("redis")); const IRedisConfigProvider_1 = require("./IRedisConfigProvider"); const RedisClient_1 = require("./RedisClient"); let RedisProvider = class RedisProvider { constructor(configProvider, logUtils) { this.configProvider = configProvider; this.logUtils = logUtils; } getRedisClient() { return this.init(); } init() { if (this.redisClientResult == null) { this.redisClientResult = this.configProvider .getConfig() .andThen((config) => { return neverthrow_1.ResultAsync.fromSafePromise(new Promise((resolve) => { const redisClient = redis_1.default.createClient({ host: config.redisHost, port: config.redisPort, }); redisClient.on("ready", () => { this.logUtils.info(`Connected to Redis at ${config.redisHost} on port ${config.redisPort} `); resolve(new RedisClient_1.RedisClient(redisClient, config)); }); redisClient.on("error", (e) => { this.logUtils.error(e); }); })); }); } return this.redisClientResult; } }; RedisProvider = __decorate([ (0, inversify_1.injectable)(), __param(0, (0, inversify_1.inject)(IRedisConfigProvider_1.IRedisConfigProviderType)), __param(1, (0, inversify_1.inject)(utils_1.ILogUtilsType)) ], RedisProvider); exports.RedisProvider = RedisProvider; //# sourceMappingURL=RedisProvider.js.map