@configurator/ravendb
Version:
RavenDB client for Node.js
67 lines • 3.52 kB
JavaScript
;
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