Update index.js

This commit is contained in:
SrGooglo 2025-04-24 06:08:36 +00:00
parent 80acb13912
commit 652cd747b1

View File

@ -1,79 +1,72 @@
import Redis from "ioredis"
export function composeURL({
host,
port,
username,
password,
} = {}) {
let url = "redis://"
export function composeURL({ host, port, username, password } = {}) {
let url = "redis://"
if (username && password) {
url += username + ":" + password + "@"
}
if (username && password) {
url += username + ":" + password + "@"
}
url += host ?? "localhost"
url += host ?? "localhost"
if (port) {
url += ":" + port
}
if (port) {
url += ":" + port
}
return url
return url
}
export default () => {
let { REDIS_HOST, REDIS_PORT, REDIS_NO_AUTH, REDIS_AUTH, REDIS_DB } = process.env
export default (params = {}) => {
let { REDIS_HOST, REDIS_PORT, REDIS_NO_AUTH, REDIS_AUTH, REDIS_DB } =
process.env
REDIS_NO_AUTH = ToBoolean(REDIS_NO_AUTH)
let clientOptions = {
host: REDIS_HOST ?? "localhost",
port: REDIS_PORT ?? 6379,
lazyConnect: true,
autoConnect: false,
...params,
}
let clientOptions = {
host: REDIS_HOST,
port: REDIS_PORT,
lazyConnect: true,
autoConnect: false
}
// if redis auth is provided, set username and password
if (!ToBoolean(REDIS_NO_AUTH) && REDIS_AUTH) {
const [user, password] = REDIS_AUTH.split(":")
if (!REDIS_NO_AUTH) {
if (REDIS_AUTH) {
const [user, password] = REDIS_AUTH.split(":")
clientOptions.username = user
clientOptions.password = password
} else {
console.log("⚠️ Redis auth is disabled")
}
clientOptions.username = user
clientOptions.password = password
}
} else {
console.log("⚠️ Redis auth is disabled")
}
// if redis db is provided, set db
if (REDIS_DB) {
clientOptions.db = REDIS_DB
}
if (REDIS_DB) {
clientOptions.db = REDIS_DB
}
let client = new Redis(clientOptions)
clientOptions = composeURL(clientOptions)
client.on("error", (error) => {
console.error("❌ Redis client error:", error)
})
let client = new Redis(clientOptions.host, clientOptions.port, clientOptions)
client.on("connect", () => {
console.log(`✅ Redis client connected [${process.env.REDIS_HOST}]`)
})
client.on("error", (error) => {
console.error("❌ Redis client error:", error)
})
client.on("reconnecting", () => {
console.log("🔄 Redis client reconnecting...")
})
client.on("connect", () => {
console.log(`✅ Redis client connected [${process.env.REDIS_HOST}]`)
})
const initialize = async () => {
return await new Promise((resolve, reject) => {
console.log(`🔌 Connecting to Redis client [${REDIS_HOST}]`)
client.on("reconnecting", () => {
console.log("🔄 Redis client reconnecting...")
})
client.connect(resolve)
})
}
const initialize = async () => {
return await new Promise((resolve, reject) => {
console.log(`🔌 Connecting to Redis client [${REDIS_HOST}]`)
client.connect(resolve)
})
}
return {
client,
initialize
}
return {
client,
initialize,
}
}