import { FactoryProvider } from '@nestjs/common'; import { ConfigurationService } from '../config/config.service'; import * as redis from 'redis'; export type Redis = ReturnType; export const redisProviders = [ { provide: 'REDIS_URL', useFactory: (config: ConfigurationService) => process.env.REDIS_URL || config.get('app.redis_url') || 'redis://localhost:6379', inject: [ConfigurationService], }, { provide: 'REDIS_CLIENT', useFactory: async (url: string): Promise => { const redisClient = redis.createClient({ url, }); return redisClient.connect(); }, inject: ['REDIS_URL'], } as FactoryProvider, ];