@or-sdk/contacts 3.1.1-beta.1619.0 → 3.1.1-beta.1627.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,7 +51,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
51
51
  }
52
52
  };
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
- var lodash_1 = require("lodash");
55
54
  var baseApi_1 = require("./baseApi");
56
55
  var types_contacts_api_1 = require("@onereach/types-contacts-api");
57
56
  var MigrationsApi = (function (_super) {
@@ -77,54 +76,48 @@ var MigrationsApi = (function (_super) {
77
76
  route: 'migrations/run',
78
77
  });
79
78
  };
80
- MigrationsApi.prototype.pollMigrationDone = function (timeoutMs, timeoutCb) {
79
+ MigrationsApi.prototype.launchMigration = function () {
81
80
  return __awaiter(this, void 0, void 0, function () {
82
- var migrationTimeout, poll;
81
+ return __generator(this, function (_a) {
82
+ return [2, this.apiCall({
83
+ method: 'GET',
84
+ route: 'migrations/launch',
85
+ })];
86
+ });
87
+ });
88
+ };
89
+ MigrationsApi.prototype.pollMigrationUntilDone = function (timeoutMs) {
90
+ return __awaiter(this, void 0, void 0, function () {
91
+ var poll;
83
92
  var _this = this;
84
93
  return __generator(this, function (_a) {
85
94
  switch (_a.label) {
86
- case 0:
87
- this.apiCall({
88
- method: 'GET',
89
- route: 'migrations/launch',
90
- });
91
- migrationTimeout = (function () {
92
- var defaultTimeout = 1000 * 60 * 30;
93
- if (timeoutMs !== undefined && timeoutMs > defaultTimeout) {
94
- throw new Error('Migration timeout cont not be greater of 30m');
95
- }
96
- return timeoutMs !== undefined ? timeoutMs : 1000 * 60 * 30;
97
- })();
98
- poll = function (passedTime) { return __awaiter(_this, void 0, void 0, function () {
99
- var start, state, end_1, debouncedPoll;
100
- var _this = this;
95
+ case 0: return [4, this.launchMigration()];
96
+ case 1:
97
+ _a.sent();
98
+ poll = function (timeout) { return __awaiter(_this, void 0, void 0, function () {
99
+ var start, state, end;
101
100
  return __generator(this, function (_a) {
102
101
  switch (_a.label) {
103
102
  case 0:
104
- if ((passedTime || 0) > migrationTimeout) {
105
- timeoutCb && timeoutCb();
103
+ start = performance.now();
104
+ if (timeout < 0) {
106
105
  return [2, false];
107
106
  }
108
- start = performance.now();
109
107
  return [4, this.getMigrationState()];
110
108
  case 1:
111
109
  state = _a.sent();
112
110
  if (state === types_contacts_api_1.MigrationState.Done) {
113
111
  return [2, true];
114
112
  }
115
- if (!(state === types_contacts_api_1.MigrationState.InProgress || state === types_contacts_api_1.MigrationState.ToDo)) return [3, 3];
116
- end_1 = performance.now();
117
- debouncedPoll = (0, lodash_1.debounce)(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
118
- return [2, poll(passedTime !== undefined ? passedTime : 0 + end_1 - start)];
119
- }); }); }, 1000);
120
- return [4, debouncedPoll()];
121
- case 2: return [2, !!(_a.sent())];
122
- case 3: return [2, true];
113
+ end = performance.now();
114
+ return [4, poll(timeout - end + start)];
115
+ case 2: return [2, _a.sent()];
123
116
  }
124
117
  });
125
118
  }); };
126
- return [4, poll()];
127
- case 1: return [2, _a.sent()];
119
+ return [4, poll(timeoutMs !== undefined ? timeoutMs : 15 * 60 * 1000)];
120
+ case 2: return [2, _a.sent()];
128
121
  }
129
122
  });
130
123
  });
@@ -1 +1 @@
1
- {"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkC;AAClC,qCAAoC;AACpC,mEAA8D;AAC9D;IAA2C,iCAAO;IAAlD;;IAmEA,CAAC;IA7DC,wCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,yCAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,CAAC;IACL,CAAC;IAMD,qCAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAEK,yCAAiB,GAAvB,UAAwB,SAAkB,EAAE,SAAsB;;;;;;;wBAChE,IAAI,CAAC,OAAO,CAAC;4BACX,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,mBAAmB;yBAC3B,CAAC,CAAC;wBAEG,gBAAgB,GAAG,CAAC;4BACxB,IAAM,cAAc,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;4BACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,cAAc,EAAE;gCACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;6BACjE;4BACD,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC9D,CAAC,CAAC,EAAE,CAAC;wBAEC,IAAI,GAAG,UAAO,UAAmB;;;;;;wCACrC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,gBAAgB,EAAE;4CACxC,SAAS,IAAI,SAAS,EAAE,CAAC;4CACzB,WAAO,KAAK,EAAC;yCACd;wCAEK,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wCAClB,WAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wCAAtC,KAAK,GAAG,SAA8B;wCAC5C,IAAI,KAAK,KAAK,mCAAc,CAAC,IAAI,EAAE;4CACjC,WAAO,IAAI,EAAC;yCACb;6CAEG,CAAA,KAAK,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,KAAK,mCAAc,CAAC,IAAI,CAAA,EAApE,cAAoE;wCAChE,QAAM,WAAW,CAAC,GAAG,EAAE,CAAC;wCACxB,aAAa,GAAG,IAAA,iBAAQ,EAAC;4CAAY,WAAA,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAG,GAAG,KAAK,CAAC,EAAA;iDAAA,EAAE,IAAI,CAAC,CAAC;wCACtG,WAAM,aAAa,EAAE,EAAA;4CAA/B,WAAO,CAAC,CAAC,CAAC,SAAqB,CAAC,EAAC;4CAEnC,WAAO,IAAI,EAAC;;;6BACb,CAAC;wBAEK,WAAM,IAAI,EAAE,EAAA;4BAAnB,WAAO,SAAY,EAAC;;;;KACrB;IACH,oBAAC;AAAD,CAAC,AAnED,CAA2C,iBAAO,GAmEjD"}
1
+ {"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AACpC,mEAA8D;AAE9D;IAA2C,iCAAO;IAAlD;;IAsEA,CAAC;IAhEC,wCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,yCAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,CAAC;IACL,CAAC;IAMD,qCAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAQK,uCAAe,GAArB;;;gBACE,WAAO,IAAI,CAAC,OAAO,CAAC;wBAClB,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,mBAAmB;qBAC3B,CAAC,EAAC;;;KACJ;IAOK,8CAAsB,GAA5B,UAA6B,SAAkB;;;;;;4BAC7C,WAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;wBAA5B,SAA4B,CAAC;wBAEvB,IAAI,GAAG,UAAO,OAAe;;;;;wCAC3B,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wCAChC,IAAI,OAAO,GAAG,CAAC,EAAE;4CACf,WAAO,KAAK,EAAC;yCACd;wCAEa,WAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wCAAtC,KAAK,GAAG,SAA8B;wCAE5C,IAAI,KAAK,KAAK,mCAAc,CAAC,IAAI,EAAE;4CACjC,WAAO,IAAI,EAAC;yCACb;wCAEK,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wCACvB,WAAM,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,EAAA;4CAAxC,WAAO,SAAiC,EAAC;;;6BAC1C,CAAC;wBAEK,WAAM,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAA;4BAAvE,WAAO,SAAgE,EAAC;;;;KACzE;IACH,oBAAC;AAAD,CAAC,AAtED,CAA2C,iBAAO,GAsEjD"}
@@ -7,7 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { debounce } from 'lodash';
11
10
  import { BaseApi } from './baseApi';
12
11
  import { MigrationState } from '@onereach/types-contacts-api';
13
12
  export default class MigrationsApi extends BaseApi {
@@ -29,37 +28,30 @@ export default class MigrationsApi extends BaseApi {
29
28
  route: 'migrations/run',
30
29
  });
31
30
  }
32
- pollMigrationDone(timeoutMs, timeoutCb) {
31
+ launchMigration() {
33
32
  return __awaiter(this, void 0, void 0, function* () {
34
- this.apiCall({
33
+ return this.apiCall({
35
34
  method: 'GET',
36
35
  route: 'migrations/launch',
37
36
  });
38
- const migrationTimeout = (() => {
39
- const defaultTimeout = 1000 * 60 * 30;
40
- if (timeoutMs !== undefined && timeoutMs > defaultTimeout) {
41
- throw new Error('Migration timeout cont not be greater of 30m');
42
- }
43
- return timeoutMs !== undefined ? timeoutMs : 1000 * 60 * 30;
44
- })();
45
- const poll = (passedTime) => __awaiter(this, void 0, void 0, function* () {
46
- if ((passedTime || 0) > migrationTimeout) {
47
- timeoutCb && timeoutCb();
37
+ });
38
+ }
39
+ pollMigrationUntilDone(timeoutMs) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ yield this.launchMigration();
42
+ const poll = (timeout) => __awaiter(this, void 0, void 0, function* () {
43
+ const start = performance.now();
44
+ if (timeout < 0) {
48
45
  return false;
49
46
  }
50
- const start = performance.now();
51
47
  const state = yield this.getMigrationState();
52
48
  if (state === MigrationState.Done) {
53
49
  return true;
54
50
  }
55
- if (state === MigrationState.InProgress || state === MigrationState.ToDo) {
56
- const end = performance.now();
57
- const debouncedPoll = debounce(() => __awaiter(this, void 0, void 0, function* () { return poll(passedTime !== undefined ? passedTime : 0 + end - start); }), 1000);
58
- return !!(yield debouncedPoll());
59
- }
60
- return true;
51
+ const end = performance.now();
52
+ return yield poll(timeout - end + start);
61
53
  });
62
- return yield poll();
54
+ return yield poll(timeoutMs !== undefined ? timeoutMs : 15 * 60 * 1000);
63
55
  });
64
56
  }
65
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAMhD,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,CAAC;IACL,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAEK,iBAAiB,CAAC,SAAkB,EAAE,SAAsB;;YAChE,IAAI,CAAC,OAAO,CAAC;gBACX,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,mBAAmB;aAC3B,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;gBAC7B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;gBACtC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,cAAc,EAAE;oBACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;iBACjE;gBACD,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9D,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,IAAI,GAAG,CAAO,UAAmB,EAAoB,EAAE;gBAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,gBAAgB,EAAE;oBACxC,SAAS,IAAI,SAAS,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC;iBACd;gBAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC7C,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACb;gBAED,IAAI,KAAK,KAAK,cAAc,CAAC,UAAU,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,EAAE;oBACxE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBAC9B,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAS,EAAE,gDAAC,OAAA,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAA,GAAA,EAAE,IAAI,CAAC,CAAC;oBAChH,OAAO,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;iBAClC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAA,CAAC;YAEF,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAMhD,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,CAAC;IACL,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAQK,eAAe;;YACnB,OAAO,IAAI,CAAC,OAAO,CAAC;gBAClB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,mBAAmB;aAC3B,CAAC,CAAC;QACL,CAAC;KAAA;IAOK,sBAAsB,CAAC,SAAkB;;YAC7C,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE7B,MAAM,IAAI,GAAG,CAAO,OAAe,EAAoB,EAAE;gBACvD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,OAAO,GAAG,CAAC,EAAE;oBACf,OAAO,KAAK,CAAC;iBACd;gBAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAE7C,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACb;gBAED,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC9B,OAAO,MAAM,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;YAC3C,CAAC,CAAA,CAAC;YAEF,OAAO,MAAM,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1E,CAAC;KAAA;CACF"}
@@ -4,6 +4,7 @@ export default class MigrationsApi extends BaseApi {
4
4
  migrationsStatus(): Promise<boolean>;
5
5
  getMigrationState(): Promise<MigrationState>;
6
6
  migrationsRun(): Promise<void>;
7
- pollMigrationDone(timeoutMs?: number, timeoutCb?: () => void): Promise<boolean>;
7
+ launchMigration(): Promise<void>;
8
+ pollMigrationUntilDone(timeoutMs?: number): Promise<boolean>;
8
9
  }
9
10
  //# sourceMappingURL=migrationsApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrationsApi.d.ts","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAMhD,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOpC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAW5C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAoCtF"}
1
+ {"version":3,"file":"migrationsApi.d.ts","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAMhD,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOpC,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAW5C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAqBnE"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.1.1-beta.1619.0",
2
+ "version": "3.1.1-beta.1627.0",
3
3
  "name": "@or-sdk/contacts",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
@@ -1,11 +1,11 @@
1
- import { debounce } from 'lodash';
2
1
  import { BaseApi } from './baseApi';
3
2
  import { MigrationState } from '@onereach/types-contacts-api';
3
+
4
4
  export default class MigrationsApi extends BaseApi {
5
5
  /**
6
6
  * Migrations status.
7
- * @deprecated
8
7
  * @description Returns true if there are pending migrations
8
+ * @deprecated use getMigrationState instead
9
9
  */
10
10
  migrationsStatus(): Promise<boolean> {
11
11
  return this.apiCall({
@@ -23,7 +23,7 @@ export default class MigrationsApi extends BaseApi {
23
23
 
24
24
  /**
25
25
  * @description Run all pending migrations
26
- * @deprecated
26
+ * @deprecated use launchMigration instead
27
27
  */
28
28
  migrationsRun(): Promise<void> {
29
29
  return this.apiCall({
@@ -32,40 +32,43 @@ export default class MigrationsApi extends BaseApi {
32
32
  });
33
33
  }
34
34
 
35
- async pollMigrationDone(timeoutMs?: number, timeoutCb?: () => void): Promise<boolean> {
36
- this.apiCall({
35
+ /**
36
+ * Launches migration without waiting for its completion.
37
+ * Migration completion might be checked with the getMigrationState method.
38
+ * Also pollMigrationUntilDone might be used for waiting until the migration state
39
+ * is turned to Done.
40
+ */
41
+ async launchMigration(): Promise<void> {
42
+ return this.apiCall({
37
43
  method: 'GET',
38
44
  route: 'migrations/launch',
39
45
  });
46
+ }
40
47
 
41
- const migrationTimeout = (() => {
42
- const defaultTimeout = 1000 * 60 * 30;
43
- if (timeoutMs !== undefined && timeoutMs > defaultTimeout) {
44
- throw new Error('Migration timeout cont not be greater of 30m');
45
- }
46
- return timeoutMs !== undefined ? timeoutMs : 1000 * 60 * 30;
47
- })();
48
48
 
49
- const poll = async (passedTime?: number): Promise<boolean> => {
50
- if ((passedTime || 0) > migrationTimeout) {
51
- timeoutCb && timeoutCb();
49
+ /**
50
+ * Launches migration and waits until its status turns to Done.
51
+ * @param timeoutMs optional, time in ms during which the poling will be kept alive; default is 15m
52
+ */
53
+ async pollMigrationUntilDone(timeoutMs?: number): Promise<boolean> {
54
+ await this.launchMigration();
55
+
56
+ const poll = async (timeout: number): Promise<boolean> => {
57
+ const start = performance.now();
58
+ if (timeout < 0) {
52
59
  return false;
53
60
  }
54
61
 
55
- const start = performance.now();
56
62
  const state = await this.getMigrationState();
63
+
57
64
  if (state === MigrationState.Done) {
58
65
  return true;
59
66
  }
60
67
 
61
- if (state === MigrationState.InProgress || state === MigrationState.ToDo) {
62
- const end = performance.now();
63
- const debouncedPoll = debounce(async () => poll(passedTime !== undefined ? passedTime : 0 + end - start), 1000);
64
- return !!(await debouncedPoll());
65
- }
66
- return true;
68
+ const end = performance.now();
69
+ return await poll(timeout - end + start);
67
70
  };
68
71
 
69
- return await poll();
72
+ return await poll(timeoutMs !== undefined ? timeoutMs : 15 * 60 * 1000);
70
73
  }
71
74
  }