38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.setupBackups = setupBackups;
|
|
const Backups_1 = require("./Backups");
|
|
/**
|
|
* Set up backup and restore exports for the service.
|
|
*
|
|
* Returns `{ createBackup, restoreInit }` which should be exported and wired into
|
|
* the service's init and backup entry points.
|
|
*
|
|
* @param options - Either an array of volume IDs or an async factory returning a Backups instance
|
|
* @returns An object with `createBackup` (the backup export) and `restoreInit` (an InitScript for restore)
|
|
*/
|
|
function setupBackups(options) {
|
|
let backupsFactory;
|
|
if (options instanceof Function) {
|
|
backupsFactory = options;
|
|
}
|
|
else {
|
|
backupsFactory = async () => Backups_1.Backups.ofVolumes(...options);
|
|
}
|
|
const answer = {
|
|
get createBackup() {
|
|
return (async (options) => {
|
|
return (await backupsFactory(options)).createBackup(options.effects);
|
|
});
|
|
},
|
|
get restoreInit() {
|
|
return {
|
|
init: async (effects, kind) => {
|
|
return (await backupsFactory({ effects })).init(effects, kind);
|
|
},
|
|
};
|
|
},
|
|
};
|
|
return answer;
|
|
}
|
|
//# sourceMappingURL=setupBackups.js.map
|