@or-sdk/contacts 3.5.3-beta.1962.0 → 3.5.3-beta.1990.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.
- package/dist/cjs/api/migrationsApi.js +28 -46
- package/dist/cjs/api/migrationsApi.js.map +1 -1
- package/dist/cjs/utils.js +64 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/api/migrationsApi.js +11 -19
- package/dist/esm/api/migrationsApi.js.map +1 -1
- package/dist/esm/utils.js +24 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/api/migrationsApi.d.ts +1 -1
- package/dist/types/api/migrationsApi.d.ts.map +1 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/migrationsApi.ts +12 -25
- package/src/utils.ts +13 -0
|
@@ -67,10 +67,11 @@ var MigrationsApi = (function (_super) {
|
|
|
67
67
|
});
|
|
68
68
|
};
|
|
69
69
|
MigrationsApi.prototype.getMigrationState = function () {
|
|
70
|
-
|
|
70
|
+
var _this = this;
|
|
71
|
+
return (0, utils_1.retry)(function () { return _this.apiCall({
|
|
71
72
|
method: 'GET',
|
|
72
73
|
route: 'migrations/v2/status',
|
|
73
|
-
});
|
|
74
|
+
}); }, 60000);
|
|
74
75
|
};
|
|
75
76
|
MigrationsApi.prototype.migrationsRun = function () {
|
|
76
77
|
return this.apiCall({
|
|
@@ -88,55 +89,36 @@ var MigrationsApi = (function (_super) {
|
|
|
88
89
|
});
|
|
89
90
|
});
|
|
90
91
|
};
|
|
91
|
-
MigrationsApi.prototype.pollMigrationUntilDone = function (timeoutMs
|
|
92
|
-
if (isRetry === void 0) { isRetry = false; }
|
|
92
|
+
MigrationsApi.prototype.pollMigrationUntilDone = function (timeoutMs) {
|
|
93
93
|
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
-
var poll
|
|
94
|
+
var poll;
|
|
95
95
|
var _this = this;
|
|
96
96
|
return __generator(this, function (_a) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
return [2, (0, utils_1.debouncePromise)(function () { return poll(timeout - 500); }, 500)];
|
|
97
|
+
poll = function (timeout) { return __awaiter(_this, void 0, void 0, function () {
|
|
98
|
+
var state;
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
if (timeout <= 0) {
|
|
103
|
+
return [2, false];
|
|
104
|
+
}
|
|
105
|
+
return [4, this.getMigrationState()];
|
|
106
|
+
case 1:
|
|
107
|
+
state = _a.sent();
|
|
108
|
+
if (state === types_contacts_api_1.MigrationState.Done) {
|
|
109
|
+
return [2, true];
|
|
110
|
+
}
|
|
111
|
+
if (state === types_contacts_api_1.MigrationState.ToDo) {
|
|
112
|
+
this.launchMigration();
|
|
115
113
|
}
|
|
116
|
-
|
|
117
|
-
}); };
|
|
118
|
-
result = false;
|
|
119
|
-
_a.label = 1;
|
|
120
|
-
case 1:
|
|
121
|
-
_a.trys.push([1, 3, , 6]);
|
|
122
|
-
return [4, poll(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT)];
|
|
123
|
-
case 2:
|
|
124
|
-
result = _a.sent();
|
|
125
|
-
return [3, 6];
|
|
126
|
-
case 3:
|
|
127
|
-
e_1 = _a.sent();
|
|
128
|
-
if (isRetry) {
|
|
129
|
-
throw e_1;
|
|
114
|
+
return [2, (0, utils_1.debouncePromise)(function () { return poll(timeout - 500); }, 500)];
|
|
130
115
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
case 5: return [3, 6];
|
|
138
|
-
case 6: return [2, result];
|
|
139
|
-
}
|
|
116
|
+
});
|
|
117
|
+
}); };
|
|
118
|
+
return [2, (0, utils_1.retry)(function () {
|
|
119
|
+
_this.launchMigration();
|
|
120
|
+
return poll(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT);
|
|
121
|
+
}, 60000)];
|
|
140
122
|
});
|
|
141
123
|
});
|
|
142
124
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAkD;AAClD,qCAAoC;AACpC,mEAA8D;AAG9D,IAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC;IAA2C,iCAAO;IAAlD;;IAwEA,CAAC;IAlEC,wCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,yCAAiB,GAAjB;QAAA,iBAKC;QAJC,OAAO,IAAA,aAAK,EAAiB,cAAM,OAAA,KAAI,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,EAHiC,CAGjC,EAAE,KAAK,CAAC,CAAC;IACb,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;IAQK,8CAAsB,GAA5B,UAA6B,SAAkB;;;;;gBACvC,IAAI,GAAG,UAAO,OAAe;;;;;gCACjC,IAAI,OAAO,IAAI,CAAC,EAAE;oCAChB,WAAO,KAAK,EAAC;iCACd;gCAEa,WAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;gCAAtC,KAAK,GAAG,SAA8B;gCAC5C,IAAI,KAAK,KAAK,mCAAc,CAAC,IAAI,EAAE;oCACjC,WAAO,IAAI,EAAC;iCACb;gCACD,IAAI,KAAK,KAAK,mCAAc,CAAC,IAAI,EAAE;oCACjC,IAAI,CAAC,eAAe,EAAE,CAAC;iCACxB;gCAED,WAAO,IAAA,uBAAe,EAAC,cAAM,OAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAnB,CAAmB,EAAE,GAAG,CAAC,EAAC;;;qBACxD,CAAC;gBAEF,WAAO,IAAA,aAAK,EAAU;wBACpB,KAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;oBAC/E,CAAC,EAAE,KAAK,CAAC,EAAC;;;KACX;IACH,oBAAC;AAAD,CAAC,AAxED,CAA2C,iBAAO,GAwEjD"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -10,11 +10,47 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
13
49
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
51
|
};
|
|
16
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.buildHttpAgents = exports.debouncePromise = exports.chunkArrByMaxSize = exports.getObjectSizeInBytes = exports.adaptListParams = void 0;
|
|
53
|
+
exports.retry = exports.buildHttpAgents = exports.debouncePromise = exports.chunkArrByMaxSize = exports.getObjectSizeInBytes = exports.adaptListParams = void 0;
|
|
18
54
|
var agentkeepalive_1 = __importDefault(require("agentkeepalive"));
|
|
19
55
|
var propertyToEscape = ['from', 'size', 'orderProperty', 'orderDirection'];
|
|
20
56
|
var adaptListParams = function (params) {
|
|
@@ -91,4 +127,31 @@ function buildHttpAgents() {
|
|
|
91
127
|
};
|
|
92
128
|
}
|
|
93
129
|
exports.buildHttpAgents = buildHttpAgents;
|
|
130
|
+
function retry(caller, retryTimeout, isRetry) {
|
|
131
|
+
if (isRetry === void 0) { isRetry = false; }
|
|
132
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
133
|
+
var result, e_1;
|
|
134
|
+
return __generator(this, function (_a) {
|
|
135
|
+
switch (_a.label) {
|
|
136
|
+
case 0:
|
|
137
|
+
_a.trys.push([0, 2, , 4]);
|
|
138
|
+
return [4, caller()];
|
|
139
|
+
case 1:
|
|
140
|
+
result = _a.sent();
|
|
141
|
+
return [3, 4];
|
|
142
|
+
case 2:
|
|
143
|
+
e_1 = _a.sent();
|
|
144
|
+
if (isRetry) {
|
|
145
|
+
throw e_1;
|
|
146
|
+
}
|
|
147
|
+
return [4, debouncePromise(function () { return caller(); }, retryTimeout)];
|
|
148
|
+
case 3:
|
|
149
|
+
result = _a.sent();
|
|
150
|
+
return [3, 4];
|
|
151
|
+
case 4: return [2, result];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
exports.retry = retry;
|
|
94
157
|
//# sourceMappingURL=utils.js.map
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ 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 { debouncePromise } from '../utils';
|
|
10
|
+
import { debouncePromise, retry } from '../utils';
|
|
11
11
|
import { BaseApi } from './baseApi';
|
|
12
12
|
import { MigrationState } from '@onereach/types-contacts-api';
|
|
13
13
|
const DEFAULT_MIGRATION_TIMEOUT = 900000;
|
|
@@ -19,10 +19,10 @@ export default class MigrationsApi extends BaseApi {
|
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
getMigrationState() {
|
|
22
|
-
return this.apiCall({
|
|
22
|
+
return retry(() => this.apiCall({
|
|
23
23
|
method: 'GET',
|
|
24
24
|
route: 'migrations/v2/status',
|
|
25
|
-
});
|
|
25
|
+
}), 60000);
|
|
26
26
|
}
|
|
27
27
|
migrationsRun() {
|
|
28
28
|
return this.apiCall({
|
|
@@ -38,9 +38,8 @@ export default class MigrationsApi extends BaseApi {
|
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
pollMigrationUntilDone(timeoutMs
|
|
41
|
+
pollMigrationUntilDone(timeoutMs) {
|
|
42
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
this.launchMigration();
|
|
44
43
|
const poll = (timeout) => __awaiter(this, void 0, void 0, function* () {
|
|
45
44
|
if (timeout <= 0) {
|
|
46
45
|
return false;
|
|
@@ -49,22 +48,15 @@ export default class MigrationsApi extends BaseApi {
|
|
|
49
48
|
if (state === MigrationState.Done) {
|
|
50
49
|
return true;
|
|
51
50
|
}
|
|
51
|
+
if (state === MigrationState.ToDo) {
|
|
52
|
+
this.launchMigration();
|
|
53
|
+
}
|
|
52
54
|
return debouncePromise(() => poll(timeout - 500), 500);
|
|
53
55
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
if (isRetry) {
|
|
60
|
-
throw e;
|
|
61
|
-
}
|
|
62
|
-
if (e.code === '504') {
|
|
63
|
-
console.log('RETRYING');
|
|
64
|
-
result = yield debouncePromise(() => this.pollMigrationUntilDone(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT, true), 60000);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return result;
|
|
56
|
+
return retry(() => {
|
|
57
|
+
this.launchMigration();
|
|
58
|
+
return poll(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT);
|
|
59
|
+
}, 60000);
|
|
68
60
|
});
|
|
69
61
|
}
|
|
70
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"migrationsApi.js","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,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,KAAK,CAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,sBAAsB;SAC9B,CAAC,EAAE,KAAK,CAAC,CAAC;IACb,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;IAQK,sBAAsB,CAAC,SAAkB;;YAC7C,MAAM,IAAI,GAAG,CAAO,OAAe,EAAoB,EAAE;gBACvD,IAAI,OAAO,IAAI,CAAC,EAAE;oBAChB,OAAO,KAAK,CAAC;iBACd;gBAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC7C,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACb;gBACD,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,EAAE;oBACjC,IAAI,CAAC,eAAe,EAAE,CAAC;iBACxB;gBAED,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC,CAAA,CAAC;YAEF,OAAO,KAAK,CAAU,GAAG,EAAE;gBACzB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;YAC/E,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;KAAA;CACF"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import Agent from 'agentkeepalive';
|
|
2
11
|
const propertyToEscape = ['from', 'size', 'orderProperty', 'orderDirection'];
|
|
3
12
|
export const adaptListParams = (params) => {
|
|
@@ -69,4 +78,19 @@ export function buildHttpAgents() {
|
|
|
69
78
|
httpsAgent,
|
|
70
79
|
};
|
|
71
80
|
}
|
|
81
|
+
export function retry(caller, retryTimeout, isRetry = false) {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
let result;
|
|
84
|
+
try {
|
|
85
|
+
result = yield caller();
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
if (isRetry) {
|
|
89
|
+
throw e;
|
|
90
|
+
}
|
|
91
|
+
result = yield debouncePromise(() => caller(), retryTimeout);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
72
96
|
//# sourceMappingURL=utils.js.map
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,6 @@ export default class MigrationsApi extends BaseApi {
|
|
|
5
5
|
getMigrationState(): Promise<MigrationState>;
|
|
6
6
|
migrationsRun(): Promise<void>;
|
|
7
7
|
launchMigration(): Promise<void>;
|
|
8
|
-
pollMigrationUntilDone(timeoutMs?: number
|
|
8
|
+
pollMigrationUntilDone(timeoutMs?: number): Promise<boolean>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=migrationsApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationsApi.d.ts","sourceRoot":"","sources":["../../../src/api/migrationsApi.ts"],"names":[],"mappings":"
|
|
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;AAI9D,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;IAahC,sBAAsB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAsBnE"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -14,5 +14,6 @@ export declare function buildHttpAgents(): {
|
|
|
14
14
|
httpAgent: Agent;
|
|
15
15
|
httpsAgent: Agent.HttpsAgent;
|
|
16
16
|
};
|
|
17
|
+
export declare function retry<T>(caller: () => Promise<T>, retryTimeout: number, isRetry?: boolean): Promise<T>;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,QAAA,MAAM,gBAAgB,8DAA+D,CAAC;AACtF,aAAK,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAG3D,eAAO,MAAM,eAAe;;;mEAoB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAAgB,MAExC,CAAC;AAEV,eAAO,MAAM,iBAAiB,yBAA0B,MAAM,UAsC7D,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GACpD,OAAO,CAAC,CAAC,CAAC,CASZ;AAED,wBAAgB,eAAe;;;EAgB9B"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,QAAA,MAAM,gBAAgB,8DAA+D,CAAC;AACtF,aAAK,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAG3D,eAAO,MAAM,eAAe;;;mEAoB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAAgB,MAExC,CAAC;AAEV,eAAO,MAAM,iBAAiB,yBAA0B,MAAM,UAsC7D,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GACpD,OAAO,CAAC,CAAC,CAAC,CASZ;AAED,wBAAgB,eAAe;;;EAgB9B;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAW1G"}
|
package/package.json
CHANGED
package/src/api/migrationsApi.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { debouncePromise } from '../utils';
|
|
1
|
+
import { debouncePromise, retry } from '../utils';
|
|
3
2
|
import { BaseApi } from './baseApi';
|
|
4
3
|
import { MigrationState } from '@onereach/types-contacts-api';
|
|
5
4
|
|
|
@@ -19,10 +18,10 @@ export default class MigrationsApi extends BaseApi {
|
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
getMigrationState(): Promise<MigrationState> {
|
|
22
|
-
return this.apiCall({
|
|
21
|
+
return retry<MigrationState>(() => this.apiCall({
|
|
23
22
|
method: 'GET',
|
|
24
23
|
route: 'migrations/v2/status',
|
|
25
|
-
});
|
|
24
|
+
}), 60000);
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
/**
|
|
@@ -53,10 +52,9 @@ export default class MigrationsApi extends BaseApi {
|
|
|
53
52
|
/**
|
|
54
53
|
* Launches migration and waits until its status turns to Done.
|
|
55
54
|
* @param timeoutMs optional, time in ms during which the poling will be kept alive; default is 15m
|
|
55
|
+
* @param isRetry
|
|
56
56
|
*/
|
|
57
|
-
async pollMigrationUntilDone(timeoutMs?: number
|
|
58
|
-
this.launchMigration();
|
|
59
|
-
|
|
57
|
+
async pollMigrationUntilDone(timeoutMs?: number): Promise<boolean> {
|
|
60
58
|
const poll = async (timeout: number): Promise<boolean> => {
|
|
61
59
|
if (timeout <= 0) {
|
|
62
60
|
return false;
|
|
@@ -66,27 +64,16 @@ export default class MigrationsApi extends BaseApi {
|
|
|
66
64
|
if (state === MigrationState.Done) {
|
|
67
65
|
return true;
|
|
68
66
|
}
|
|
67
|
+
if (state === MigrationState.ToDo) {
|
|
68
|
+
this.launchMigration();
|
|
69
|
+
}
|
|
69
70
|
|
|
70
71
|
return debouncePromise(() => poll(timeout - 500), 500);
|
|
71
72
|
};
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
if (isRetry) {
|
|
78
|
-
throw e;
|
|
79
|
-
}
|
|
80
|
-
if ((e as AxiosError).code === '504') {
|
|
81
|
-
// eslint-disable-next-line no-console
|
|
82
|
-
console.log('RETRYING');
|
|
83
|
-
result = await debouncePromise(
|
|
84
|
-
() => this.pollMigrationUntilDone(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT, true),
|
|
85
|
-
60000
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return result;
|
|
90
|
-
|
|
74
|
+
return retry<boolean>(() => {
|
|
75
|
+
this.launchMigration();
|
|
76
|
+
return poll(timeoutMs !== undefined ? timeoutMs : DEFAULT_MIGRATION_TIMEOUT);
|
|
77
|
+
}, 60000);
|
|
91
78
|
}
|
|
92
79
|
}
|
package/src/utils.ts
CHANGED
|
@@ -104,3 +104,16 @@ export function buildHttpAgents() {
|
|
|
104
104
|
httpsAgent,
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
+
|
|
108
|
+
export async function retry<T>(caller: () => Promise<T>, retryTimeout: number, isRetry = false): Promise<T> {
|
|
109
|
+
let result: T;
|
|
110
|
+
try {
|
|
111
|
+
result = await caller();
|
|
112
|
+
} catch (e: unknown) {
|
|
113
|
+
if (isRetry) {
|
|
114
|
+
throw e;
|
|
115
|
+
}
|
|
116
|
+
result = await debouncePromise(() => caller(), retryTimeout);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|