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

28 lines
734 B
TypeScript

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 = [
{
provide: 'REDIS_URL',
useFactory: (config: ConfigurationService) =>
process.env.REDIS_URL ||
config.get<string>('app.redis_url') ||
'redis://localhost:6379',
inject: [ConfigurationService],
},
{
provide: 'REDIS_CLIENT',
useFactory: async (url: string): Promise<Redis> => {
const redisClient = redis.createClient({
url,
});
return redisClient.connect();
},
inject: ['REDIS_URL'],
} as FactoryProvider<Redis>,
];