mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 19:14:16 +00:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
import { createClient } from "redis"
|
|
|
|
function composeURL() {
|
|
// support for auth
|
|
let url = "redis://"
|
|
|
|
if (process.env.REDIS_PASSWORD && process.env.REDIS_USERNAME) {
|
|
url += process.env.REDIS_USERNAME + ":" + process.env.REDIS_PASSWORD + "@"
|
|
}
|
|
|
|
url += process.env.REDIS_HOST ?? "localhost"
|
|
|
|
if (process.env.REDIS_PORT) {
|
|
url += ":" + process.env.REDIS_PORT
|
|
}
|
|
|
|
return url
|
|
}
|
|
|
|
export default () => {
|
|
let client = createClient({
|
|
url: composeURL(),
|
|
password: process.env.REDIS_PASSWORD,
|
|
username: process.env.REDIS_USERNAME,
|
|
})
|
|
|
|
client.initialize = async () => {
|
|
console.log("🔌 Connecting to Redis client...")
|
|
|
|
await client.connect()
|
|
|
|
return client
|
|
}
|
|
|
|
// handle when client disconnects unexpectedly to avoid main crash
|
|
client.on("error", (error) => {
|
|
console.error("❌ Redis client error:", error)
|
|
})
|
|
|
|
// handle when client connects
|
|
client.on("connect", () => {
|
|
console.log("✅ Redis client connected.")
|
|
})
|
|
|
|
return client
|
|
} |