fix #82 Nest 8 bug.

上级 0715fe68
import { DynamicModule, OnModuleDestroy } from '@nestjs/common'; import { DynamicModule, OnModuleDestroy } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { RedisModuleAsyncOptions, RedisModuleOptions } from './redis.interface'; import { RedisModuleAsyncOptions, RedisModuleOptions } from './redis.interface';
import { RedisClient } from './redis-client.provider';
export declare class RedisCoreModule implements OnModuleDestroy { export declare class RedisCoreModule implements OnModuleDestroy {
private readonly options; private readonly options;
private readonly moduleRef; private readonly redisClient;
constructor(options: RedisModuleOptions | RedisModuleOptions[], moduleRef: ModuleRef); constructor(options: RedisModuleOptions | RedisModuleOptions[], redisClient: RedisClient);
static register(options: RedisModuleOptions | RedisModuleOptions[]): DynamicModule; static register(options: RedisModuleOptions | RedisModuleOptions[]): DynamicModule;
static forRootAsync(options: RedisModuleAsyncOptions): DynamicModule; static forRootAsync(options: RedisModuleAsyncOptions): DynamicModule;
onModuleDestroy(): void; onModuleDestroy(): void;
......
...@@ -15,14 +15,13 @@ var RedisCoreModule_1; ...@@ -15,14 +15,13 @@ var RedisCoreModule_1;
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.RedisCoreModule = void 0; exports.RedisCoreModule = void 0;
const common_1 = require("@nestjs/common"); const common_1 = require("@nestjs/common");
const core_1 = require("@nestjs/core");
const redis_client_provider_1 = require("./redis-client.provider"); const redis_client_provider_1 = require("./redis-client.provider");
const redis_constants_1 = require("./redis.constants"); const redis_constants_1 = require("./redis.constants");
const redis_service_1 = require("./redis.service"); const redis_service_1 = require("./redis.service");
let RedisCoreModule = RedisCoreModule_1 = class RedisCoreModule { let RedisCoreModule = RedisCoreModule_1 = class RedisCoreModule {
constructor(options, moduleRef) { constructor(options, redisClient) {
this.options = options; this.options = options;
this.moduleRef = moduleRef; this.redisClient = redisClient;
} }
static register(options) { static register(options) {
return { return {
...@@ -43,15 +42,14 @@ let RedisCoreModule = RedisCoreModule_1 = class RedisCoreModule { ...@@ -43,15 +42,14 @@ let RedisCoreModule = RedisCoreModule_1 = class RedisCoreModule {
}; };
} }
onModuleDestroy() { onModuleDestroy() {
const closeConnection = ({ clients, defaultKey }) => options => { const closeConnection = ({ clients, defaultKey }) => (options) => {
const name = options.name || defaultKey; const name = options.name || defaultKey;
const client = clients.get(name); const client = clients.get(name);
if (client && !options.keepAlive) { if (client && !options.keepAlive) {
client.disconnect(); client.disconnect();
} }
}; };
const redisClient = this.moduleRef.get(redis_constants_1.REDIS_CLIENT); const closeClientConnection = closeConnection(this.redisClient);
const closeClientConnection = closeConnection(redisClient);
if (Array.isArray(this.options)) { if (Array.isArray(this.options)) {
this.options.forEach(closeClientConnection); this.options.forEach(closeClientConnection);
} }
...@@ -67,6 +65,7 @@ RedisCoreModule = RedisCoreModule_1 = __decorate([ ...@@ -67,6 +65,7 @@ RedisCoreModule = RedisCoreModule_1 = __decorate([
exports: [redis_service_1.RedisService], exports: [redis_service_1.RedisService],
}), }),
__param(0, common_1.Inject(redis_constants_1.REDIS_MODULE_OPTIONS)), __param(0, common_1.Inject(redis_constants_1.REDIS_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object, core_1.ModuleRef]) __param(1, common_1.Inject(redis_constants_1.REDIS_CLIENT)),
__metadata("design:paramtypes", [Object, Object])
], RedisCoreModule); ], RedisCoreModule);
exports.RedisCoreModule = RedisCoreModule; exports.RedisCoreModule = RedisCoreModule;
...@@ -5,7 +5,6 @@ import { ...@@ -5,7 +5,6 @@ import {
Inject, Inject,
OnModuleDestroy, OnModuleDestroy,
} from '@nestjs/common'; } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { RedisModuleAsyncOptions, RedisModuleOptions } from './redis.interface'; import { RedisModuleAsyncOptions, RedisModuleOptions } from './redis.interface';
import { import {
createAsyncClientOptions, createAsyncClientOptions,
...@@ -25,7 +24,8 @@ export class RedisCoreModule implements OnModuleDestroy { ...@@ -25,7 +24,8 @@ export class RedisCoreModule implements OnModuleDestroy {
constructor( constructor(
@Inject(REDIS_MODULE_OPTIONS) @Inject(REDIS_MODULE_OPTIONS)
private readonly options: RedisModuleOptions | RedisModuleOptions[], private readonly options: RedisModuleOptions | RedisModuleOptions[],
private readonly moduleRef: ModuleRef, @Inject(REDIS_CLIENT)
private readonly redisClient: RedisClient,
) {} ) {}
static register( static register(
...@@ -51,7 +51,7 @@ export class RedisCoreModule implements OnModuleDestroy { ...@@ -51,7 +51,7 @@ export class RedisCoreModule implements OnModuleDestroy {
} }
onModuleDestroy() { onModuleDestroy() {
const closeConnection = ({ clients, defaultKey }) => options => { const closeConnection = ({ clients, defaultKey }) => (options) => {
const name = options.name || defaultKey; const name = options.name || defaultKey;
const client = clients.get(name); const client = clients.get(name);
...@@ -60,8 +60,7 @@ export class RedisCoreModule implements OnModuleDestroy { ...@@ -60,8 +60,7 @@ export class RedisCoreModule implements OnModuleDestroy {
} }
}; };
const redisClient = this.moduleRef.get<RedisClient>(REDIS_CLIENT); const closeClientConnection = closeConnection(this.redisClient);
const closeClientConnection = closeConnection(redisClient);
if (Array.isArray(this.options)) { if (Array.isArray(this.options)) {
this.options.forEach(closeClientConnection); this.options.forEach(closeClientConnection);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论