datasquirel/package-shared/utils/test-db-connection.ts
Benjamin Toby 382da38bb0 Updates
2025-07-09 20:42:01 +01:00

45 lines
1.1 KiB
TypeScript

import dbHandler from "../functions/backend/dbHandler";
import sleep from "./sleep";
let testDbConnRetries = 0;
const MAX_TEST_DB_CONN_RETRIES = 10;
const SLEEP_TIME = 2000;
type Params = {
maxRetries?: number;
sleepTime?: number;
};
export default async function testDbConnection(params?: Params) {
console.log("Testing Database Connection ...", testDbConnRetries);
while (true) {
testDbConnRetries++;
try {
const res = (await dbHandler({ query: `SHOW DATABASES` })) as
| any[]
| null;
if (res?.[0]) {
console.log("Database Connection Complete!");
break;
}
await sleep(params?.sleepTime || SLEEP_TIME);
if (
testDbConnRetries >
(params?.maxRetries || MAX_TEST_DB_CONN_RETRIES)
) {
console.log("Database Connection Failed!");
process.exit(1);
}
} catch (error) {
await sleep(params?.sleepTime || SLEEP_TIME);
}
}
return true;
}