@ezgdev/nest-ioredis
Version:
Nest - a ioredis module (@ioredis)
26 lines (25 loc) • 946 B
TypeScript
import { ModuleMetadata, Type } from '@nestjs/common/interfaces';
import { ClusterNode, ClusterOptions, RedisOptions } from 'ioredis';
export interface RedisSingleOptions {
type: 'single';
url?: string;
options?: RedisOptions;
}
export interface RedisClusterOptions {
type: 'cluster';
nodes: ClusterNode[];
options?: ClusterOptions;
}
export type RedisModuleOptions = (RedisSingleOptions | RedisClusterOptions) & {
onConnectionError?: (error: Error) => void;
onConnectionReady?: () => void;
};
export interface RedisModuleOptionsFactory {
createRedisModuleOptions(): Promise<RedisModuleOptions> | RedisModuleOptions;
}
export interface RedisModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
inject?: any[];
useClass?: Type<RedisModuleOptionsFactory>;
useExisting?: Type<RedisModuleOptionsFactory>;
useFactory?: (...args: any[]) => Promise<RedisModuleOptions> | RedisModuleOptions;
}