@neo-one/node-data-backup
Version:
NEO•ONE node data path backup and restore.
32 lines (30 loc) • 3.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fs = tslib_1.__importStar(require("fs-extra"));
const Provider_1 = require("./Provider");
class MultiProvider extends Provider_1.Provider {
constructor({ providers, environment, }) {
super();
this.providers = providers;
this.environment = environment;
}
async restore(monitor) {
for (const provider of this.providers) {
const canRestore = await provider.canRestore();
if (canRestore) {
await provider.restore(monitor);
break;
}
}
}
async backup(monitor) {
for (const provider of this.providers) {
await provider.backup(monitor);
await fs.remove(this.environment.tmpPath);
await fs.ensureDir(this.environment.tmpPath);
}
}
}
exports.MultiProvider = MultiProvider;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQStCO0FBRS9CLHlDQUFzQztBQUV0QyxNQUFhLGFBQWMsU0FBUSxtQkFBUTtJQUl6QyxZQUFtQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxHQUlaO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFnQjtRQUVuQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0MsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWdCO1FBRWxDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0NBQ0Y7QUFuQ0Qsc0NBbUNDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1kYXRhLWJhY2t1cC9zcmMvcHJvdmlkZXIvTXVsdGlQcm92aWRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbml0b3IgfSBmcm9tICdAbmVvLW9uZS9tb25pdG9yJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICcuL1Byb3ZpZGVyJztcblxuZXhwb3J0IGNsYXNzIE11bHRpUHJvdmlkZXIgZXh0ZW5kcyBQcm92aWRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJzOiByZWFkb25seSBQcm92aWRlcltdO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHByb3ZpZGVycyxcbiAgICBlbnZpcm9ubWVudCxcbiAgfToge1xuICAgIHJlYWRvbmx5IHByb3ZpZGVyczogcmVhZG9ubHkgUHJvdmlkZXJbXTtcbiAgICByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XG4gIH0pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucHJvdmlkZXJzID0gcHJvdmlkZXJzO1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXN0b3JlKG1vbml0b3I6IE1vbml0b3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1zdGF0ZW1lbnRcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICBjb25zdCBjYW5SZXN0b3JlID0gYXdhaXQgcHJvdmlkZXIuY2FuUmVzdG9yZSgpO1xuICAgICAgaWYgKGNhblJlc3RvcmUpIHtcbiAgICAgICAgYXdhaXQgcHJvdmlkZXIucmVzdG9yZShtb25pdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGJhY2t1cChtb25pdG9yOiBNb25pdG9yKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3Atc3RhdGVtZW50XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgYXdhaXQgcHJvdmlkZXIuYmFja3VwKG1vbml0b3IpO1xuICAgICAgYXdhaXQgZnMucmVtb3ZlKHRoaXMuZW52aXJvbm1lbnQudG1wUGF0aCk7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIodGhpcy5lbnZpcm9ubWVudC50bXBQYXRoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==