UNPKG

3.79 kBJavaScriptView Raw
1import * as fs from 'fs-extra';
2import { Provider } from './Provider';
3export class MultiProvider extends Provider {
4 constructor({ providers, environment, }) {
5 super();
6 this.providers = providers;
7 this.environment = environment;
8 }
9 async restore(monitor) {
10 // tslint:disable-next-line no-loop-statement
11 for (const provider of this.providers) {
12 const canRestore = await provider.canRestore();
13 if (canRestore) {
14 await provider.restore(monitor);
15 break;
16 }
17 }
18 }
19 async backup(monitor) {
20 // tslint:disable-next-line no-loop-statement
21 for (const provider of this.providers) {
22 await provider.backup(monitor);
23 await fs.remove(this.environment.tmpPath);
24 await fs.ensureDir(this.environment.tmpPath);
25 }
26 }
27}
28
29//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QyxNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFJekMsWUFBbUIsRUFDakIsU0FBUyxFQUNULFdBQVcsR0FJWjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZ0I7UUFDbkMsNkNBQTZDO1FBQzdDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxNQUFNLFVBQVUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxJQUFJLFVBQVUsRUFBRTtnQkFDZCxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBZ0I7UUFDbEMsNkNBQTZDO1FBQzdDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0NBQ0YiLCJmaWxlIjoibmVvLW9uZS1ub2RlLWRhdGEtYmFja3VwL3NyYy9wcm92aWRlci9NdWx0aVByb3ZpZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uaXRvciB9IGZyb20gJ0BuZW8tb25lL21vbml0b3InO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJy4vUHJvdmlkZXInO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlQcm92aWRlciBleHRlbmRzIFByb3ZpZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcnM6IFJlYWRvbmx5QXJyYXk8UHJvdmlkZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHByb3ZpZGVycyxcbiAgICBlbnZpcm9ubWVudCxcbiAgfToge1xuICAgIHJlYWRvbmx5IHByb3ZpZGVyczogUmVhZG9ubHlBcnJheTxQcm92aWRlcj47XG4gICAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuICB9KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnByb3ZpZGVycyA9IHByb3ZpZGVycztcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVzdG9yZShtb25pdG9yOiBNb25pdG9yKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3Atc3RhdGVtZW50XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgY29uc3QgY2FuUmVzdG9yZSA9IGF3YWl0IHByb3ZpZGVyLmNhblJlc3RvcmUoKTtcbiAgICAgIGlmIChjYW5SZXN0b3JlKSB7XG4gICAgICAgIGF3YWl0IHByb3ZpZGVyLnJlc3RvcmUobW9uaXRvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBiYWNrdXAobW9uaXRvcjogTW9uaXRvcik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1sb29wLXN0YXRlbWVudFxuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgIGF3YWl0IHByb3ZpZGVyLmJhY2t1cChtb25pdG9yKTtcbiAgICAgIGF3YWl0IGZzLnJlbW92ZSh0aGlzLmVudmlyb25tZW50LnRtcFBhdGgpO1xuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKHRoaXMuZW52aXJvbm1lbnQudG1wUGF0aCk7XG4gICAgfVxuICB9XG59XG4iXX0=