1 | import * as fs from 'fs-extra';
|
2 | import { Provider } from './Provider';
|
3 | export 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=
|