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; }