ravendb
Version:
RavenDB client for Node.js
68 lines • 3.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BackupUtils = void 0;
exports.periodicBackupFileExtensionComparator = periodicBackupFileExtensionComparator;
const Constants_js_1 = require("../../Constants.js");
const StringUtil_js_1 = require("../../Utility/StringUtil.js");
const node_path_1 = require("node:path");
class BackupUtils {
// eslint-disable-next-line @typescript-eslint/no-empty-function
constructor() {
// empty
}
static LEGACY_INCREMENTAL_BACKUP_EXTENSION = ".ravendb-incremental-dump";
static LEGACY_FULL_BACKUP_EXTENSION = ".ravendb-full-dump";
static BACKUP_FILE_SUFFIXES = [
BackupUtils.LEGACY_INCREMENTAL_BACKUP_EXTENSION,
BackupUtils.LEGACY_FULL_BACKUP_EXTENSION,
Constants_js_1.CONSTANTS.Documents.PeriodicBackup.INCREMENTAL_BACKUP_EXTENSION,
Constants_js_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_INCREMENTAL_BACKUP_EXTENSION,
Constants_js_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION,
Constants_js_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION
];
static isFullBackupOrSnapshot(extension) {
return BackupUtils.isSnapshot(extension) || BackupUtils.isFullBackup(extension);
}
static isFullBackup(extension) {
return StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION, extension)
|| StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION, extension);
}
static isSnapshot(extension) {
return StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.SNAPSHOT_EXTENSION, extension)
|| StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_FULL_BACKUP_EXTENSION, extension);
}
static isIncrementalBackupFile(extension) {
return StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.INCREMENTAL_BACKUP_EXTENSION, extension)
|| StringUtil_js_1.StringUtil.equalsIgnoreCase(Constants_js_1.CONSTANTS.Documents.PeriodicBackup.ENCRYPTED_INCREMENTAL_BACKUP_EXTENSION, extension)
|| StringUtil_js_1.StringUtil.equalsIgnoreCase(BackupUtils.LEGACY_INCREMENTAL_BACKUP_EXTENSION, extension);
}
static comparator(o1, o2, mtimeProvider) {
const baseName1 = (0, node_path_1.basename)(o1, (0, node_path_1.extname)(o1));
const baseName2 = (0, node_path_1.basename)(o2, (0, node_path_1.extname)(o2));
if (baseName1 !== baseName2) {
return baseName1.localeCompare(baseName2);
}
const extension1 = (0, node_path_1.extname)(o1);
const extension2 = (0, node_path_1.extname)(o2);
if (extension1 !== extension2) {
return periodicBackupFileExtensionComparator(o1, o2);
}
const lastModified1 = mtimeProvider(o1);
const lastModified2 = mtimeProvider(o2);
return lastModified1 - lastModified2;
}
}
exports.BackupUtils = BackupUtils;
function periodicBackupFileExtensionComparator(o1, o2) {
if ((0, node_path_1.resolve)(o1) === (0, node_path_1.resolve)(o2)) {
return 0;
}
if (StringUtil_js_1.StringUtil.equalsIgnoreCase((0, node_path_1.extname)(o1), "." + Constants_js_1.CONSTANTS.Documents.PeriodicBackup.SNAPSHOT_EXTENSION)) {
return -1;
}
if (StringUtil_js_1.StringUtil.equalsIgnoreCase((0, node_path_1.extname)(o1), "." + Constants_js_1.CONSTANTS.Documents.PeriodicBackup.FULL_BACKUP_EXTENSION)) {
return -1;
}
return 1;
}
//# sourceMappingURL=BackupUtils.js.map