2022-04-28 18:43:14 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
exports = module.exports = {
|
2025-08-01 22:58:19 +02:00
|
|
|
api,
|
2025-08-01 23:20:51 +02:00
|
|
|
validateFormat,
|
2022-04-28 18:43:14 -07:00
|
|
|
};
|
|
|
|
|
|
2025-08-14 11:17:38 +05:30
|
|
|
const assert = require('node:assert'),
|
2025-08-01 22:58:19 +02:00
|
|
|
BoxError = require('./boxerror.js');
|
2025-07-24 13:19:27 +02:00
|
|
|
|
2022-04-28 18:43:14 -07:00
|
|
|
function api(format) {
|
2025-08-01 22:58:19 +02:00
|
|
|
assert.strictEqual(typeof format, 'string');
|
|
|
|
|
|
2022-04-28 18:43:14 -07:00
|
|
|
switch (format) {
|
|
|
|
|
case 'tgz': return require('./backupformat/tgz.js');
|
|
|
|
|
case 'rsync': return require('./backupformat/rsync.js');
|
|
|
|
|
}
|
2025-07-24 13:19:27 +02:00
|
|
|
|
|
|
|
|
throw new BoxError(BoxError.INTERNAL_ERROR, `Undefined format ${format}`);
|
2022-04-28 18:43:14 -07:00
|
|
|
}
|
2025-08-01 23:20:51 +02:00
|
|
|
|
2025-09-22 16:33:51 +02:00
|
|
|
function validateFormat(format) {
|
2025-08-01 23:20:51 +02:00
|
|
|
assert.strictEqual(typeof format, 'string');
|
|
|
|
|
|
|
|
|
|
if (format === 'tgz' || format == 'rsync') return null;
|
|
|
|
|
|
|
|
|
|
return new BoxError(BoxError.BAD_FIELD, 'Invalid backup format');
|
|
|
|
|
}
|