icynet-auth-server/src/modules/redis/redis.providers.ts

28 lines
734 B
TypeScript
Raw Normal View History

2022-12-04 12:24:10 +00:00
import { FactoryProvider } from '@nestjs/common';
import { ConfigurationService } from '../config/config.service';
import * as redis from 'redis';
export type Redis = ReturnType<typeof redis.createClient>;
export const redisProviders = [
2024-03-12 15:49:06 +00:00
{
provide: 'REDIS_URL',
useFactory: (config: ConfigurationService) =>
process.env.REDIS_URL ||
config.get<string>('app.redis_url') ||
'redis://localhost:6379',
inject: [ConfigurationService],
},
2022-12-04 12:24:10 +00:00
{
provide: 'REDIS_CLIENT',
2024-03-12 15:49:06 +00:00
useFactory: async (url: string): Promise<Redis> => {
2022-12-04 12:24:10 +00:00
const redisClient = redis.createClient({
2024-03-12 15:49:06 +00:00
url,
2022-12-04 12:24:10 +00:00
});
2024-03-12 15:49:06 +00:00
return redisClient.connect();
2022-12-04 12:24:10 +00:00
},
2024-03-12 15:49:06 +00:00
inject: ['REDIS_URL'],
2022-12-04 12:24:10 +00:00
} as FactoryProvider<Redis>,
];