Skip to content

Commit e0ab71a

Browse files
Fixing redis dependency issue by adding redis module to global common module import.
1 parent 47fd30c commit e0ab71a

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

src/common/common.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import { DatabaseModule } from './database/database.module';
44
import { ConfigModule } from './configs/config.module';
55
import { LogModule } from './log/log.module';
66
import { TraceModule } from './trace/trace.module';
7+
import { RedisModule } from './redis/redis.module';
78

89
@Global()
910
@Module({
10-
imports: [DatabaseModule, ConfigModule, LogModule, TraceModule],
11-
exports: [DatabaseModule, ConfigModule, LogModule, TraceModule],
11+
imports: [DatabaseModule, ConfigModule, LogModule, TraceModule, RedisModule.forRoot()],
12+
exports: [DatabaseModule, ConfigModule, LogModule, TraceModule, RedisModule],
1213
})
1314
export class CommonModule {}

src/common/redis/redis.decorator.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1-
import { Inject, applyDecorators } from '@nestjs/common';
1+
import { applyDecorators } from '@nestjs/common';
2+
import { Inject, Injectable } from '@nestjs/common';
3+
import { ConfigService } from '../configs/config.service';
24

3-
export const prefixesForRedisClients: string[] = [];
5+
export const prefixesForRedisClients: string[] = new Array<string>();
46

5-
/* Inject a *single* named RedisService instance
6-
* @RedisServer('AUTH') myRedis: RedisService
7-
*/
8-
export function RedisServer(prefix = '') {
7+
export function RedisServer(prefix: string = '') {
8+
console.log('RedisServer', prefix);
99
if (!prefixesForRedisClients.includes(prefix)) {
1010
prefixesForRedisClients.push(prefix);
1111
}
1212
return Inject(`RedisService${prefix}`);
1313
}
1414

15-
/* Inject *all* prefixed Redis clients
16-
* constructor(@RedisServers() ...args: RedisService[]) {}
17-
*/
18-
export function RedisServers() {
19-
return applyDecorators(...prefixesForRedisClients.map((p) => Inject(`RedisService${p}`)));
15+
// This function now expects a ConfigService instance to be passed in
16+
export function RedisServers(configService: ConfigService) {
17+
const configRedisServers = configService.get('REDIS_SERVERS');
18+
const decorators = [];
19+
if (configRedisServers && typeof configRedisServers === 'object') {
20+
for (const key in configRedisServers) {
21+
decorators.push(Inject(`REDIS_${key}_CLIENT`));
22+
}
23+
}
24+
//console.log('decorators', decorators);
25+
return applyDecorators(...decorators);
2026
}

src/common/redis/redis.module.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
import { Module, DynamicModule } from '@nestjs/common';
1+
import { Module, DynamicModule, Global } from '@nestjs/common';
22
import { redisProviders, createRedisProviders } from './redis.providers';
33
import { RedisService } from './redis.service';
44

5-
//const loggerProviders = createRedisProviders();
6-
7-
/*@Module({
8-
providers: [...redisProviders, RedisService, ...loggerProviders],
9-
exports: [...redisProviders, RedisService, ...loggerProviders],
10-
})*/
5+
@Global()
6+
@Module({})
117
export class RedisModule {
128
static forRoot(): DynamicModule {
139
const prefixedRedisProviders = createRedisProviders();

0 commit comments

Comments
 (0)