UNPKG

@songkeys/nestjs-redis

Version:

Redis(ioredis) module for Nest framework (node.js).

83 lines (82 loc) 3.4 kB
"use strict"; var ClusterModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClusterModule = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const core_1 = require("@nestjs/core"); const cluster_manager_1 = require("./cluster-manager"); const cluster_providers_1 = require("./cluster.providers"); const cluster_constants_1 = require("./cluster.constants"); const common_2 = require("./common"); const utils_1 = require("../utils"); const cluster_logger_1 = require("./cluster-logger"); const errors_1 = require("../errors"); const messages_1 = require("../messages"); /** * @public */ let ClusterModule = exports.ClusterModule = ClusterModule_1 = class ClusterModule { constructor(moduleRef) { this.moduleRef = moduleRef; } /** * Registers the module synchronously. */ static forRoot(options, isGlobal = true) { const clusterClientProviders = (0, cluster_providers_1.createClusterClientProviders)(); const providers = [ (0, cluster_providers_1.createOptionsProvider)(options), cluster_providers_1.clusterClientsProvider, cluster_providers_1.mergedOptionsProvider, cluster_manager_1.ClusterManager, ...clusterClientProviders ]; return { global: isGlobal, module: ClusterModule_1, providers, exports: [cluster_manager_1.ClusterManager, ...clusterClientProviders] }; } /** * Registers the module asynchronously. */ static forRootAsync(options, isGlobal = true) { var _a; if (!options.useFactory && !options.useClass && !options.useExisting) { throw new errors_1.MissingConfigurationsError(); } const clusterClientProviders = (0, cluster_providers_1.createClusterClientProviders)(); const providers = [ ...(0, cluster_providers_1.createAsyncProviders)(options), cluster_providers_1.clusterClientsProvider, cluster_providers_1.mergedOptionsProvider, cluster_manager_1.ClusterManager, ...clusterClientProviders, ...((_a = options.extraProviders) !== null && _a !== void 0 ? _a : []) ]; return { global: isGlobal, module: ClusterModule_1, imports: options.imports, providers, exports: [cluster_manager_1.ClusterManager, ...clusterClientProviders] }; } async onApplicationShutdown() { const { closeClient } = this.moduleRef.get(cluster_constants_1.CLUSTER_MERGED_OPTIONS); if (closeClient) { const results = await (0, common_2.destroy)(this.moduleRef.get(cluster_constants_1.CLUSTER_CLIENTS)); results.forEach(([namespace, quit]) => { if ((0, utils_1.isResolution)(namespace) && (0, utils_1.isRejection)(quit) && (0, utils_1.isError)(quit.reason)) { cluster_logger_1.logger.error((0, messages_1.ERROR_LOG)((0, utils_1.parseNamespace)(namespace.value), quit.reason.message), quit.reason.stack); } }); } } }; exports.ClusterModule = ClusterModule = ClusterModule_1 = tslib_1.__decorate([ (0, common_1.Module)({}), tslib_1.__metadata("design:paramtypes", [core_1.ModuleRef]) ], ClusterModule);