@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 = 60 * 1000; // 1 minute
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, loggerService);
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, loggerService) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0U7QUFDaEUsOENBQXFFO0FBUXJFLDREQUE4RDtBQUU5RCw4REFBcUM7QUFDckMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQixtQ0FBb0Q7QUFFcEQsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVztBQUVqRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQVE5QixNQUFhLGFBQWE7SUFHeEIsWUFBb0IsTUFBa0MsRUFBRSxhQUE0QjtRQUNsRixNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFrQyxFQUFFLGFBQTRCO1FBQzVFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0UsQ0FBQztJQUVELFVBQVUsQ0FDUixTQUFrQixFQUNsQixrQkFBMkIsRUFDM0IsdUJBQWlDLEVBQ2pDLGtCQUE0QjtRQUU1QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGlDQUFpQyxHQUFHLDJCQUEyQix1QkFBdUIsRUFBRSxDQUFDO1FBRS9GLElBQUksR0FBRyxHQUFHLE1BQU0sTUFBTSxpQkFBaUIsaUNB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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0U7QUFDaEUsOENBQXFFO0FBUXJFLDREQUE4RDtBQUU5RCw4REFBcUM7QUFDckMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQixtQ0FBb0Q7QUFFcEQsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUVuRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQVE5QixNQUFhLGFBQWE7SUFHeEIsWUFBb0IsTUFBa0MsRUFBbUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDbkcsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFrQyxFQUFFLGFBQTRCO1FBQzVFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0UsQ0FBQztJQUVELFVBQVUsQ0FDUixTQUFrQixFQUNsQixrQkFBMkIsRUFDM0IsdUJBQWlDLEVBQ2pDLGtCQUE0QjtRQUU1QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGlDQUFpQyxHQUFHLDJCQUEyQix1QkFBdUIsRUFBRSxDQUFDO1FBRS9GLElBQUksR0FBRyxHQUFHLE1B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigg/node-server-sdk",
3
- "version": "3.37.0",
3
+ "version": "3.37.1",
4
4
  "description": "Stigg server-side node SDK",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",