44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import dbHandler from "../functions/backend/dbHandler";
|
|
|
|
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 Bun.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 Bun.sleep(params?.sleepTime || SLEEP_TIME);
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|