import grabDBDir from "../utils/grab-db-dir"; import fs from "fs"; import _ from "lodash"; export default function grabSortedBackups({ config }) { const { backup_dir } = grabDBDir({ config }); if (!fs.existsSync(backup_dir)) return []; /** * Only files named by `grabDBBackupFileName` for this database. Anything * else in the directory is never listed (or trimmed). */ const backup_name_regex = new RegExp(`^${_.escapeRegExp(config.db_name)}-\\d+$`); const backups = fs .readdirSync(backup_dir) .filter((b) => backup_name_regex.test(b)); /** * Order Backups. Most recent first. */ const ordered_backups = backups.sort((a, b) => { const a_date = Number(a.split("-").pop()); const b_date = Number(b.split("-").pop()); return b_date - a_date; }); return ordered_backups; }