@commercetools/ts-client 1.2.1 → 2.0.1
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/CHANGELOG.md +12 -0
- package/README.md +0 -1
- package/dist/commercetools-ts-client.browser.cjs.js +116 -73
- package/dist/commercetools-ts-client.browser.esm.js +116 -73
- package/dist/commercetools-ts-client.cjs.dev.js +116 -73
- package/dist/commercetools-ts-client.cjs.prod.js +116 -73
- package/dist/commercetools-ts-client.esm.js +116 -73
- package/dist/declarations/src/client/builder.d.ts +9 -4
- package/dist/declarations/src/client/builder.d.ts.map +1 -0
- package/dist/declarations/src/client/client.d.ts +1 -0
- package/dist/declarations/src/client/client.d.ts.map +1 -0
- package/dist/declarations/src/client/index.d.ts +1 -0
- package/dist/declarations/src/client/index.d.ts.map +1 -0
- package/dist/declarations/src/index.d.ts +1 -0
- package/dist/declarations/src/index.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/anonymous-session-flow.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/anonymous-session-flow.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/existing-token-flow.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/existing-token-flow.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/index.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/index.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/password-flow.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/password-flow.d.ts.map +1 -0
- package/dist/declarations/src/middleware/auth-middleware/refresh-token-flow.d.ts +1 -0
- package/dist/declarations/src/middleware/auth-middleware/refresh-token-flow.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-concurrent-modification-middleware.d.ts +4 -2
- package/dist/declarations/src/middleware/create-concurrent-modification-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-correlation-id-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-correlation-id-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-error-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-error-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-http-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-http-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-logger-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-logger-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-queue-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-queue-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/create-user-agent-middleware.d.ts +1 -0
- package/dist/declarations/src/middleware/create-user-agent-middleware.d.ts.map +1 -0
- package/dist/declarations/src/middleware/index.d.ts +1 -0
- package/dist/declarations/src/middleware/index.d.ts.map +1 -0
- package/dist/declarations/src/types/types.d.ts +31 -13
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @commercetools/ts-client
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#767](https://github.com/commercetools/commercetools-sdk-typescript/pull/767) [`d82a9e0`](https://github.com/commercetools/commercetools-sdk-typescript/commit/d82a9e0e6666e076183172a9229ffcda8e28905a) Thanks [@ajimae](https://github.com/ajimae)! - Fix issues with request state not being reset back to default on error when fetching token.
|
|
8
|
+
|
|
9
|
+
## 2.0.0
|
|
10
|
+
|
|
11
|
+
### Major Changes
|
|
12
|
+
|
|
13
|
+
- [#708](https://github.com/commercetools/commercetools-sdk-typescript/pull/708) [`e7e5ac7`](https://github.com/commercetools/commercetools-sdk-typescript/commit/e7e5ac73de07a8ce141ec0bc2b2abf492462ec73) Thanks [@lojzatran](https://github.com/lojzatran)! - Make ts-sdk-v3 consistent with v2
|
|
14
|
+
|
|
3
15
|
## 1.2.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -78,7 +78,6 @@ const client: Client = new ClientBuilder()
|
|
|
78
78
|
.withHttpMiddleware(httpMiddlewareOptions)
|
|
79
79
|
.withRetryMiddleware(retryOptions)
|
|
80
80
|
.withMiddleware(middleware({})) // <<<------------------- add the custom middleware here
|
|
81
|
-
.withErrorMiddleware({})
|
|
82
81
|
.build()
|
|
83
82
|
|
|
84
83
|
const apiRoot = createApiBuilderFromCtpClient(client)
|
|
@@ -121,10 +121,11 @@ function createError({
|
|
|
121
121
|
return new HttpError(statusCode, errorMessage, rest);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
function
|
|
125
|
-
return
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
function hasResponseRetryCode(retryCodes, response) {
|
|
125
|
+
return (
|
|
126
|
+
// retryCodes.includes(response?.error?.message) ||
|
|
127
|
+
[503, ...retryCodes].includes(response?.status || response?.statusCode)
|
|
128
|
+
);
|
|
128
129
|
}
|
|
129
130
|
async function executeHttpClientRequest(fetcher, config) {
|
|
130
131
|
async function sendRequest() {
|
|
@@ -151,14 +152,17 @@ async function executor(request) {
|
|
|
151
152
|
const data = await executeHttpClientRequest(async options => {
|
|
152
153
|
const {
|
|
153
154
|
enableRetry,
|
|
154
|
-
retryConfig
|
|
155
|
+
retryConfig,
|
|
156
|
+
abortController
|
|
155
157
|
} = rest;
|
|
156
158
|
const {
|
|
157
159
|
retryCodes = [],
|
|
158
160
|
maxDelay = Infinity,
|
|
159
161
|
maxRetries = 3,
|
|
160
162
|
backoff = true,
|
|
161
|
-
retryDelay = 200
|
|
163
|
+
retryDelay = 200,
|
|
164
|
+
// If set to true reinitialize the abort controller when the timeout is reached and apply the retry config
|
|
165
|
+
retryOnAbort = true
|
|
162
166
|
} = retryConfig || {};
|
|
163
167
|
let result,
|
|
164
168
|
data,
|
|
@@ -184,15 +188,41 @@ async function executor(request) {
|
|
|
184
188
|
});
|
|
185
189
|
}
|
|
186
190
|
async function executeWithRetry() {
|
|
191
|
+
const executeWithTryCatch = async (retryCodes, retryWhenAborted) => {
|
|
192
|
+
let _response = {};
|
|
193
|
+
try {
|
|
194
|
+
_response = await execute();
|
|
195
|
+
if (_response.status > 299 && hasResponseRetryCode(retryCodes, _response)) return {
|
|
196
|
+
_response,
|
|
197
|
+
shouldRetry: true
|
|
198
|
+
};
|
|
199
|
+
} catch (e) {
|
|
200
|
+
if (e.name.includes('AbortError') && retryWhenAborted) {
|
|
201
|
+
return {
|
|
202
|
+
_response: e,
|
|
203
|
+
shouldRetry: true
|
|
204
|
+
};
|
|
205
|
+
} else {
|
|
206
|
+
throw e;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
_response,
|
|
211
|
+
shouldRetry: false
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
const retryWhenAborted = retryOnAbort || !abortController || !abortController.signal;
|
|
187
215
|
// first attempt
|
|
188
|
-
let
|
|
189
|
-
|
|
190
|
-
|
|
216
|
+
let {
|
|
217
|
+
_response,
|
|
218
|
+
shouldRetry
|
|
219
|
+
} = await executeWithTryCatch(retryCodes, retryWhenAborted);
|
|
191
220
|
// retry attempts
|
|
192
|
-
while (enableRetry && retryCount < maxRetries) {
|
|
221
|
+
while (enableRetry && shouldRetry && retryCount < maxRetries) {
|
|
193
222
|
retryCount++;
|
|
194
|
-
|
|
195
|
-
|
|
223
|
+
const execution = await executeWithTryCatch(retryCodes, retryWhenAborted);
|
|
224
|
+
_response = execution._response;
|
|
225
|
+
shouldRetry = execution.shouldRetry;
|
|
196
226
|
|
|
197
227
|
// delay next execution
|
|
198
228
|
const timer = calculateRetryDelay({
|
|
@@ -432,7 +462,6 @@ function createUserAgent(options) {
|
|
|
432
462
|
function validateHttpOptions(options) {
|
|
433
463
|
if (!options.host) throw new Error('Request `host` or `url` is missing or invalid, please pass in a valid host e.g `host: http://a-valid-host-url`');
|
|
434
464
|
if (!options.httpClient && typeof options.httpClient !== 'function') throw new Error('An `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.');
|
|
435
|
-
if (options.timeout && !options.getAbortController) throw new Error('`AbortController` is not available. Please pass in `getAbortController` as an option or have AbortController globally available when using timeout.');
|
|
436
465
|
}
|
|
437
466
|
|
|
438
467
|
/**
|
|
@@ -638,7 +667,10 @@ async function executeRequest$1(options) {
|
|
|
638
667
|
* and there's either no token or the token is expired
|
|
639
668
|
*/
|
|
640
669
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
641
|
-
if (!userOption)
|
|
670
|
+
if (!userOption) {
|
|
671
|
+
requestState.set(false);
|
|
672
|
+
throw new Error('Missing required options.');
|
|
673
|
+
}
|
|
642
674
|
const opt = {
|
|
643
675
|
...buildRequestForRefreshTokenFlow({
|
|
644
676
|
...userOption,
|
|
@@ -711,8 +743,10 @@ async function executeRequest$1(options) {
|
|
|
711
743
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
712
744
|
/**
|
|
713
745
|
* reject the error immediately
|
|
714
|
-
* and free up the middleware chain
|
|
746
|
+
* and free up the middleware chain and
|
|
747
|
+
* release the requestState by setting it to false
|
|
715
748
|
*/
|
|
749
|
+
requestState.set(false);
|
|
716
750
|
request.reject({
|
|
717
751
|
...request,
|
|
718
752
|
headers: {
|
|
@@ -727,6 +761,10 @@ async function executeRequest$1(options) {
|
|
|
727
761
|
}
|
|
728
762
|
});
|
|
729
763
|
} catch (error) {
|
|
764
|
+
/**
|
|
765
|
+
* on error release the state by setting it to false
|
|
766
|
+
*/
|
|
767
|
+
requestState.set(false);
|
|
730
768
|
return {
|
|
731
769
|
...request,
|
|
732
770
|
headers: {
|
|
@@ -914,7 +952,7 @@ function createAuthMiddlewareForRefreshTokenFlow$1(options) {
|
|
|
914
952
|
};
|
|
915
953
|
}
|
|
916
954
|
|
|
917
|
-
function createConcurrentModificationMiddleware$1() {
|
|
955
|
+
function createConcurrentModificationMiddleware$1(modifierFunction) {
|
|
918
956
|
return next => {
|
|
919
957
|
return async request => {
|
|
920
958
|
const response = await next(request);
|
|
@@ -928,13 +966,17 @@ function createConcurrentModificationMiddleware$1() {
|
|
|
928
966
|
|
|
929
967
|
// update the resource version here
|
|
930
968
|
if (version) {
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
969
|
+
if (modifierFunction) {
|
|
970
|
+
request.body = await modifierFunction(version, request, response);
|
|
971
|
+
} else {
|
|
972
|
+
request.body = typeof request.body == 'string' ? {
|
|
973
|
+
...JSON.parse(request.body),
|
|
974
|
+
version
|
|
975
|
+
} : {
|
|
976
|
+
...request.body,
|
|
977
|
+
version
|
|
978
|
+
};
|
|
979
|
+
}
|
|
938
980
|
return next(request);
|
|
939
981
|
}
|
|
940
982
|
}
|
|
@@ -956,7 +998,7 @@ function createCorrelationIdMiddleware$1(options) {
|
|
|
956
998
|
};
|
|
957
999
|
}
|
|
958
1000
|
|
|
959
|
-
function createErrorMiddleware
|
|
1001
|
+
function createErrorMiddleware(options) {
|
|
960
1002
|
return next => async request => {
|
|
961
1003
|
const response = await next(request);
|
|
962
1004
|
if (response.error) {
|
|
@@ -988,7 +1030,8 @@ async function executeRequest({
|
|
|
988
1030
|
request,
|
|
989
1031
|
abortController,
|
|
990
1032
|
maskSensitiveHeaderData,
|
|
991
|
-
includeRequestInErrorResponse
|
|
1033
|
+
includeRequestInErrorResponse,
|
|
1034
|
+
includeResponseHeaders
|
|
992
1035
|
} = clientOptions;
|
|
993
1036
|
try {
|
|
994
1037
|
if (timeout) timer = setTimeout(() => {
|
|
@@ -1003,6 +1046,9 @@ async function executeRequest({
|
|
|
1003
1046
|
body: clientOptions.body
|
|
1004
1047
|
} : {})
|
|
1005
1048
|
});
|
|
1049
|
+
if (!includeResponseHeaders) {
|
|
1050
|
+
response.headers = null;
|
|
1051
|
+
}
|
|
1006
1052
|
if (response.statusCode >= 200 && response.statusCode < 300) {
|
|
1007
1053
|
if (clientOptions.method == 'HEAD') {
|
|
1008
1054
|
return {
|
|
@@ -1046,7 +1092,7 @@ async function executeRequest({
|
|
|
1046
1092
|
};
|
|
1047
1093
|
} catch (e) {
|
|
1048
1094
|
// We know that this is a network error
|
|
1049
|
-
const headers = getHeaders(e.response?.headers);
|
|
1095
|
+
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
|
|
1050
1096
|
const statusCode = e.response?.status || e.response?.data0 || 0;
|
|
1051
1097
|
const message = e.response?.data?.message;
|
|
1052
1098
|
const error = createError({
|
|
@@ -1083,7 +1129,8 @@ function createHttpMiddleware$1(options) {
|
|
|
1083
1129
|
retryConfig,
|
|
1084
1130
|
getAbortController,
|
|
1085
1131
|
includeOriginalRequest,
|
|
1086
|
-
includeRequestInErrorResponse,
|
|
1132
|
+
includeRequestInErrorResponse = true,
|
|
1133
|
+
includeResponseHeaders = true,
|
|
1087
1134
|
maskSensitiveHeaderData,
|
|
1088
1135
|
httpClientOptions
|
|
1089
1136
|
} = options;
|
|
@@ -1119,6 +1166,7 @@ function createHttpMiddleware$1(options) {
|
|
|
1119
1166
|
headers: requestHeader,
|
|
1120
1167
|
includeRequestInErrorResponse,
|
|
1121
1168
|
maskSensitiveHeaderData,
|
|
1169
|
+
includeResponseHeaders,
|
|
1122
1170
|
...httpClientOptions
|
|
1123
1171
|
};
|
|
1124
1172
|
if (credentialsMode) {
|
|
@@ -1152,43 +1200,17 @@ function createHttpMiddleware$1(options) {
|
|
|
1152
1200
|
};
|
|
1153
1201
|
}
|
|
1154
1202
|
|
|
1155
|
-
// error, info, success
|
|
1156
1203
|
function createLoggerMiddleware$1(options) {
|
|
1157
1204
|
return next => {
|
|
1158
1205
|
return async request => {
|
|
1159
1206
|
let response = await next(request);
|
|
1160
1207
|
const originalResponse = Object.assign({}, response);
|
|
1161
1208
|
const {
|
|
1162
|
-
loggerFn = console.log
|
|
1163
|
-
// logLevel = 'ERROR',
|
|
1164
|
-
maskSensitiveHeaderData = true,
|
|
1165
|
-
includeOriginalRequest = true,
|
|
1166
|
-
includeResponseHeaders = true
|
|
1167
|
-
// includeRequestInErrorResponse
|
|
1209
|
+
loggerFn = console.log
|
|
1168
1210
|
} = options || {};
|
|
1169
|
-
if (includeOriginalRequest && maskSensitiveHeaderData) {
|
|
1170
|
-
maskAuthData(response.request);
|
|
1171
|
-
}
|
|
1172
|
-
if (!includeOriginalRequest) {
|
|
1173
|
-
const {
|
|
1174
|
-
request,
|
|
1175
|
-
...rest
|
|
1176
|
-
} = response;
|
|
1177
|
-
response = rest;
|
|
1178
|
-
}
|
|
1179
|
-
if (!includeResponseHeaders) {
|
|
1180
|
-
const {
|
|
1181
|
-
headers,
|
|
1182
|
-
...rest
|
|
1183
|
-
} = response;
|
|
1184
|
-
response = rest;
|
|
1185
|
-
}
|
|
1186
1211
|
if (loggerFn && typeof loggerFn == 'function') {
|
|
1187
1212
|
loggerFn(response);
|
|
1188
|
-
// return originalResponse
|
|
1189
1213
|
}
|
|
1190
|
-
|
|
1191
|
-
// console.log({ Response: response })
|
|
1192
1214
|
return originalResponse;
|
|
1193
1215
|
};
|
|
1194
1216
|
};
|
|
@@ -1240,7 +1262,7 @@ function createQueueMiddleware$1({
|
|
|
1240
1262
|
|
|
1241
1263
|
var packageJson = {
|
|
1242
1264
|
name: "@commercetools/ts-client",
|
|
1243
|
-
version: "
|
|
1265
|
+
version: "2.0.1",
|
|
1244
1266
|
engines: {
|
|
1245
1267
|
node: ">=14"
|
|
1246
1268
|
},
|
|
@@ -1276,7 +1298,7 @@ var packageJson = {
|
|
|
1276
1298
|
"abort-controller": "3.0.0",
|
|
1277
1299
|
buffer: "^6.0.3",
|
|
1278
1300
|
"node-fetch": "^2.6.1",
|
|
1279
|
-
uuid: "
|
|
1301
|
+
uuid: "10.0.0"
|
|
1280
1302
|
},
|
|
1281
1303
|
files: [
|
|
1282
1304
|
"dist",
|
|
@@ -1299,7 +1321,8 @@ var packageJson = {
|
|
|
1299
1321
|
scripts: {
|
|
1300
1322
|
organize_imports: "find src -type f -name '*.ts' | xargs organize-imports-cli",
|
|
1301
1323
|
postbuild: "yarn organize_imports",
|
|
1302
|
-
post_process_generate: "yarn organize_imports"
|
|
1324
|
+
post_process_generate: "yarn organize_imports",
|
|
1325
|
+
docs: "typedoc --out docs"
|
|
1303
1326
|
}
|
|
1304
1327
|
};
|
|
1305
1328
|
|
|
@@ -1307,7 +1330,7 @@ function createUserAgentMiddleware$1(options) {
|
|
|
1307
1330
|
return next => async request => {
|
|
1308
1331
|
const userAgent = createUserAgent({
|
|
1309
1332
|
...options,
|
|
1310
|
-
name:
|
|
1333
|
+
name: `${options.name ? options.name + '/' : ''}commercetools-sdk-javascript-v3/${packageJson.version}`
|
|
1311
1334
|
});
|
|
1312
1335
|
const requestWithUserAgent = {
|
|
1313
1336
|
...request,
|
|
@@ -1329,7 +1352,7 @@ var middleware = /*#__PURE__*/Object.freeze({
|
|
|
1329
1352
|
createAuthMiddlewareForRefreshTokenFlow: createAuthMiddlewareForRefreshTokenFlow$1,
|
|
1330
1353
|
createConcurrentModificationMiddleware: createConcurrentModificationMiddleware$1,
|
|
1331
1354
|
createCorrelationIdMiddleware: createCorrelationIdMiddleware$1,
|
|
1332
|
-
createErrorMiddleware: createErrorMiddleware
|
|
1355
|
+
createErrorMiddleware: createErrorMiddleware,
|
|
1333
1356
|
createHttpMiddleware: createHttpMiddleware$1,
|
|
1334
1357
|
createLoggerMiddleware: createLoggerMiddleware$1,
|
|
1335
1358
|
createQueueMiddleware: createQueueMiddleware$1,
|
|
@@ -1495,8 +1518,7 @@ const {
|
|
|
1495
1518
|
createLoggerMiddleware,
|
|
1496
1519
|
createQueueMiddleware,
|
|
1497
1520
|
createUserAgentMiddleware,
|
|
1498
|
-
createConcurrentModificationMiddleware
|
|
1499
|
-
createErrorMiddleware
|
|
1521
|
+
createConcurrentModificationMiddleware
|
|
1500
1522
|
} = middleware;
|
|
1501
1523
|
class ClientBuilder {
|
|
1502
1524
|
constructor() {
|
|
@@ -1508,7 +1530,9 @@ class ClientBuilder {
|
|
|
1508
1530
|
_defineProperty(this, "loggerMiddleware", void 0);
|
|
1509
1531
|
_defineProperty(this, "queueMiddleware", void 0);
|
|
1510
1532
|
_defineProperty(this, "concurrentMiddleware", void 0);
|
|
1511
|
-
_defineProperty(this, "
|
|
1533
|
+
_defineProperty(this, "telemetryMiddleware", void 0);
|
|
1534
|
+
_defineProperty(this, "beforeMiddleware", void 0);
|
|
1535
|
+
_defineProperty(this, "afterMiddleware", void 0);
|
|
1512
1536
|
_defineProperty(this, "middlewares", []);
|
|
1513
1537
|
this.userAgentMiddleware = createUserAgentMiddleware({});
|
|
1514
1538
|
}
|
|
@@ -1627,30 +1651,49 @@ class ClientBuilder {
|
|
|
1627
1651
|
});
|
|
1628
1652
|
return this;
|
|
1629
1653
|
}
|
|
1630
|
-
withConcurrentModificationMiddleware() {
|
|
1631
|
-
this.concurrentMiddleware = createConcurrentModificationMiddleware();
|
|
1654
|
+
withConcurrentModificationMiddleware(options) {
|
|
1655
|
+
this.concurrentMiddleware = createConcurrentModificationMiddleware(options?.concurrentModificationHandlerFn);
|
|
1632
1656
|
return this;
|
|
1633
1657
|
}
|
|
1634
|
-
|
|
1635
|
-
|
|
1658
|
+
withTelemetryMiddleware(options) {
|
|
1659
|
+
const {
|
|
1660
|
+
createTelemetryMiddleware,
|
|
1661
|
+
...rest
|
|
1662
|
+
} = options;
|
|
1663
|
+
this.withUserAgentMiddleware({
|
|
1664
|
+
customAgent: rest?.userAgent || 'typescript-sdk-apm-middleware'
|
|
1665
|
+
});
|
|
1666
|
+
this.telemetryMiddleware = createTelemetryMiddleware(rest);
|
|
1667
|
+
return this;
|
|
1668
|
+
}
|
|
1669
|
+
withBeforeExecutionMiddleware(options) {
|
|
1670
|
+
const {
|
|
1671
|
+
middleware,
|
|
1672
|
+
...rest
|
|
1673
|
+
} = options || {};
|
|
1674
|
+
this.beforeMiddleware = options.middleware(rest);
|
|
1675
|
+
return this;
|
|
1676
|
+
}
|
|
1677
|
+
withAfterExecutionMiddleware(options) {
|
|
1678
|
+
const {
|
|
1679
|
+
middleware,
|
|
1680
|
+
...rest
|
|
1681
|
+
} = options || {};
|
|
1682
|
+
this.afterMiddleware = options.middleware(rest);
|
|
1636
1683
|
return this;
|
|
1637
1684
|
}
|
|
1638
1685
|
build() {
|
|
1639
1686
|
const middlewares = this.middlewares.slice();
|
|
1640
|
-
|
|
1641
|
-
/**
|
|
1642
|
-
* - use default retry policy if not explicity added
|
|
1643
|
-
* - add retry middleware to be used by concurrent modification
|
|
1644
|
-
* middleware if not explicitly added as part of the middleware
|
|
1645
|
-
*/
|
|
1687
|
+
if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
|
|
1646
1688
|
if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
|
|
1647
1689
|
if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
|
|
1648
1690
|
if (this.authMiddleware) middlewares.push(this.authMiddleware);
|
|
1691
|
+
if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
|
|
1649
1692
|
if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
|
|
1650
1693
|
if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
|
|
1651
|
-
if (this.errorMiddleware) middlewares.push(this.errorMiddleware);
|
|
1652
1694
|
if (this.concurrentMiddleware) middlewares.push(this.concurrentMiddleware);
|
|
1653
1695
|
if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
|
|
1696
|
+
if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
|
|
1654
1697
|
return createClient({
|
|
1655
1698
|
middlewares
|
|
1656
1699
|
});
|