28 lines
734 B
TypeScript
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>,
|
|
];
|