UNPKG

redis-module

Version:
62 lines (61 loc) 2.3 kB
"use strict"; var RedisModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisModule = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const redis_provider_1 = require("./redis.provider"); const redis_constants_1 = require("./redis.constants"); const redis_service_1 = require("./redis.service"); let RedisModule = RedisModule_1 = class RedisModule { constructor(options, redisClient) { this.options = options; this.redisClient = redisClient; } static register(options) { return { module: RedisModule_1, providers: [ (0, redis_provider_1.createClient)(), { provide: redis_constants_1.REDIS_MODULE_OPTIONS, useValue: options }, ], exports: [redis_service_1.RedisService], }; } static forRootAsync(options) { return { global: true, module: RedisModule_1, imports: options.imports, providers: [(0, redis_provider_1.createClient)(), (0, redis_provider_1.createAsyncClientOptions)(options)], exports: [redis_service_1.RedisService], }; } onModuleDestroy() { const closeConnection = ({ clients, defaultKey }) => (options) => { const name = options.name || defaultKey; const client = clients.get(name); if (client && !options.keepAlive) { client.disconnect(); } }; const closeClientConnection = closeConnection(this.redisClient); if (Array.isArray(this.options)) { this.options.forEach(closeClientConnection); } else { closeClientConnection(this.options); } } }; RedisModule = RedisModule_1 = (0, tslib_1.__decorate)([ (0, common_1.Global)(), (0, common_1.Module)({ providers: [redis_service_1.RedisService], exports: [redis_service_1.RedisService], }), (0, tslib_1.__param)(0, (0, common_1.Inject)(redis_constants_1.REDIS_MODULE_OPTIONS)), (0, tslib_1.__param)(1, (0, common_1.Inject)(redis_constants_1.REDIS_CLIENT)), (0, tslib_1.__metadata)("design:paramtypes", [Object, Object]) ], RedisModule); exports.RedisModule = RedisModule;