import knex from 'knex'; import config from "../config.js"; let database = null; let lastFailed = null; /** * @return {Knex} */ export default function getDatabase() { if (database) { return database; } if (lastFailed && (new Date().getTime() - lastFailed.getTime() < 60000)) { // attempt to reconnect every 1 minute, not more frequently return; } try { console.log('connecting db'); database = knex({ ...config.database, }); lastFailed = null; return database; } catch (e) { console.error("Cannot connect to database". e); database = null; lastFailed = new Date(); return null; } };