import dayjs from 'dayjs'; import { envVars } from './config.js'; const logger = ({ type = 'info', msg }) => { const timestamp = new Date().toLocaleString(); let colour = '\x1b[39m'; let prefix; switch (type) { case 'error': colour = '\x1b[91m'; prefix = '[ERROR] '; break; case 'warn': colour = '\x1b[33m'; prefix = '[WARN] '; break; default: colour = '\x1b[32m'; prefix = '[INFO] '; } console.log(colour + prefix + timestamp + ': ' + msg); }; const validationErrorCheck = (error) => { try { if (error) throw error?.details[0]?.message; } catch (error) { logger({ type: 'error', msg: error }); process.exit(0); } }; // rubbish idea not being used const backupTimeDiff = async (lastDate) => { try { const now = dayjs(); const last = dayjs(lastDate); const difference = now.diff(last, 'seconds'); return difference; } catch (error) { logger({ type: 'error', msg: error }); return null; } }; const backupsToDelete = async (backupArray) => { // get the list of backups to delete and return only the names if (!backupArray) return []; return backupArray.map(({ name }) => name); }; const haveSomeCoffee = async () => { await new Promise( (resolve) => setTimeout(resolve, envVars.BACKUP_INTERVAL * 1000 * 60) // convert to mins // (resolve) => setTimeout(resolve, 500) // for testing ); }; export { validationErrorCheck, backupTimeDiff, backupsToDelete, haveSomeCoffee, logger, };