@stigg/node-server-sdk 3.56.1 → 3.57.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.
- package/dist/api/apollo/TimeoutLink.d.ts +9 -0
- package/dist/api/apollo/TimeoutLink.js +41 -0
- package/dist/api/apollo/WebSocketLink.d.ts +10 -0
- package/dist/api/apollo/WebSocketLink.js +34 -0
- package/dist/api/{initApolloClient.d.ts → apollo/initApolloClient.d.ts} +3 -9
- package/dist/api/apollo/initApolloClient.js +94 -0
- package/dist/api/apollo/types.d.ts +8 -0
- package/dist/api/apollo/types.js +3 -0
- package/dist/clientInitialization.js +2 -2
- package/dist/configuration.d.ts +1 -0
- package/dist/configuration.js +2 -1
- package/dist/utils/apiErrorHandling.js +8 -5
- package/package.json +1 -1
- package/dist/api/initApolloClient.js +0 -120
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="zen-observable" />
|
|
2
|
+
import { ApolloLink, FetchResult, Observable, Operation } from '@apollo/client/core';
|
|
3
|
+
import { NextLink } from '@apollo/client/link/core/types';
|
|
4
|
+
export declare const TIMEOUT_ERROR_MESSAGE = "Request timed out";
|
|
5
|
+
export declare class TimeoutLink extends ApolloLink {
|
|
6
|
+
private readonly timeout;
|
|
7
|
+
constructor(timeout?: number);
|
|
8
|
+
request(operation: Operation, forward?: NextLink): Observable<FetchResult>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeoutLink = exports.TIMEOUT_ERROR_MESSAGE = void 0;
|
|
4
|
+
const core_1 = require("@apollo/client/core");
|
|
5
|
+
exports.TIMEOUT_ERROR_MESSAGE = `Request timed out`;
|
|
6
|
+
class TimeoutLink extends core_1.ApolloLink {
|
|
7
|
+
constructor(timeout = 30000) {
|
|
8
|
+
super();
|
|
9
|
+
this.timeout = timeout;
|
|
10
|
+
}
|
|
11
|
+
request(operation, forward) {
|
|
12
|
+
return new core_1.Observable((observer) => {
|
|
13
|
+
const timerHandle = setTimeout(() => {
|
|
14
|
+
observer.error(new Error(exports.TIMEOUT_ERROR_MESSAGE));
|
|
15
|
+
}, this.timeout);
|
|
16
|
+
if (!forward) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const subscription = forward(operation).subscribe({
|
|
20
|
+
next: (result) => {
|
|
21
|
+
clearTimeout(timerHandle);
|
|
22
|
+
observer.next(result);
|
|
23
|
+
},
|
|
24
|
+
error: (error) => {
|
|
25
|
+
clearTimeout(timerHandle);
|
|
26
|
+
observer.error(error);
|
|
27
|
+
},
|
|
28
|
+
complete: () => {
|
|
29
|
+
clearTimeout(timerHandle);
|
|
30
|
+
observer.complete();
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
return () => {
|
|
34
|
+
clearTimeout(timerHandle);
|
|
35
|
+
subscription.unsubscribe();
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.TimeoutLink = TimeoutLink;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZW91dExpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Fwb2xsby9UaW1lb3V0TGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBcUY7QUFHeEUsUUFBQSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQztBQUN6RCxNQUFhLFdBQVksU0FBUSxpQkFBVTtJQUN6QyxZQUE2QixVQUFVLEtBQU07UUFDM0MsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUU3QyxDQUFDO0lBRU0sT0FBTyxDQUFDLFNBQW9CLEVBQUUsT0FBa0I7UUFDckQsT0FBTyxJQUFJLGlCQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLDZCQUFxQixDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpCLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ1osT0FBTzthQUNSO1lBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDaEQsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMxQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwQ0Qsa0NBb0NDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="zen-observable" />
|
|
2
|
+
import { ApolloLink, FetchResult, Observable, Operation } from '@apollo/client/core';
|
|
3
|
+
import { ClientOptions } from 'graphql-ws';
|
|
4
|
+
import { LoggerService } from '../../services/loggerService';
|
|
5
|
+
export declare class WebSocketLink extends ApolloLink {
|
|
6
|
+
private readonly loggerService;
|
|
7
|
+
private client;
|
|
8
|
+
constructor(options: ClientOptions, loggerService: LoggerService);
|
|
9
|
+
request(operation: Operation): Observable<FetchResult>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketLink = void 0;
|
|
4
|
+
const core_1 = require("@apollo/client/core");
|
|
5
|
+
const graphql_ws_1 = require("graphql-ws");
|
|
6
|
+
const graphql_1 = require("graphql");
|
|
7
|
+
class WebSocketLink extends core_1.ApolloLink {
|
|
8
|
+
constructor(options, loggerService) {
|
|
9
|
+
super();
|
|
10
|
+
this.loggerService = loggerService;
|
|
11
|
+
this.client = (0, graphql_ws_1.createClient)(Object.assign({}, options));
|
|
12
|
+
}
|
|
13
|
+
request(operation) {
|
|
14
|
+
return new core_1.Observable((sink) => {
|
|
15
|
+
return this.client.subscribe(Object.assign(Object.assign({}, operation), { query: (0, graphql_1.print)(operation.query) }), {
|
|
16
|
+
next: sink.next.bind(sink),
|
|
17
|
+
complete: sink.complete.bind(sink),
|
|
18
|
+
error: (error) => {
|
|
19
|
+
const errorReason = error.message || error.reason;
|
|
20
|
+
if (errorReason.includes('ThrottlerException')) {
|
|
21
|
+
this.loggerService.log(`Websocket disconnected. reason: Throttle error`);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Error can be also a close event.
|
|
25
|
+
this.loggerService.error(`Websocket disconnected. reason: ${errorReason || 'connection closed'}`);
|
|
26
|
+
}
|
|
27
|
+
sink.error(error);
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.WebSocketLink = WebSocketLink;
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViU29ja2V0TGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvYXBvbGxvL1dlYlNvY2tldExpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXFGO0FBQ3JGLDJDQUFpRTtBQUVqRSxxQ0FBZ0M7QUFFaEMsTUFBYSxhQUFjLFNBQVEsaUJBQVU7SUFHM0MsWUFBWSxPQUFzQixFQUFtQixhQUE0QjtRQUMvRSxLQUFLLEVBQUUsQ0FBQztRQUQyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUUvRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEseUJBQVksb0JBQ3JCLE9BQU8sRUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUFvQjtRQUNqQyxPQUFPLElBQUksaUJBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLGlDQUNyQixTQUFTLEtBQUUsS0FBSyxFQUFFLElBQUEsZUFBSyxFQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FDN0M7Z0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDbEMsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7b0JBQ3BCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztvQkFDbEQsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7d0JBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7cUJBQzFFO3lCQUFNO3dCQUNMLG1DQUFtQzt3QkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLFdBQVcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7cUJBQ25HO29CQUVELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLENBQUM7YUFDRixDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhDRCxzQ0FnQ0MifQ==
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { ApolloClient } from '@apollo/client/core';
|
|
2
|
-
import { LoggerService } from '
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
baseUri: string;
|
|
6
|
-
wsUrl: string;
|
|
7
|
-
clientName?: string;
|
|
8
|
-
clientVersion?: string;
|
|
9
|
-
};
|
|
10
|
-
declare const initApolloClient: ({ apiKey, baseUri, wsUrl, onConnected, loggerService, clientName, clientVersion, }: ApolloClientConfiguration & {
|
|
2
|
+
import { LoggerService } from '../../services/loggerService';
|
|
3
|
+
import { ApolloClientConfiguration } from './types';
|
|
4
|
+
declare const initApolloClient: ({ apiKey, baseUri, wsUrl, onConnected, loggerService, clientName, clientVersion, timeout, }: ApolloClientConfiguration & {
|
|
11
5
|
onConnected: () => void;
|
|
12
6
|
loggerService: LoggerService;
|
|
13
7
|
}) => ApolloClient<import("@apollo/client/core").NormalizedCacheObject>;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initBatchedApolloClient = void 0;
|
|
7
|
+
const core_1 = require("@apollo/client/core");
|
|
8
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
9
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
10
|
+
const utilities_1 = require("@apollo/client/utilities");
|
|
11
|
+
const batch_http_1 = require("@apollo/client/link/batch-http");
|
|
12
|
+
const configuration_1 = require("../../configuration");
|
|
13
|
+
const requestHeaders_1 = require("../../utils/requestHeaders");
|
|
14
|
+
const retry_1 = require("@apollo/client/link/retry");
|
|
15
|
+
const WebSocketLink_1 = require("./WebSocketLink");
|
|
16
|
+
const TimeoutLink_1 = require("./TimeoutLink");
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
18
|
+
const packageJson = require('../../../package.json');
|
|
19
|
+
const retryIf = (error) => {
|
|
20
|
+
const doNotRetryCodes = [500, 400];
|
|
21
|
+
const errorIsNotClientTimeout = (error === null || error === void 0 ? void 0 : error.message) === TimeoutLink_1.TIMEOUT_ERROR_MESSAGE;
|
|
22
|
+
return !!error && !doNotRetryCodes.includes(error.statusCode) && !errorIsNotClientTimeout;
|
|
23
|
+
};
|
|
24
|
+
function getAuthLink(apiKey, instanceId) {
|
|
25
|
+
const authLink = new core_1.ApolloLink((operation, forward) => {
|
|
26
|
+
operation.setContext({
|
|
27
|
+
headers: (0, requestHeaders_1.buildRequestHeaders)(apiKey, instanceId, operation.operationName),
|
|
28
|
+
});
|
|
29
|
+
return forward(operation);
|
|
30
|
+
});
|
|
31
|
+
return authLink;
|
|
32
|
+
}
|
|
33
|
+
function getHttpLink(baseUri) {
|
|
34
|
+
return new core_1.HttpLink({
|
|
35
|
+
uri: `${baseUri}/graphql`,
|
|
36
|
+
fetch: cross_fetch_1.default,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function getWsLink(wsUrl, onConnected, apiKey, loggerService) {
|
|
40
|
+
return new WebSocketLink_1.WebSocketLink({
|
|
41
|
+
retryAttempts: Infinity,
|
|
42
|
+
isFatalConnectionProblem: () => false,
|
|
43
|
+
connectionAckWaitTimeout: Infinity,
|
|
44
|
+
keepAlive: 10000,
|
|
45
|
+
url: `${wsUrl}/graphql`,
|
|
46
|
+
on: {
|
|
47
|
+
connected: onConnected,
|
|
48
|
+
},
|
|
49
|
+
webSocketImpl: isomorphic_ws_1.default,
|
|
50
|
+
connectionParams: {
|
|
51
|
+
headers: (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId()),
|
|
52
|
+
},
|
|
53
|
+
}, loggerService);
|
|
54
|
+
}
|
|
55
|
+
const initApolloClient = ({ apiKey, baseUri, wsUrl, onConnected, loggerService, clientName = configuration_1.SDK_NAME, clientVersion = packageJson.version, timeout, }) => {
|
|
56
|
+
const authLink = getAuthLink(apiKey, loggerService.getInstanceId());
|
|
57
|
+
const httpLink = getHttpLink(baseUri);
|
|
58
|
+
const timeoutHttpLink = new TimeoutLink_1.TimeoutLink(timeout).concat(httpLink);
|
|
59
|
+
const retryLink = new retry_1.RetryLink({
|
|
60
|
+
attempts: { max: 5, retryIf },
|
|
61
|
+
delay: { initial: 500, max: 2000, jitter: true },
|
|
62
|
+
});
|
|
63
|
+
const wsLink = getWsLink(wsUrl, onConnected, apiKey, loggerService);
|
|
64
|
+
const splitLink = (0, core_1.split)(({ query }) => {
|
|
65
|
+
const definition = (0, utilities_1.getMainDefinition)(query);
|
|
66
|
+
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';
|
|
67
|
+
}, wsLink, retryLink.concat(timeoutHttpLink));
|
|
68
|
+
return new core_1.ApolloClient({
|
|
69
|
+
link: authLink.concat(splitLink),
|
|
70
|
+
cache: new core_1.InMemoryCache(),
|
|
71
|
+
name: clientName,
|
|
72
|
+
version: clientVersion,
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
function getBatchedLink(baseUri) {
|
|
76
|
+
return new batch_http_1.BatchHttpLink({ uri: `${baseUri}/graphql`, batchMax: 25, batchInterval: 500, fetch: cross_fetch_1.default });
|
|
77
|
+
}
|
|
78
|
+
const initBatchedApolloClient = ({ apiKey, baseUri, clientName = configuration_1.SDK_NAME, clientVersion = packageJson.version }, loggerService) => {
|
|
79
|
+
const authLink = getAuthLink(apiKey, loggerService.getInstanceId());
|
|
80
|
+
const retryLink = new retry_1.RetryLink({
|
|
81
|
+
attempts: { max: 5, retryIf },
|
|
82
|
+
delay: { initial: 500, max: 2000, jitter: true },
|
|
83
|
+
});
|
|
84
|
+
const batchLink = getBatchedLink(baseUri);
|
|
85
|
+
return new core_1.ApolloClient({
|
|
86
|
+
link: authLink.concat(retryLink.concat(batchLink)),
|
|
87
|
+
cache: new core_1.InMemoryCache(),
|
|
88
|
+
name: clientName,
|
|
89
|
+
version: clientVersion,
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
exports.initBatchedApolloClient = initBatchedApolloClient;
|
|
93
|
+
exports.default = initApolloClient;
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdEFwb2xsb0NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvYXBvbGxvL2luaXRBcG9sbG9DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQTJHO0FBQzNHLGtFQUErQjtBQUMvQiw4REFBZ0M7QUFDaEMsd0RBQTZEO0FBQzdELCtEQUErRDtBQUUvRCx1REFBK0M7QUFDL0MsK0RBQWlFO0FBQ2pFLHFEQUFzRDtBQUN0RCxtREFBZ0Q7QUFFaEQsK0NBQW1FO0FBRW5FLDhEQUE4RDtBQUM5RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUVyRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO0lBQzdCLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxNQUFLLG1DQUFxQixDQUFDO0lBQ3pFLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7QUFDNUYsQ0FBQyxDQUFDO0FBRUYsU0FBUyxXQUFXLENBQUMsTUFBMEIsRUFBRSxVQUE4QjtJQUM3RSxNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckQsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNuQixPQUFPLEVBQUUsSUFBQSxvQ0FBbUIsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUM7U0FDMUUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Fwb2xsby90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -25,7 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
exports.intializeStiggDependencies = void 0;
|
|
26
26
|
const eventEmitter_1 = require("./services/eventEmitter");
|
|
27
27
|
const inMemoryCacheService_1 = require("./services/cache/inMemoryCacheService");
|
|
28
|
-
const initApolloClient_1 = __importStar(require("./api/initApolloClient"));
|
|
28
|
+
const initApolloClient_1 = __importStar(require("./api/apollo/initApolloClient"));
|
|
29
29
|
const redisEntitlementsService_1 = require("./services/redisEntitlementsService");
|
|
30
30
|
const redisCacheService_1 = require("./services/cache/redisCacheService");
|
|
31
31
|
const inMemoryEntitlementsService_1 = require("./services/inMemoryEntitlementsService");
|
|
@@ -56,4 +56,4 @@ const intializeStiggDependencies = (isPersistedCacheEnabled, sdkConfiguration, l
|
|
|
56
56
|
return { eventEmitter, entitlementsService, managementApi, sdkConfigurationApi };
|
|
57
57
|
};
|
|
58
58
|
exports.intializeStiggDependencies = intializeStiggDependencies;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50SW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDBEQUE0RDtBQUM1RCxnRkFBNkU7QUFFN0Usa0ZBQTBGO0FBQzFGLGtGQUErRTtBQUMvRSwwRUFBdUU7QUFDdkUsd0ZBQXFGO0FBQ3JGLHdFQUFnRDtBQUNoRCxvRkFBNEQ7QUFDNUQsNERBQXlEO0FBRWxELE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsdUJBQWdDLEVBQ2hDLGdCQUErQyxFQUMvQyxhQUE0QixFQUM1QixFQUFFO0lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQ0FBaUIsRUFBRSxDQUFDO0lBQzdDLElBQUksb0JBQW9CLEdBQWdDLElBQUksQ0FBQztJQUM3RCxJQUFJLG1CQUF3QyxDQUFDO0lBRTdDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtRQUM1QixvQkFBb0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FDM0Y7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixrQ0FDakMsZ0JBQWdCLEtBQ25CLFdBQVcsRUFBRSxDQUFBLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLFVBQVUsS0FBSSxPQUFPLENBQUMsT0FBTyxFQUNoRSxhQUFhLElBQ2IsQ0FBQztJQUVILE1BQU0sa0JBQWtCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNwRixNQUFNLGFBQWEsR0FBRyw2QkFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU1RSxJQUFJLHVCQUF1QixFQUFFO1FBQzNCLG1CQUFtQixHQUFHLElBQUksbURBQXdCLENBQ2hELElBQUkscUNBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUM1RCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixhQUFhLENBQ2QsQ0FBQztLQUNIO1NBQU0sSUFBSSxvQkFBb0IsRUFBRTtRQUMvQixtQkFBbUIsR0FBRyxJQUFJLHlEQUEyQixDQUNuRCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osYUFBYSxFQUNiLGFBQWEsQ0FDZCxDQUFDO0tBQ0g7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUM3QztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLDZCQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0FBQ25GLENBQUMsQ0FBQztBQS9DVyxRQUFBLDBCQUEwQiw4QkErQ3JDIn0=
|
package/dist/configuration.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ declare type ClientConfiguration = {
|
|
|
36
36
|
clientName?: string;
|
|
37
37
|
clientVersion?: string;
|
|
38
38
|
enableRemoteConfig?: boolean;
|
|
39
|
+
timeout?: number;
|
|
39
40
|
offline?: boolean;
|
|
40
41
|
};
|
|
41
42
|
declare function getConfiguration(configuration: Partial<ClientConfiguration>): Required<ClientConfiguration>;
|
package/dist/configuration.js
CHANGED
|
@@ -24,6 +24,7 @@ const defaults = () => {
|
|
|
24
24
|
logger: console,
|
|
25
25
|
logLevel: loggerService_1.LogLevel.ERROR,
|
|
26
26
|
},
|
|
27
|
+
timeout: 60000,
|
|
27
28
|
realtimeUpdatesEnabled: true,
|
|
28
29
|
enableEdge: true,
|
|
29
30
|
memoryCacheMaxSizeBytes: getDefaultMemoryCacheMaxSizeBytes(),
|
|
@@ -82,4 +83,4 @@ function validateConfiguration(configuration, loggerService) {
|
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
exports.validateConfiguration = validateConfiguration;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFvRTtBQUNwRSw0REFBcUY7QUFFckYsbUNBQStCO0FBRS9CLDRDQUFvQjtBQUVQLFFBQUEsZUFBZSxHQUFHLGdCQUFVLENBQUMsYUFBYSxDQUFDO0FBQzNDLFFBQUEsUUFBUSxHQUFHLGlCQUFpQixDQUFDO0FBRTFDLE1BQU0sYUFBYSxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQTJDeEQsU0FBUyxpQ0FBaUM7SUFDeEMsT0FBTyxZQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sUUFBUSxHQUFHLEdBQWlDLEVBQUU7SUFDbEQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsT0FBTztRQUNMLE9BQU87UUFDUCxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN4QixXQUFXLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsUUFBUSxFQUFFLHdCQUFRLENBQUMsS0FBSztTQUN6QjtRQUNELE9BQU8sRUFBRSxLQUFNO1FBQ2Ysc0JBQXNCLEVBQUUsSUFBSTtRQUM1QixVQUFVLEVBQUUsSUFBSTtRQUNoQix1QkFBdUIsRUFBRSxpQ0FBaUMsRUFBRTtRQUM1RCxrQkFBa0IsRUFBRSxJQUFJO0tBQ3pCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLEdBQStCLEVBQUUsQ0FBQyxDQUFDO0lBQzdELGNBQWMsRUFBRSxLQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUVILFNBQVMsZ0JBQWdCLENBQUMsYUFBMkM7SUFDbkUsTUFBTSxhQUFhLEdB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
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.withErrorHandling = void 0;
|
|
4
|
+
const core_1 = require("@apollo/client/core");
|
|
4
5
|
const lodash_1 = require("lodash");
|
|
6
|
+
const TimeoutLink_1 = require("../api/apollo/TimeoutLink");
|
|
5
7
|
class ExtendedError extends Error {
|
|
6
8
|
constructor(message, errorCode, traceId) {
|
|
7
9
|
super(message);
|
|
@@ -35,14 +37,15 @@ async function withErrorHandling(func, loggerService, { errorMessagePrefix, reth
|
|
|
35
37
|
}
|
|
36
38
|
catch (err) {
|
|
37
39
|
const { errorMessage, errorCode, traceId } = extractErrorData(err);
|
|
38
|
-
if (rethrowError) {
|
|
39
|
-
throw new ExtendedError(`${errorMessagePrefix}: ${errorMessage}`, errorCode, traceId);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
40
|
+
if (!rethrowError) {
|
|
42
41
|
loggerService.error(`${errorMessagePrefix}: ${err.stack || err.message}`);
|
|
43
42
|
return undefined;
|
|
44
43
|
}
|
|
44
|
+
if (err instanceof core_1.ApolloError && (err === null || err === void 0 ? void 0 : err.message) === TimeoutLink_1.TIMEOUT_ERROR_MESSAGE) {
|
|
45
|
+
throw new ExtendedError(`${errorMessagePrefix}: Request timed out`, 'RequestTimeout');
|
|
46
|
+
}
|
|
47
|
+
throw new ExtendedError(`${errorMessagePrefix}: ${errorMessage}`, errorCode, traceId);
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
exports.withErrorHandling = withErrorHandling;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpRXJyb3JIYW5kbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcGlFcnJvckhhbmRsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUFrRDtBQUNsRCxtQ0FBaUM7QUFHakMsMkRBQWtFO0FBRWxFLE1BQU0sYUFBYyxTQUFRLEtBQUs7SUFJL0IsWUFBWSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxPQUFnQjtRQUMvRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFXRCxTQUFTLGdCQUFnQixDQUFDLEdBQXdCOztJQUNoRCxJQUFJLFlBQVksR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztJQUNsRCxJQUFJLFNBQTZCLENBQUM7SUFDbEMsSUFBSSxPQUEyQixDQUFDO0lBRWhDLE1BQU0sV0FBVyxHQUFHLEdBQWtCLENBQUM7SUFDdkMsSUFBSSxDQUFDLElBQUEsZ0JBQU8sRUFBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxTQUFTLEdBQUcsTUFBQSxRQUFRLENBQUMsVUFBVSwwQ0FBRSxJQUFjLENBQUM7UUFDaEQsT0FBTyxHQUFHLE1BQUEsUUFBUSxDQUFDLFVBQVUsMENBQUUsT0FBaUIsQ0FBQztLQUNsRDtTQUFNLElBQUksQ0FBQyxJQUFBLGdCQUFPLEVBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzdDLHNFQUFzRTtRQUN0RSxNQUFNLE9BQU8sR0FBRyxDQUFBLE1BQUEsTUFBQSxXQUFXLENBQUMsWUFBWSwwQ0FBRSxNQUFNLDBDQUFFLE1BQU0sTUFBSSxNQUFBLE1BQUEsTUFBQSxXQUFXLENBQUMsWUFBWSwwQ0FBRSxNQUFNLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsMENBQUUsT0FBTyxDQUFBLENBQUM7UUFDakgsWUFBWSxHQUFHLE9BQU8sS0FBSSxNQUFBLFdBQVcsQ0FBQyxZQUFZLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLGVBQWUsQ0FBQztLQUNoRjtJQUVELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzlDLENBQUM7QUFtQkQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixJQUFzQixFQUN0QixhQUE0QixFQUM1QixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBMEI7SUFFNUQsSUFBSTtRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUFDLE9BQU8sR0FBUSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLGtCQUFrQixLQUFLLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUUsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLEdBQUcsWUFBWSxrQkFBVyxJQUFJLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE9BQU8sTUFBSyxtQ0FBcUIsRUFBRTtZQUN4RSxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUcsa0JBQWtCLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDdkY7UUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUcsa0JBQWtCLEtBQUssWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZGO0FBQ0gsQ0FBQztBQUVRLDhDQUFpQiJ9
|
package/package.json
CHANGED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.initBatchedApolloClient = void 0;
|
|
7
|
-
const core_1 = require("@apollo/client/core");
|
|
8
|
-
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
9
|
-
const graphql_1 = require("graphql");
|
|
10
|
-
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
11
|
-
const utilities_1 = require("@apollo/client/utilities");
|
|
12
|
-
const graphql_ws_1 = require("graphql-ws");
|
|
13
|
-
const core_2 = require("@apollo/client/core");
|
|
14
|
-
const batch_http_1 = require("@apollo/client/link/batch-http");
|
|
15
|
-
const configuration_1 = require("../configuration");
|
|
16
|
-
const requestHeaders_1 = require("../utils/requestHeaders");
|
|
17
|
-
const retry_1 = require("@apollo/client/link/retry");
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
19
|
-
const packageJson = require('../../package.json');
|
|
20
|
-
class WebSocketLink extends core_1.ApolloLink {
|
|
21
|
-
constructor(options, loggerService) {
|
|
22
|
-
super();
|
|
23
|
-
this.loggerService = loggerService;
|
|
24
|
-
this.client = (0, graphql_ws_1.createClient)(Object.assign({}, options));
|
|
25
|
-
}
|
|
26
|
-
request(operation) {
|
|
27
|
-
return new core_2.Observable((sink) => {
|
|
28
|
-
return this.client.subscribe(Object.assign(Object.assign({}, operation), { query: (0, graphql_1.print)(operation.query) }), {
|
|
29
|
-
next: sink.next.bind(sink),
|
|
30
|
-
complete: sink.complete.bind(sink),
|
|
31
|
-
error: (error) => {
|
|
32
|
-
const errorReason = error.message || error.reason;
|
|
33
|
-
if (errorReason.includes('ThrottlerException')) {
|
|
34
|
-
this.loggerService.log(`Websocket disconnected. reason: Throttle error`);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
// Error can be also a close event.
|
|
38
|
-
this.loggerService.error(`Websocket disconnected. reason: ${errorReason || 'connection closed'}`);
|
|
39
|
-
}
|
|
40
|
-
sink.error(error);
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const retryIf = (error) => {
|
|
47
|
-
const doNotRetryCodes = [500, 400];
|
|
48
|
-
return !!error && !doNotRetryCodes.includes(error.statusCode);
|
|
49
|
-
};
|
|
50
|
-
function getAuthLink(apiKey, instanceId) {
|
|
51
|
-
const authLink = new core_1.ApolloLink((operation, forward) => {
|
|
52
|
-
operation.setContext({
|
|
53
|
-
headers: (0, requestHeaders_1.buildRequestHeaders)(apiKey, instanceId, operation.operationName),
|
|
54
|
-
});
|
|
55
|
-
return forward(operation);
|
|
56
|
-
});
|
|
57
|
-
return authLink;
|
|
58
|
-
}
|
|
59
|
-
function getHttpLink(baseUri) {
|
|
60
|
-
const httpLink = new core_1.HttpLink({
|
|
61
|
-
uri: `${baseUri}/graphql`,
|
|
62
|
-
fetch: cross_fetch_1.default,
|
|
63
|
-
});
|
|
64
|
-
return httpLink;
|
|
65
|
-
}
|
|
66
|
-
function getWsLink(wsUrl, onConnected, apiKey, loggerService) {
|
|
67
|
-
return new WebSocketLink({
|
|
68
|
-
retryAttempts: Infinity,
|
|
69
|
-
isFatalConnectionProblem: () => false,
|
|
70
|
-
connectionAckWaitTimeout: Infinity,
|
|
71
|
-
keepAlive: 10000,
|
|
72
|
-
url: `${wsUrl}/graphql`,
|
|
73
|
-
on: {
|
|
74
|
-
connected: onConnected,
|
|
75
|
-
},
|
|
76
|
-
webSocketImpl: isomorphic_ws_1.default,
|
|
77
|
-
connectionParams: {
|
|
78
|
-
headers: (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId()),
|
|
79
|
-
},
|
|
80
|
-
}, loggerService);
|
|
81
|
-
}
|
|
82
|
-
const initApolloClient = ({ apiKey, baseUri, wsUrl, onConnected, loggerService, clientName = configuration_1.SDK_NAME, clientVersion = packageJson.version, }) => {
|
|
83
|
-
const authLink = getAuthLink(apiKey, loggerService.getInstanceId());
|
|
84
|
-
const httpLink = getHttpLink(baseUri);
|
|
85
|
-
const retryLink = new retry_1.RetryLink({
|
|
86
|
-
attempts: { max: 5, retryIf },
|
|
87
|
-
delay: { initial: 500, max: 2000, jitter: true },
|
|
88
|
-
});
|
|
89
|
-
const wsLink = getWsLink(wsUrl, onConnected, apiKey, loggerService);
|
|
90
|
-
const splitLink = (0, core_1.split)(({ query }) => {
|
|
91
|
-
const definition = (0, utilities_1.getMainDefinition)(query);
|
|
92
|
-
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';
|
|
93
|
-
}, wsLink, retryLink.concat(httpLink));
|
|
94
|
-
return new core_1.ApolloClient({
|
|
95
|
-
link: authLink.concat(splitLink),
|
|
96
|
-
cache: new core_1.InMemoryCache(),
|
|
97
|
-
name: clientName,
|
|
98
|
-
version: clientVersion,
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
function getBatchedLink(baseUri) {
|
|
102
|
-
return new batch_http_1.BatchHttpLink({ uri: `${baseUri}/graphql`, batchMax: 25, batchInterval: 500, fetch: cross_fetch_1.default });
|
|
103
|
-
}
|
|
104
|
-
const initBatchedApolloClient = ({ apiKey, baseUri, clientName = configuration_1.SDK_NAME, clientVersion = packageJson.version }, loggerService) => {
|
|
105
|
-
const authLink = getAuthLink(apiKey, loggerService.getInstanceId());
|
|
106
|
-
const retryLink = new retry_1.RetryLink({
|
|
107
|
-
attempts: { max: 5, retryIf },
|
|
108
|
-
delay: { initial: 500, max: 2000, jitter: true },
|
|
109
|
-
});
|
|
110
|
-
const batchLink = getBatchedLink(baseUri);
|
|
111
|
-
return new core_1.ApolloClient({
|
|
112
|
-
link: authLink.concat(retryLink.concat(batchLink)),
|
|
113
|
-
cache: new core_1.InMemoryCache(),
|
|
114
|
-
name: clientName,
|
|
115
|
-
version: clientVersion,
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
exports.initBatchedApolloClient = initBatchedApolloClient;
|
|
119
|
-
exports.default = initApolloClient;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdEFwb2xsb0NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvaW5pdEFwb2xsb0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBdUg7QUFDdkgsa0VBQStCO0FBQy9CLHFDQUFnQztBQUNoQyw4REFBZ0M7QUFDaEMsd0RBQTZEO0FBQzdELDJDQUFpRTtBQUNqRSw4Q0FBaUQ7QUFDakQsK0RBQStEO0FBRS9ELG9EQUE0QztBQUM1Qyw0REFBOEQ7QUFDOUQscURBQXNEO0FBRXRELDhEQUE4RDtBQUM5RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQVVsRCxNQUFNLGFBQWMsU0FBUSxpQkFBVTtJQUdwQyxZQUFZLE9BQXNCLEVBQW1CLGFBQTRCO1FBQy9FLEtBQUssRUFBRSxDQUFDO1FBRDJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRS9FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBQSx5QkFBWSxvQkFDckIsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTyxDQUFDLFNBQW9CO1FBQ2pDLE9BQU8sSUFBSSxpQkFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsaUNBQ3JCLFNBQVMsS0FBRSxLQUFLLEVBQUUsSUFBQSxlQUFLLEVBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUM3QztnQkFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtvQkFDcEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNs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
|