UNPKG

@configurator/ravendb

Version:
67 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.periodicBackupFileExtensionComparator = exports.BackupUtils = void 0; const Constants_1 = require("../../Constants"); const StringUtil_1 = require("../../Utility/StringUtil"); const path = require("path"); const fs = require("fs"); class BackupUtils { constructor() { } static isFullBackupOrSnapshot(extension) { return BackupUtils.isSnapshot(extension) || BackupUtils.isFullBackup(extension); } static isFullBackup(extension) { return StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION, extension) || StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION, extension); } static isSnapshot(extension) { return StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.SNAPSHOT_EXTENSION, extension) || StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION, extension); } static isIncrementalBackupFile(extension) { return StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.INCREMENTAL_BACKUP_EXTENSION, extension) || StringUtil_1.StringUtil.equalsIgnoreCase(Constants_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_INCREMENTAL_BACKUP_EXTENSION, extension) || StringUtil_1.StringUtil.equalsIgnoreCase(BackupUtils.LEGACY_INCREMENTAL_BACKUP_EXTENSION, extension); } static comparator(o1, o2) { const baseName1 = path.basename(o1, path.extname(o1)); const baseName2 = path.basename(o2, path.extname(o2)); if (baseName1 !== baseName2) { return baseName1.localeCompare(baseName2); } const extension1 = path.extname(o1); const extension2 = path.extname(o2); if (extension1 !== extension2) { return periodicBackupFileExtensionComparator(o1, o2); } const lastModified1 = fs.statSync(o1).mtimeMs; const lastModified2 = fs.statSync(o2).mtimeMs; return lastModified1 - lastModified2; } } exports.BackupUtils = BackupUtils; BackupUtils.LEGACY_INCREMENTAL_BACKUP_EXTENSION = ".ravendb-incremental-dump"; BackupUtils.LEGACY_FULL_BACKUP_EXTENSION = ".ravendb-full-dump"; BackupUtils.BACKUP_FILE_SUFFIXES = [ BackupUtils.LEGACY_INCREMENTAL_BACKUP_EXTENSION, BackupUtils.LEGACY_FULL_BACKUP_EXTENSION, Constants_1.CONSTANTS.Documents.PeriodicBackup.INCREMENTAL_BACKUP_EXTENSION, Constants_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_INCREMENTAL_BACKUP_EXTENSION, Constants_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION, Constants_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION ]; function periodicBackupFileExtensionComparator(o1, o2) { if (path.resolve(o1) === path.resolve(o2)) { return 0; } if (StringUtil_1.StringUtil.equalsIgnoreCase(path.extname(o1), "." + Constants_1.CONSTANTS.Documents.PeriodicBackup.SNAPSHOT_EXTENSION)) { return -1; } if (StringUtil_1.StringUtil.equalsIgnoreCase(path.extname(o1), "." + Constants_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION)) { return -1; } return 1; } exports.periodicBackupFileExtensionComparator = periodicBackupFileExtensionComparator; //# sourceMappingURL=BackupUtils.js.map