@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
|
@@ -112,10 +112,11 @@ function createError({
|
|
|
112
112
|
return new HttpError(statusCode, errorMessage, rest);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
function
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
function hasResponseRetryCode(retryCodes, response) {
|
|
116
|
+
return (
|
|
117
|
+
// retryCodes.includes(response?.error?.message) ||
|
|
118
|
+
[503, ...retryCodes].includes(response?.status || response?.statusCode)
|
|
119
|
+
);
|
|
119
120
|
}
|
|
120
121
|
async function executeHttpClientRequest(fetcher, config) {
|
|
121
122
|
async function sendRequest() {
|
|
@@ -142,14 +143,17 @@ async function executor(request) {
|
|
|
142
143
|
const data = await executeHttpClientRequest(async options => {
|
|
143
144
|
const {
|
|
144
145
|
enableRetry,
|
|
145
|
-
retryConfig
|
|
146
|
+
retryConfig,
|
|
147
|
+
abortController
|
|
146
148
|
} = rest;
|
|
147
149
|
const {
|
|
148
150
|
retryCodes = [],
|
|
149
151
|
maxDelay = Infinity,
|
|
150
152
|
maxRetries = 3,
|
|
151
153
|
backoff = true,
|
|
152
|
-
retryDelay = 200
|
|
154
|
+
retryDelay = 200,
|
|
155
|
+
// If set to true reinitialize the abort controller when the timeout is reached and apply the retry config
|
|
156
|
+
retryOnAbort = true
|
|
153
157
|
} = retryConfig || {};
|
|
154
158
|
let result,
|
|
155
159
|
data,
|
|
@@ -175,15 +179,41 @@ async function executor(request) {
|
|
|
175
179
|
});
|
|
176
180
|
}
|
|
177
181
|
async function executeWithRetry() {
|
|
182
|
+
const executeWithTryCatch = async (retryCodes, retryWhenAborted) => {
|
|
183
|
+
let _response = {};
|
|
184
|
+
try {
|
|
185
|
+
_response = await execute();
|
|
186
|
+
if (_response.status > 299 && hasResponseRetryCode(retryCodes, _response)) return {
|
|
187
|
+
_response,
|
|
188
|
+
shouldRetry: true
|
|
189
|
+
};
|
|
190
|
+
} catch (e) {
|
|
191
|
+
if (e.name.includes('AbortError') && retryWhenAborted) {
|
|
192
|
+
return {
|
|
193
|
+
_response: e,
|
|
194
|
+
shouldRetry: true
|
|
195
|
+
};
|
|
196
|
+
} else {
|
|
197
|
+
throw e;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
_response,
|
|
202
|
+
shouldRetry: false
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
const retryWhenAborted = retryOnAbort || !abortController || !abortController.signal;
|
|
178
206
|
// first attempt
|
|
179
|
-
let
|
|
180
|
-
|
|
181
|
-
|
|
207
|
+
let {
|
|
208
|
+
_response,
|
|
209
|
+
shouldRetry
|
|
210
|
+
} = await executeWithTryCatch(retryCodes, retryWhenAborted);
|
|
182
211
|
// retry attempts
|
|
183
|
-
while (enableRetry && retryCount < maxRetries) {
|
|
212
|
+
while (enableRetry && shouldRetry && retryCount < maxRetries) {
|
|
184
213
|
retryCount++;
|
|
185
|
-
|
|
186
|
-
|
|
214
|
+
const execution = await executeWithTryCatch(retryCodes, retryWhenAborted);
|
|
215
|
+
_response = execution._response;
|
|
216
|
+
shouldRetry = execution.shouldRetry;
|
|
187
217
|
|
|
188
218
|
// delay next execution
|
|
189
219
|
const timer = calculateRetryDelay({
|
|
@@ -423,7 +453,6 @@ function createUserAgent(options) {
|
|
|
423
453
|
function validateHttpOptions(options) {
|
|
424
454
|
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`');
|
|
425
455
|
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.');
|
|
426
|
-
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.');
|
|
427
456
|
}
|
|
428
457
|
|
|
429
458
|
/**
|
|
@@ -629,7 +658,10 @@ async function executeRequest$1(options) {
|
|
|
629
658
|
* and there's either no token or the token is expired
|
|
630
659
|
*/
|
|
631
660
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
632
|
-
if (!userOption)
|
|
661
|
+
if (!userOption) {
|
|
662
|
+
requestState.set(false);
|
|
663
|
+
throw new Error('Missing required options.');
|
|
664
|
+
}
|
|
633
665
|
const opt = {
|
|
634
666
|
...buildRequestForRefreshTokenFlow({
|
|
635
667
|
...userOption,
|
|
@@ -702,8 +734,10 @@ async function executeRequest$1(options) {
|
|
|
702
734
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
703
735
|
/**
|
|
704
736
|
* reject the error immediately
|
|
705
|
-
* and free up the middleware chain
|
|
737
|
+
* and free up the middleware chain and
|
|
738
|
+
* release the requestState by setting it to false
|
|
706
739
|
*/
|
|
740
|
+
requestState.set(false);
|
|
707
741
|
request.reject({
|
|
708
742
|
...request,
|
|
709
743
|
headers: {
|
|
@@ -718,6 +752,10 @@ async function executeRequest$1(options) {
|
|
|
718
752
|
}
|
|
719
753
|
});
|
|
720
754
|
} catch (error) {
|
|
755
|
+
/**
|
|
756
|
+
* on error release the state by setting it to false
|
|
757
|
+
*/
|
|
758
|
+
requestState.set(false);
|
|
721
759
|
return {
|
|
722
760
|
...request,
|
|
723
761
|
headers: {
|
|
@@ -905,7 +943,7 @@ function createAuthMiddlewareForRefreshTokenFlow$1(options) {
|
|
|
905
943
|
};
|
|
906
944
|
}
|
|
907
945
|
|
|
908
|
-
function createConcurrentModificationMiddleware$1() {
|
|
946
|
+
function createConcurrentModificationMiddleware$1(modifierFunction) {
|
|
909
947
|
return next => {
|
|
910
948
|
return async request => {
|
|
911
949
|
const response = await next(request);
|
|
@@ -919,13 +957,17 @@ function createConcurrentModificationMiddleware$1() {
|
|
|
919
957
|
|
|
920
958
|
// update the resource version here
|
|
921
959
|
if (version) {
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
960
|
+
if (modifierFunction) {
|
|
961
|
+
request.body = await modifierFunction(version, request, response);
|
|
962
|
+
} else {
|
|
963
|
+
request.body = typeof request.body == 'string' ? {
|
|
964
|
+
...JSON.parse(request.body),
|
|
965
|
+
version
|
|
966
|
+
} : {
|
|
967
|
+
...request.body,
|
|
968
|
+
version
|
|
969
|
+
};
|
|
970
|
+
}
|
|
929
971
|
return next(request);
|
|
930
972
|
}
|
|
931
973
|
}
|
|
@@ -947,7 +989,7 @@ function createCorrelationIdMiddleware$1(options) {
|
|
|
947
989
|
};
|
|
948
990
|
}
|
|
949
991
|
|
|
950
|
-
function createErrorMiddleware
|
|
992
|
+
function createErrorMiddleware(options) {
|
|
951
993
|
return next => async request => {
|
|
952
994
|
const response = await next(request);
|
|
953
995
|
if (response.error) {
|
|
@@ -979,7 +1021,8 @@ async function executeRequest({
|
|
|
979
1021
|
request,
|
|
980
1022
|
abortController,
|
|
981
1023
|
maskSensitiveHeaderData,
|
|
982
|
-
includeRequestInErrorResponse
|
|
1024
|
+
includeRequestInErrorResponse,
|
|
1025
|
+
includeResponseHeaders
|
|
983
1026
|
} = clientOptions;
|
|
984
1027
|
try {
|
|
985
1028
|
if (timeout) timer = setTimeout(() => {
|
|
@@ -994,6 +1037,9 @@ async function executeRequest({
|
|
|
994
1037
|
body: clientOptions.body
|
|
995
1038
|
} : {})
|
|
996
1039
|
});
|
|
1040
|
+
if (!includeResponseHeaders) {
|
|
1041
|
+
response.headers = null;
|
|
1042
|
+
}
|
|
997
1043
|
if (response.statusCode >= 200 && response.statusCode < 300) {
|
|
998
1044
|
if (clientOptions.method == 'HEAD') {
|
|
999
1045
|
return {
|
|
@@ -1037,7 +1083,7 @@ async function executeRequest({
|
|
|
1037
1083
|
};
|
|
1038
1084
|
} catch (e) {
|
|
1039
1085
|
// We know that this is a network error
|
|
1040
|
-
const headers = getHeaders(e.response?.headers);
|
|
1086
|
+
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
|
|
1041
1087
|
const statusCode = e.response?.status || e.response?.data0 || 0;
|
|
1042
1088
|
const message = e.response?.data?.message;
|
|
1043
1089
|
const error = createError({
|
|
@@ -1074,7 +1120,8 @@ function createHttpMiddleware$1(options) {
|
|
|
1074
1120
|
retryConfig,
|
|
1075
1121
|
getAbortController,
|
|
1076
1122
|
includeOriginalRequest,
|
|
1077
|
-
includeRequestInErrorResponse,
|
|
1123
|
+
includeRequestInErrorResponse = true,
|
|
1124
|
+
includeResponseHeaders = true,
|
|
1078
1125
|
maskSensitiveHeaderData,
|
|
1079
1126
|
httpClientOptions
|
|
1080
1127
|
} = options;
|
|
@@ -1110,6 +1157,7 @@ function createHttpMiddleware$1(options) {
|
|
|
1110
1157
|
headers: requestHeader,
|
|
1111
1158
|
includeRequestInErrorResponse,
|
|
1112
1159
|
maskSensitiveHeaderData,
|
|
1160
|
+
includeResponseHeaders,
|
|
1113
1161
|
...httpClientOptions
|
|
1114
1162
|
};
|
|
1115
1163
|
if (credentialsMode) {
|
|
@@ -1143,43 +1191,17 @@ function createHttpMiddleware$1(options) {
|
|
|
1143
1191
|
};
|
|
1144
1192
|
}
|
|
1145
1193
|
|
|
1146
|
-
// error, info, success
|
|
1147
1194
|
function createLoggerMiddleware$1(options) {
|
|
1148
1195
|
return next => {
|
|
1149
1196
|
return async request => {
|
|
1150
1197
|
let response = await next(request);
|
|
1151
1198
|
const originalResponse = Object.assign({}, response);
|
|
1152
1199
|
const {
|
|
1153
|
-
loggerFn = console.log
|
|
1154
|
-
// logLevel = 'ERROR',
|
|
1155
|
-
maskSensitiveHeaderData = true,
|
|
1156
|
-
includeOriginalRequest = true,
|
|
1157
|
-
includeResponseHeaders = true
|
|
1158
|
-
// includeRequestInErrorResponse
|
|
1200
|
+
loggerFn = console.log
|
|
1159
1201
|
} = options || {};
|
|
1160
|
-
if (includeOriginalRequest && maskSensitiveHeaderData) {
|
|
1161
|
-
maskAuthData(response.request);
|
|
1162
|
-
}
|
|
1163
|
-
if (!includeOriginalRequest) {
|
|
1164
|
-
const {
|
|
1165
|
-
request,
|
|
1166
|
-
...rest
|
|
1167
|
-
} = response;
|
|
1168
|
-
response = rest;
|
|
1169
|
-
}
|
|
1170
|
-
if (!includeResponseHeaders) {
|
|
1171
|
-
const {
|
|
1172
|
-
headers,
|
|
1173
|
-
...rest
|
|
1174
|
-
} = response;
|
|
1175
|
-
response = rest;
|
|
1176
|
-
}
|
|
1177
1202
|
if (loggerFn && typeof loggerFn == 'function') {
|
|
1178
1203
|
loggerFn(response);
|
|
1179
|
-
// return originalResponse
|
|
1180
1204
|
}
|
|
1181
|
-
|
|
1182
|
-
// console.log({ Response: response })
|
|
1183
1205
|
return originalResponse;
|
|
1184
1206
|
};
|
|
1185
1207
|
};
|
|
@@ -1231,7 +1253,7 @@ function createQueueMiddleware$1({
|
|
|
1231
1253
|
|
|
1232
1254
|
var packageJson = {
|
|
1233
1255
|
name: "@commercetools/ts-client",
|
|
1234
|
-
version: "
|
|
1256
|
+
version: "2.0.1",
|
|
1235
1257
|
engines: {
|
|
1236
1258
|
node: ">=14"
|
|
1237
1259
|
},
|
|
@@ -1267,7 +1289,7 @@ var packageJson = {
|
|
|
1267
1289
|
"abort-controller": "3.0.0",
|
|
1268
1290
|
buffer: "^6.0.3",
|
|
1269
1291
|
"node-fetch": "^2.6.1",
|
|
1270
|
-
uuid: "
|
|
1292
|
+
uuid: "10.0.0"
|
|
1271
1293
|
},
|
|
1272
1294
|
files: [
|
|
1273
1295
|
"dist",
|
|
@@ -1290,7 +1312,8 @@ var packageJson = {
|
|
|
1290
1312
|
scripts: {
|
|
1291
1313
|
organize_imports: "find src -type f -name '*.ts' | xargs organize-imports-cli",
|
|
1292
1314
|
postbuild: "yarn organize_imports",
|
|
1293
|
-
post_process_generate: "yarn organize_imports"
|
|
1315
|
+
post_process_generate: "yarn organize_imports",
|
|
1316
|
+
docs: "typedoc --out docs"
|
|
1294
1317
|
}
|
|
1295
1318
|
};
|
|
1296
1319
|
|
|
@@ -1298,7 +1321,7 @@ function createUserAgentMiddleware$1(options) {
|
|
|
1298
1321
|
return next => async request => {
|
|
1299
1322
|
const userAgent = createUserAgent({
|
|
1300
1323
|
...options,
|
|
1301
|
-
name:
|
|
1324
|
+
name: `${options.name ? options.name + '/' : ''}commercetools-sdk-javascript-v3/${packageJson.version}`
|
|
1302
1325
|
});
|
|
1303
1326
|
const requestWithUserAgent = {
|
|
1304
1327
|
...request,
|
|
@@ -1320,7 +1343,7 @@ var middleware = /*#__PURE__*/Object.freeze({
|
|
|
1320
1343
|
createAuthMiddlewareForRefreshTokenFlow: createAuthMiddlewareForRefreshTokenFlow$1,
|
|
1321
1344
|
createConcurrentModificationMiddleware: createConcurrentModificationMiddleware$1,
|
|
1322
1345
|
createCorrelationIdMiddleware: createCorrelationIdMiddleware$1,
|
|
1323
|
-
createErrorMiddleware: createErrorMiddleware
|
|
1346
|
+
createErrorMiddleware: createErrorMiddleware,
|
|
1324
1347
|
createHttpMiddleware: createHttpMiddleware$1,
|
|
1325
1348
|
createLoggerMiddleware: createLoggerMiddleware$1,
|
|
1326
1349
|
createQueueMiddleware: createQueueMiddleware$1,
|
|
@@ -1486,8 +1509,7 @@ const {
|
|
|
1486
1509
|
createLoggerMiddleware,
|
|
1487
1510
|
createQueueMiddleware,
|
|
1488
1511
|
createUserAgentMiddleware,
|
|
1489
|
-
createConcurrentModificationMiddleware
|
|
1490
|
-
createErrorMiddleware
|
|
1512
|
+
createConcurrentModificationMiddleware
|
|
1491
1513
|
} = middleware;
|
|
1492
1514
|
class ClientBuilder {
|
|
1493
1515
|
constructor() {
|
|
@@ -1499,7 +1521,9 @@ class ClientBuilder {
|
|
|
1499
1521
|
_defineProperty(this, "loggerMiddleware", void 0);
|
|
1500
1522
|
_defineProperty(this, "queueMiddleware", void 0);
|
|
1501
1523
|
_defineProperty(this, "concurrentMiddleware", void 0);
|
|
1502
|
-
_defineProperty(this, "
|
|
1524
|
+
_defineProperty(this, "telemetryMiddleware", void 0);
|
|
1525
|
+
_defineProperty(this, "beforeMiddleware", void 0);
|
|
1526
|
+
_defineProperty(this, "afterMiddleware", void 0);
|
|
1503
1527
|
_defineProperty(this, "middlewares", []);
|
|
1504
1528
|
this.userAgentMiddleware = createUserAgentMiddleware({});
|
|
1505
1529
|
}
|
|
@@ -1618,30 +1642,49 @@ class ClientBuilder {
|
|
|
1618
1642
|
});
|
|
1619
1643
|
return this;
|
|
1620
1644
|
}
|
|
1621
|
-
withConcurrentModificationMiddleware() {
|
|
1622
|
-
this.concurrentMiddleware = createConcurrentModificationMiddleware();
|
|
1645
|
+
withConcurrentModificationMiddleware(options) {
|
|
1646
|
+
this.concurrentMiddleware = createConcurrentModificationMiddleware(options?.concurrentModificationHandlerFn);
|
|
1623
1647
|
return this;
|
|
1624
1648
|
}
|
|
1625
|
-
|
|
1626
|
-
|
|
1649
|
+
withTelemetryMiddleware(options) {
|
|
1650
|
+
const {
|
|
1651
|
+
createTelemetryMiddleware,
|
|
1652
|
+
...rest
|
|
1653
|
+
} = options;
|
|
1654
|
+
this.withUserAgentMiddleware({
|
|
1655
|
+
customAgent: rest?.userAgent || 'typescript-sdk-apm-middleware'
|
|
1656
|
+
});
|
|
1657
|
+
this.telemetryMiddleware = createTelemetryMiddleware(rest);
|
|
1658
|
+
return this;
|
|
1659
|
+
}
|
|
1660
|
+
withBeforeExecutionMiddleware(options) {
|
|
1661
|
+
const {
|
|
1662
|
+
middleware,
|
|
1663
|
+
...rest
|
|
1664
|
+
} = options || {};
|
|
1665
|
+
this.beforeMiddleware = options.middleware(rest);
|
|
1666
|
+
return this;
|
|
1667
|
+
}
|
|
1668
|
+
withAfterExecutionMiddleware(options) {
|
|
1669
|
+
const {
|
|
1670
|
+
middleware,
|
|
1671
|
+
...rest
|
|
1672
|
+
} = options || {};
|
|
1673
|
+
this.afterMiddleware = options.middleware(rest);
|
|
1627
1674
|
return this;
|
|
1628
1675
|
}
|
|
1629
1676
|
build() {
|
|
1630
1677
|
const middlewares = this.middlewares.slice();
|
|
1631
|
-
|
|
1632
|
-
/**
|
|
1633
|
-
* - use default retry policy if not explicity added
|
|
1634
|
-
* - add retry middleware to be used by concurrent modification
|
|
1635
|
-
* middleware if not explicitly added as part of the middleware
|
|
1636
|
-
*/
|
|
1678
|
+
if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
|
|
1637
1679
|
if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
|
|
1638
1680
|
if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
|
|
1639
1681
|
if (this.authMiddleware) middlewares.push(this.authMiddleware);
|
|
1682
|
+
if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
|
|
1640
1683
|
if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
|
|
1641
1684
|
if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
|
|
1642
|
-
if (this.errorMiddleware) middlewares.push(this.errorMiddleware);
|
|
1643
1685
|
if (this.concurrentMiddleware) middlewares.push(this.concurrentMiddleware);
|
|
1644
1686
|
if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
|
|
1687
|
+
if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
|
|
1645
1688
|
return createClient({
|
|
1646
1689
|
middlewares
|
|
1647
1690
|
});
|