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