28 lines
696 B
TypeScript
28 lines
696 B
TypeScript
import type { RedisOptions } from "ioredis";
|
|
import { Redis } from "ioredis";
|
|
|
|
import { redisEnv } from "./env";
|
|
|
|
const defaultRedisOptions = {
|
|
connectionName: "homarr",
|
|
} satisfies RedisOptions;
|
|
|
|
export type { Redis as RedisClient } from "ioredis";
|
|
|
|
export const createRedisClient = () =>
|
|
redisEnv.IS_EXTERNAL
|
|
? new Redis({
|
|
...defaultRedisOptions,
|
|
host: redisEnv.HOST,
|
|
port: redisEnv.PORT,
|
|
db: redisEnv.DATABASE_INDEX,
|
|
tls: redisEnv.TLS_CA
|
|
? {
|
|
ca: redisEnv.TLS_CA,
|
|
}
|
|
: undefined,
|
|
username: redisEnv.USERNAME,
|
|
password: redisEnv.PASSWORD,
|
|
})
|
|
: new Redis(defaultRedisOptions);
|