@stigg/node-server-sdk 3.37.0 → 3.37.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.
|
@@ -8,6 +8,7 @@ declare type EdgeApiClientConfiguration = {
|
|
|
8
8
|
enableEdge: boolean;
|
|
9
9
|
};
|
|
10
10
|
export declare class EdgeApiClient {
|
|
11
|
+
private readonly loggerService;
|
|
11
12
|
private readonly httpClient;
|
|
12
13
|
private constructor();
|
|
13
14
|
static create(config: EdgeApiClientConfiguration, loggerService: LoggerService): EdgeApiClient | null;
|
|
@@ -21,5 +22,6 @@ export declare class EdgeApiClient {
|
|
|
21
22
|
* Public for mocking in tests
|
|
22
23
|
*/
|
|
23
24
|
enableRetries(axiosInstance: AxiosInstance): void;
|
|
25
|
+
private canRetryRequest;
|
|
24
26
|
}
|
|
25
27
|
export {};
|
|
@@ -30,12 +30,13 @@ const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
|
30
30
|
const http = __importStar(require("http"));
|
|
31
31
|
const https = __importStar(require("https"));
|
|
32
32
|
const lodash_1 = require("lodash");
|
|
33
|
-
const REQUEST_TIMEOUT_MS =
|
|
33
|
+
const REQUEST_TIMEOUT_MS = 15 * 1000; // 15 seconds
|
|
34
34
|
const REQUEST_RETRY_COUNT = 3;
|
|
35
35
|
class EdgeApiClient {
|
|
36
36
|
constructor(config, loggerService) {
|
|
37
|
+
this.loggerService = loggerService;
|
|
37
38
|
const { apiKey, baseEdgeUri } = config;
|
|
38
|
-
this.httpClient = this.initHttpClient(baseEdgeUri, apiKey
|
|
39
|
+
this.httpClient = this.initHttpClient(baseEdgeUri, apiKey);
|
|
39
40
|
}
|
|
40
41
|
static create(config, loggerService) {
|
|
41
42
|
return config.enableEdge ? new EdgeApiClient(config, loggerService) : null;
|
|
@@ -78,10 +79,10 @@ class EdgeApiClient {
|
|
|
78
79
|
}
|
|
79
80
|
return data;
|
|
80
81
|
}
|
|
81
|
-
initHttpClient(baseEdgeUri, apiKey
|
|
82
|
+
initHttpClient(baseEdgeUri, apiKey) {
|
|
82
83
|
const axiosInstance = axios_1.default.create({
|
|
83
84
|
baseURL: baseEdgeUri,
|
|
84
|
-
headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
|
|
85
|
+
headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, this.loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
|
|
85
86
|
timeout: REQUEST_TIMEOUT_MS,
|
|
86
87
|
httpAgent: new http.Agent({ keepAlive: true }),
|
|
87
88
|
httpsAgent: new https.Agent({ keepAlive: true }),
|
|
@@ -95,10 +96,16 @@ class EdgeApiClient {
|
|
|
95
96
|
enableRetries(axiosInstance) {
|
|
96
97
|
(0, axios_retry_1.default)(axiosInstance, {
|
|
97
98
|
retries: REQUEST_RETRY_COUNT,
|
|
99
|
+
retryCondition: (error) => this.canRetryRequest(error),
|
|
98
100
|
retryDelay: (retryNumber, error) => axios_retry_1.default.exponentialDelay(retryNumber, error, 2000),
|
|
99
101
|
shouldResetTimeout: true,
|
|
102
|
+
onRetry: async (retryCount, error, requestConfig) => this.loggerService.log(`Retrying request ${requestConfig.url} - attempt ${retryCount}`),
|
|
100
103
|
});
|
|
101
104
|
}
|
|
105
|
+
canRetryRequest(error) {
|
|
106
|
+
const isTimeoutError = error.code === 'ECONNABORTED' && error.message.includes('timeout');
|
|
107
|
+
return isTimeoutError || axios_retry_1.default.isNetworkOrIdempotentRequestError(error);
|
|
108
|
+
}
|
|
102
109
|
}
|
|
103
110
|
exports.EdgeApiClient = EdgeApiClient;
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0U7QUFDaEUsOENBQXFFO0FBUXJFLDREQUE4RDtBQUU5RCw4REFBcUM7QUFDckMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQixtQ0FBb0Q7QUFFcEQsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUVuRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQVE5QixNQUFhLGFBQWE7SUFHeEIsWUFBb0IsTUFBa0MsRUFBbUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDbkcsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFrQyxFQUFFLGFBQTRCO1FBQzVFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0UsQ0FBQztJQUVELFVBQVUsQ0FDUixTQUFrQixFQUNsQixrQkFBMkIsRUFDM0IsdUJBQWlDLEVBQ2pDLGtCQUE0QjtRQUU1QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGlDQUFpQyxHQUFHLDJCQUEyQix1QkFBdUIsRUFBRSxDQUFDO1FBRS9GLElBQUksR0FBRyxHQUFHLE1B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
|