UNPKG

nestjs-redis-plus

Version:
37 lines (36 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRedisServiceProvider = exports.createRedisProvider = exports.createRedisNameProvider = void 0; const common_1 = require("@nestjs/common"); const ioredis_1 = require("ioredis"); const redis_constants_1 = require("./redis.constants"); const redis_utils_1 = require("./common/redis.utils"); const redis_service_1 = require("./redis.service"); const createRedisNameProvider = (token) => ({ provide: redis_constants_1.REDIS_NAME_TOKEN, useValue: token, }); exports.createRedisNameProvider = createRedisNameProvider; const createRedisProvider = (token) => ({ provide: token, useFactory: async (options) => { const logger = new common_1.Logger(`RedisModule:${String(token)}`); if (options.url) options = { ...(0, redis_utils_1.parseRedisUrl)(options.url), ...options }; const miniUrl = `${options.tls ? "rediss" : "redis"}://${options.host}:${options.port}`; const client = new ioredis_1.default(options); client.once("ready", () => logger.log(`Established connection to ${miniUrl}`)); client.on("error", (err) => logger.error(`An error occured: ${err.message}`)); logger.log(`Establishing connection to ${miniUrl} ...`); if (client.status !== "connecting") await client.connect(); return client; }, inject: [redis_constants_1.REDIS_MODULE_OPTIONS_TOKEN], }); exports.createRedisProvider = createRedisProvider; const createRedisServiceProvider = (token) => ({ provide: token, useClass: redis_service_1.RedisService, }); exports.createRedisServiceProvider = createRedisServiceProvider;