@stigg/node-server-sdk 3.6.0 → 3.7.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.
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
1
2
|
import { ApolloQueryResult } from '@apollo/client/core';
|
|
2
|
-
import { GetSdkConfigurationQuery } from '@stigg/api-client-js/src/generated/sdk';
|
|
3
|
-
import { GetEntitlementsQuery, GetPaywallQuery } from '@stigg/api-client-js/src/generated/sdk';
|
|
3
|
+
import { GetEntitlementsQuery, GetPaywallQuery, GetSdkConfigurationQuery } from '@stigg/api-client-js/src/generated/sdk';
|
|
4
4
|
import { LoggerService } from './loggerService';
|
|
5
5
|
declare type EdgeApiClientConfiguration = {
|
|
6
6
|
apiKey: string;
|
|
@@ -15,5 +15,10 @@ export declare class EdgeApiClient {
|
|
|
15
15
|
getEntitlements(customerId: string, resourceId: string | undefined): Promise<ApolloQueryResult<GetEntitlementsQuery>>;
|
|
16
16
|
getSdkConfiguration(): Promise<ApolloQueryResult<GetSdkConfigurationQuery>>;
|
|
17
17
|
private get;
|
|
18
|
+
private initHttpClient;
|
|
19
|
+
/**
|
|
20
|
+
* Public for mocking in tests
|
|
21
|
+
*/
|
|
22
|
+
enableRetries(axiosInstance: AxiosInstance): void;
|
|
18
23
|
}
|
|
19
24
|
export {};
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
@@ -6,13 +25,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
25
|
exports.EdgeApiClient = void 0;
|
|
7
26
|
const axios_1 = __importDefault(require("axios"));
|
|
8
27
|
const requestHeaders_1 = require("../utils/requestHeaders");
|
|
28
|
+
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
29
|
+
const http = __importStar(require("http"));
|
|
30
|
+
const https = __importStar(require("https"));
|
|
31
|
+
const REQUEST_TIMEOUT_MS = 60 * 1000; // 1 minute
|
|
32
|
+
const REQUEST_RETRY_COUNT = 3;
|
|
9
33
|
class EdgeApiClient {
|
|
10
34
|
constructor(config, loggerService) {
|
|
11
35
|
const { apiKey, baseEdgeUri } = config;
|
|
12
|
-
this.httpClient =
|
|
13
|
-
baseURL: baseEdgeUri,
|
|
14
|
-
headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
|
|
15
|
-
});
|
|
36
|
+
this.httpClient = this.initHttpClient(baseEdgeUri, apiKey, loggerService);
|
|
16
37
|
}
|
|
17
38
|
static create(config, loggerService) {
|
|
18
39
|
return config.enableEdge ? new EdgeApiClient(config, loggerService) : null;
|
|
@@ -39,6 +60,27 @@ class EdgeApiClient {
|
|
|
39
60
|
get(url) {
|
|
40
61
|
return this.httpClient.get(url).then((response) => response.data);
|
|
41
62
|
}
|
|
63
|
+
initHttpClient(baseEdgeUri, apiKey, loggerService) {
|
|
64
|
+
const axiosInstance = axios_1.default.create({
|
|
65
|
+
baseURL: baseEdgeUri,
|
|
66
|
+
headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
|
|
67
|
+
timeout: REQUEST_TIMEOUT_MS,
|
|
68
|
+
httpAgent: new http.Agent({ keepAlive: true }),
|
|
69
|
+
httpsAgent: new https.Agent({ keepAlive: true }),
|
|
70
|
+
});
|
|
71
|
+
this.enableRetries(axiosInstance);
|
|
72
|
+
return axiosInstance;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Public for mocking in tests
|
|
76
|
+
*/
|
|
77
|
+
enableRetries(axiosInstance) {
|
|
78
|
+
(0, axios_retry_1.default)(axiosInstance, {
|
|
79
|
+
retries: REQUEST_RETRY_COUNT,
|
|
80
|
+
retryDelay: (retryNumber, error) => axios_retry_1.default.exponentialDelay(retryNumber, error, 2000),
|
|
81
|
+
shouldResetTimeout: true,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
42
84
|
}
|
|
43
85
|
exports.EdgeApiClient = EdgeApiClient;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0U7QUFRaEUsNERBQThEO0FBRTlELDhEQUFxQztBQUNyQywyQ0FBNkI7QUFDN0IsNkNBQStCO0FBRS9CLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7QUFFakQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFROUIsTUFBYSxhQUFhO0lBR3hCLFlBQW9CLE1BQWtDLEVBQUUsYUFBNEI7UUFDbEYsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBa0MsRUFBRSxhQUE0QjtRQUM1RSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdFLENBQUM7SUFFRCxVQUFVLENBQ1IsU0FBa0IsRUFDbEIsa0JBQTJCLEVBQzNCLHVCQUFpQyxFQUNqQyxrQkFBNEI7UUFFNUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsTUFBTSxpQ0FBaUMsR0FBRywyQkFBMkIsdUJBQXVCLEVBQUUsQ0FBQztRQUUvRixJQUFJLEdBQUcsR0FBRyxNQUFNLE1BQU0saUJBQWlCLGlDQUFpQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixHQUFHLElBQUksdUJBQXVCLGtCQUFrQixFQUFFLENBQUM7U0FDcEQ7UUFDRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLEdBQUcsSUFBSSx1QkFBdUIsa0JBQWtCLEVBQUUsQ0FBQztTQUNwRDtRQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQThCO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLFNBQVMsVUFBVSxxQkFBcUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQXVCLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUEyQiwwQ0FBMEMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxHQUFHLENBQUksR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CLEVBQUUsTUFBYyxFQUFFLGFBQTRCO1FBQ3RGLE1BQU0sYUFBYSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDakMsT0FBTyxFQUFFLFdBQVc7WUFDcEIsT0FBTyxrQ0FDRixJQUFBLG9DQUFtQixFQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUMsS0FDN0QsZUFBZSxFQUFFLEdBQUcsR0FDckI7WUFDRCxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxhQUE0QjtRQUN4QyxJQUFBLHFCQUFVLEVBQUMsYUFBYSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsVUFBVSxFQUFFLENBQUMsV0FBb0IsRUFBRSxLQUFrQixFQUFFLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQy9HLGtCQUFrQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEVELHNDQXdFQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigg/node-server-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.0",
|
|
4
4
|
"description": "Stigg server-side node SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"@stigg/api-client-js": "1.50.0",
|
|
39
39
|
"@types/ws": "^8.2.3",
|
|
40
40
|
"axios": "^1.2.2",
|
|
41
|
+
"axios-retry": "^4.0.0",
|
|
41
42
|
"cross-fetch": "^3.1.5",
|
|
42
43
|
"graphql": "^15.6.1",
|
|
43
44
|
"graphql-ws": "^5.6.0",
|