@chainlink/external-adapter-framework 0.5.6 → 0.5.41
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/adapter/basic.d.ts +1 -1
- package/adapter/basic.js +23 -6
- package/adapter/basic.js.map +1 -1
- package/adapter/types.d.ts +7 -6
- package/background-executor.js +2 -1
- package/background-executor.js.map +1 -1
- package/cache/index.d.ts +6 -5
- package/cache/index.js +5 -5
- package/cache/index.js.map +1 -1
- package/config/index.d.ts +9 -10
- package/config/index.js +9 -17
- package/config/index.js.map +1 -1
- package/examples/bank-frick/config/index.d.ts +5 -0
- package/examples/bank-frick/config/index.js +5 -0
- package/examples/bank-frick/config/index.js.map +1 -1
- package/examples/coingecko/src/config/index.d.ts +7 -0
- package/examples/coingecko/src/config/index.js +8 -1
- package/examples/coingecko/src/config/index.js.map +1 -1
- package/examples/coingecko/src/crypto-utils.d.ts +4 -3
- package/examples/coingecko/src/crypto-utils.js.map +1 -1
- package/examples/coingecko/src/endpoint/coins.d.ts +2 -2
- package/examples/coingecko/src/endpoint/coins.js.map +1 -1
- package/examples/coingecko/src/global-utils.d.ts +2 -2
- package/examples/coingecko/src/global-utils.js.map +1 -1
- package/examples/coingecko/src/index.js +2 -0
- package/examples/coingecko/src/index.js.map +1 -1
- package/examples/cryptocompare/src/config/index.d.ts +7 -0
- package/examples/cryptocompare/src/config/index.js +8 -1
- package/examples/cryptocompare/src/config/index.js.map +1 -1
- package/examples/cryptocompare/src/endpoints/crypto.d.ts +2 -2
- package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -1
- package/examples/cryptocompare/src/index.js +2 -0
- package/examples/cryptocompare/src/index.js.map +1 -1
- package/examples/genesis/config/index.d.ts +5 -0
- package/examples/genesis/config/index.js +5 -0
- package/examples/genesis/config/index.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js.map +1 -1
- package/metrics/util.d.ts +3 -3
- package/metrics/util.js +2 -2
- package/metrics/util.js.map +1 -1
- package/package.json +3 -5
- package/transports/batch-warming.d.ts +10 -6
- package/transports/batch-warming.js +2 -2
- package/transports/batch-warming.js.map +1 -1
- package/transports/index.d.ts +3 -3
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +2 -2
- package/transports/metrics.js.map +1 -1
- package/transports/rest.d.ts +15 -20
- package/transports/rest.js +8 -5
- package/transports/rest.js.map +1 -1
- package/transports/routing.js +4 -8
- package/transports/routing.js.map +1 -1
- package/transports/sse.d.ts +6 -6
- package/transports/sse.js.map +1 -1
- package/transports/util.d.ts +3 -1
- package/transports/util.js +69 -39
- package/transports/util.js.map +1 -1
- package/transports/websocket.d.ts +12 -8
- package/transports/websocket.js +34 -23
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +0 -1
- package/util/index.js +1 -5
- package/util/index.js.map +1 -1
- package/validation/index.js +3 -2
- package/validation/index.js.map +1 -1
package/transports/util.js
CHANGED
|
@@ -30,58 +30,88 @@ exports.axiosRequest = void 0;
|
|
|
30
30
|
const axios_1 = __importDefault(require("axios"));
|
|
31
31
|
const error_1 = require("../validation/error");
|
|
32
32
|
const transportMetrics = __importStar(require("./metrics"));
|
|
33
|
+
const util_1 = require("../util");
|
|
33
34
|
/**
|
|
34
35
|
* Performs axios request along with metrics recording and error handling
|
|
35
36
|
*
|
|
36
37
|
* @param request - axios request config
|
|
38
|
+
* @param config - the adapter config containing the env vars
|
|
39
|
+
* @param checkForRateLimit - async function to check and wait for rate limit
|
|
37
40
|
* @returns axios response for the request
|
|
38
41
|
*/
|
|
39
|
-
async function axiosRequest(request, config) {
|
|
42
|
+
async function axiosRequest(request, config, checkForRateLimit) {
|
|
40
43
|
const responseTimer = transportMetrics.dataProviderRequestDurationSeconds.startTimer();
|
|
41
44
|
let providerResponse;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
const maxRetries = config.RETRY;
|
|
46
|
+
const initialExponent = 1;
|
|
47
|
+
const retry = async (exponent) => {
|
|
48
|
+
const _exponentialDelayRetry = async (exp) => {
|
|
49
|
+
await (0, util_1.sleep)((2 ** exp + Math.random()) * 1000);
|
|
50
|
+
if (checkForRateLimit) {
|
|
51
|
+
await checkForRateLimit();
|
|
52
|
+
}
|
|
53
|
+
return retry(exp + 1);
|
|
54
|
+
};
|
|
55
|
+
try {
|
|
56
|
+
request.timeout = config.API_TIMEOUT;
|
|
57
|
+
providerResponse = await axios_1.default.request(request);
|
|
55
58
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
catch (e) {
|
|
60
|
+
const error = e;
|
|
61
|
+
// Request error
|
|
62
|
+
let providerStatusCode;
|
|
63
|
+
let adapterError;
|
|
64
|
+
if (error.code === 'ECONNABORTED') {
|
|
65
|
+
providerStatusCode = error?.response?.status ?? 504;
|
|
66
|
+
adapterError = new error_1.AdapterTimeoutError({
|
|
67
|
+
statusCode: 504,
|
|
68
|
+
name: 'Data Provider Request Timeout error',
|
|
69
|
+
providerStatusCode: error?.response?.status ?? 504,
|
|
70
|
+
message: error?.message,
|
|
71
|
+
cause: error,
|
|
72
|
+
errorResponse: error?.response?.data,
|
|
73
|
+
url: request.url,
|
|
74
|
+
});
|
|
75
|
+
// Record count of failed data provider request
|
|
76
|
+
transportMetrics.dataProviderRequests
|
|
77
|
+
.labels(transportMetrics.dataProviderMetricsLabel(providerStatusCode, request.method))
|
|
78
|
+
.inc();
|
|
79
|
+
throw adapterError;
|
|
80
|
+
}
|
|
81
|
+
if (exponent >= maxRetries) {
|
|
82
|
+
if (error?.response?.status) {
|
|
83
|
+
adapterError = new error_1.AdapterDataProviderError({});
|
|
84
|
+
providerStatusCode = error?.response?.status;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
adapterError = new error_1.AdapterConnectionError({});
|
|
88
|
+
providerStatusCode = 0; // 0 -> connection error
|
|
89
|
+
}
|
|
90
|
+
// Record count of failed data provider request
|
|
91
|
+
transportMetrics.dataProviderRequests
|
|
92
|
+
.labels(transportMetrics.dataProviderMetricsLabel(providerStatusCode, request.method))
|
|
93
|
+
.inc();
|
|
94
|
+
adapterError.statusCode = 200;
|
|
95
|
+
adapterError.providerStatusCode = providerStatusCode;
|
|
96
|
+
adapterError.message = error?.message;
|
|
97
|
+
adapterError.cause = error;
|
|
98
|
+
adapterError.errorResponse = error?.response?.data;
|
|
99
|
+
adapterError.url = request.url;
|
|
100
|
+
throw adapterError;
|
|
101
|
+
}
|
|
102
|
+
return _exponentialDelayRetry(exponent);
|
|
59
103
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
104
|
+
finally {
|
|
105
|
+
// Record time taken for data provider request for success or failure
|
|
106
|
+
responseTimer();
|
|
63
107
|
}
|
|
64
|
-
// Record count of
|
|
108
|
+
// Record count of successful data provider requests
|
|
65
109
|
transportMetrics.dataProviderRequests
|
|
66
|
-
.labels(transportMetrics.dataProviderMetricsLabel(
|
|
110
|
+
.labels(transportMetrics.dataProviderMetricsLabel(providerResponse.status, request.method))
|
|
67
111
|
.inc();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
adapterError.cause = error;
|
|
72
|
-
adapterError.errorResponse = error?.response?.data;
|
|
73
|
-
adapterError.url = request.url;
|
|
74
|
-
throw adapterError;
|
|
75
|
-
}
|
|
76
|
-
finally {
|
|
77
|
-
// Record time taken for data provider request for success or failure
|
|
78
|
-
responseTimer();
|
|
79
|
-
}
|
|
80
|
-
// Record count of successful data provider requests
|
|
81
|
-
transportMetrics.dataProviderRequests
|
|
82
|
-
.labels(transportMetrics.dataProviderMetricsLabel(providerResponse.status, request.method))
|
|
83
|
-
.inc();
|
|
84
|
-
return providerResponse;
|
|
112
|
+
return providerResponse;
|
|
113
|
+
};
|
|
114
|
+
return retry(initialExponent);
|
|
85
115
|
}
|
|
86
116
|
exports.axiosRequest = axiosRequest;
|
|
87
117
|
//# sourceMappingURL=util.js.map
|
package/transports/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/transports/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4E;AAE5E,+CAK4B;AAC5B,4DAA6C;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/transports/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import WebSocket, { ClientOptions, RawData } from 'ws';
|
|
2
|
-
import {
|
|
2
|
+
import { EndpointContext, AdapterDependencies } from '../adapter';
|
|
3
3
|
import { Cache } from '../cache';
|
|
4
4
|
import { AdapterConfig } from '../config';
|
|
5
5
|
import { BackgroundExecuteRateLimiter } from '../rate-limiting';
|
|
@@ -18,18 +18,19 @@ export declare class WebSocketClassProvider {
|
|
|
18
18
|
*/
|
|
19
19
|
export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics> {
|
|
20
20
|
/** Endpoint to which to open the WS connection*/
|
|
21
|
-
url: (context:
|
|
21
|
+
url: (context: EndpointContext<T>) => Promise<string> | string;
|
|
22
22
|
/** Optional parameters used when establishing the WebSocket connection */
|
|
23
|
-
options?: (context:
|
|
23
|
+
options?: (context: EndpointContext<T>) => Promise<ClientOptions> | ClientOptions;
|
|
24
24
|
/** Map of handlers for different WS lifecycle events */
|
|
25
25
|
handlers: {
|
|
26
26
|
/**
|
|
27
|
-
* Handles when the WS is successfully opened
|
|
27
|
+
* Handles when the WS is successfully opened.
|
|
28
|
+
* Optional since logic is not always needed on connection.
|
|
28
29
|
*
|
|
29
30
|
* @param wsConnection - the WebSocket with an established connection
|
|
30
31
|
* @returns an empty Promise, or void
|
|
31
32
|
*/
|
|
32
|
-
open
|
|
33
|
+
open?: (wsConnection: WebSocket, context: EndpointContext<T>) => Promise<void> | void;
|
|
33
34
|
/**
|
|
34
35
|
* Handles when the WS receives a message
|
|
35
36
|
*
|
|
@@ -37,7 +38,7 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
|
|
|
37
38
|
* @param context - the background context for the Adapter
|
|
38
39
|
* @returns a list of cache entries of adapter responses to set in the cache
|
|
39
40
|
*/
|
|
40
|
-
message: (message: T['Provider']['WsMessage'], context:
|
|
41
|
+
message: (message: T['Provider']['WsMessage'], context: EndpointContext<T>) => ProviderResult<T>[] | undefined;
|
|
41
42
|
};
|
|
42
43
|
/** Map of "builders", functions that will be used to prepare specific WS messages */
|
|
43
44
|
builders: {
|
|
@@ -85,11 +86,14 @@ export declare class WebSocketTransport<T extends WebsocketTransportGenerics> im
|
|
|
85
86
|
subscriptionSet: SubscriptionSet<T['Request']['Params']>;
|
|
86
87
|
localSubscriptions: T['Request']['Params'][];
|
|
87
88
|
wsConnection: WebSocket;
|
|
89
|
+
currentUrl: string;
|
|
88
90
|
constructor(config: WebSocketTransportConfig<T>);
|
|
89
91
|
initialize(dependencies: AdapterDependencies, config: AdapterConfig<T['CustomSettings']>, endpointName: string): Promise<void>;
|
|
90
92
|
registerRequest(req: AdapterRequest<T['Request']>, config: AdapterConfig<T['CustomSettings']>): Promise<void>;
|
|
93
|
+
connectionClosed(): boolean;
|
|
91
94
|
serializeMessage(payload: unknown): string;
|
|
92
95
|
deserializeMessage(data: WebSocket.Data): T['Provider']['WsMessage'];
|
|
93
|
-
establishWsConnection(context:
|
|
94
|
-
|
|
96
|
+
establishWsConnection(context: EndpointContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<unknown>;
|
|
97
|
+
sendMessages(context: EndpointContext<T>, subscribes: unknown[], unsubscribes: unknown[]): Promise<void>;
|
|
98
|
+
backgroundExecute(context: EndpointContext<T>): Promise<number>;
|
|
95
99
|
}
|
package/transports/websocket.js
CHANGED
|
@@ -55,6 +55,7 @@ class WebSocketTransport {
|
|
|
55
55
|
// The double sets serve to create a simple polling mechanism instead of needing a subscription
|
|
56
56
|
// This one would not; this is always local state
|
|
57
57
|
this.localSubscriptions = [];
|
|
58
|
+
this.currentUrl = "";
|
|
58
59
|
}
|
|
59
60
|
async initialize(dependencies, config, endpointName) {
|
|
60
61
|
this.cache = dependencies.cache;
|
|
@@ -65,6 +66,9 @@ class WebSocketTransport {
|
|
|
65
66
|
logger.debug(`Adding entry to subscription set (ttl: ${config.WS_SUBSCRIPTION_TTL}): [${req.requestContext.cacheKey}] = ${req.requestContext.data}`);
|
|
66
67
|
await this.subscriptionSet.add(req.requestContext.cacheKey, req.requestContext.data, config.WS_SUBSCRIPTION_TTL);
|
|
67
68
|
}
|
|
69
|
+
connectionClosed() {
|
|
70
|
+
return !this.wsConnection || this.wsConnection.readyState === ws_1.default.CLOSED;
|
|
71
|
+
}
|
|
68
72
|
serializeMessage(payload) {
|
|
69
73
|
return typeof payload === 'string' ? payload : JSON.stringify(payload);
|
|
70
74
|
}
|
|
@@ -77,15 +81,17 @@ class WebSocketTransport {
|
|
|
77
81
|
this.wsConnection = new ctor(url, undefined, options);
|
|
78
82
|
this.wsConnection.addEventListener('open', async (event) => {
|
|
79
83
|
logger.debug(`Opened websocket connection. (event type ${event.type})`);
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
if (this.config.handlers.open) {
|
|
85
|
+
await this.config.handlers.open(this.wsConnection, context);
|
|
86
|
+
logger.debug('Successfully executed connection opened handler');
|
|
87
|
+
}
|
|
82
88
|
// Record active ws connections by incrementing count on open
|
|
83
89
|
transportMetrics.wsConnectionActive.inc();
|
|
84
90
|
resolve(true);
|
|
85
91
|
});
|
|
86
92
|
this.wsConnection.addEventListener('message', async (event) => {
|
|
87
93
|
const parsed = this.deserializeMessage(event.data);
|
|
88
|
-
logger.trace(`Got ws message: ${
|
|
94
|
+
logger.trace(`Got ws message: ${event.data}`);
|
|
89
95
|
const results = this.config.handlers.message(parsed, context);
|
|
90
96
|
if (Array.isArray(results)) {
|
|
91
97
|
const responses = (0, _1.buildCacheEntriesFromResults)(results, context);
|
|
@@ -108,23 +114,25 @@ class WebSocketTransport {
|
|
|
108
114
|
});
|
|
109
115
|
});
|
|
110
116
|
}
|
|
117
|
+
async sendMessages(context, subscribes, unsubscribes) {
|
|
118
|
+
const serializedSubscribes = subscribes.map(this.serializeMessage);
|
|
119
|
+
const serializedUnsubscribes = unsubscribes.map(this.serializeMessage);
|
|
120
|
+
const messages = serializedSubscribes.concat(serializedUnsubscribes);
|
|
121
|
+
for (const message of messages) {
|
|
122
|
+
this.wsConnection.send(message);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
111
125
|
// Unlike cache warming, this execute will manage subscriptions
|
|
112
126
|
async backgroundExecute(context) {
|
|
113
127
|
logger.debug('Starting background execute, getting subscriptions from sorted set');
|
|
114
128
|
const desiredSubs = await this.subscriptionSet.getAll();
|
|
115
129
|
// Keep track of active subscriptions for background execute
|
|
116
130
|
transportMetrics.bgExecuteSubscriptionSetCount
|
|
117
|
-
.labels({ endpoint: context.
|
|
131
|
+
.labels({ endpoint: context.endpointName, transport_type: 'websocket' })
|
|
118
132
|
.set(desiredSubs.length);
|
|
119
133
|
logger.debug('Generating delta (subscribes & unsubscribes)');
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
.map(this.config.builders.subscribeMessage)
|
|
123
|
-
.map(this.serializeMessage);
|
|
124
|
-
const unsubscribeParams = this.localSubscriptions.filter((s) => !desiredSubs.map((ds) => JSON.stringify(ds)).includes(JSON.stringify(s)));
|
|
125
|
-
const unsubscribes = unsubscribeParams
|
|
126
|
-
.map(this.config.builders.unsubscribeMessage)
|
|
127
|
-
.map(this.serializeMessage);
|
|
134
|
+
const subscribes = desiredSubs.filter((s) => !this.localSubscriptions.map((ls) => JSON.stringify(ls)).includes(JSON.stringify(s)));
|
|
135
|
+
const unsubscribes = this.localSubscriptions.filter((s) => !desiredSubs.map((ds) => JSON.stringify(ds)).includes(JSON.stringify(s)));
|
|
128
136
|
logger.debug(`${subscribes.length} new subscriptions; ${unsubscribes.length} to unsubscribe`);
|
|
129
137
|
if (subscribes.length) {
|
|
130
138
|
logger.trace(`Will subscribe to: ${subscribes}`);
|
|
@@ -138,26 +146,29 @@ class WebSocketTransport {
|
|
|
138
146
|
// No new subs && connection -> unsubs only
|
|
139
147
|
if (!subscribes.length && !this.wsConnection) {
|
|
140
148
|
logger.debug('No entries in subscription set and no established connection, skipping');
|
|
141
|
-
return this.rateLimiter.msUntilNextExecution(context.
|
|
149
|
+
return this.rateLimiter.msUntilNextExecution(context.endpointName);
|
|
142
150
|
}
|
|
143
|
-
|
|
151
|
+
const urlFromConfig = await this.config.url(context);
|
|
152
|
+
const urlChanged = this.currentUrl === urlFromConfig;
|
|
153
|
+
logger.debug(`Got ${urlFromConfig} from the transport's url function`);
|
|
154
|
+
if ((this.connectionClosed() && subscribes.length) || urlChanged) {
|
|
155
|
+
if (!this.connectionClosed() && urlChanged) {
|
|
156
|
+
logger.info(`websocket url has changed from ${this.currentUrl} to ${calculatedUrl}, reconnecting...`);
|
|
157
|
+
this.wsConnection.close();
|
|
158
|
+
this.currentUrl = urlFromConfig;
|
|
159
|
+
}
|
|
144
160
|
logger.debug('No established connection and new subscriptions available, connecting to WS');
|
|
145
|
-
const url = context.adapterConfig.WS_API_ENDPOINT || (await this.config.url(context));
|
|
146
161
|
const options = this.config.options && (await this.config.options(context));
|
|
147
|
-
await this.establishWsConnection(context,
|
|
162
|
+
await this.establishWsConnection(context, this.currentUrl, options);
|
|
148
163
|
}
|
|
149
164
|
logger.debug('Sending subs/unsubs if there are any');
|
|
150
|
-
|
|
151
|
-
for (const message of messages) {
|
|
152
|
-
logger.trace(`Sending message: ${JSON.stringify(message)}`);
|
|
153
|
-
this.wsConnection.send(message);
|
|
154
|
-
}
|
|
165
|
+
await this.sendMessages(context, subscribes.map(this.config.builders.subscribeMessage), unsubscribes.map(this.config.builders.unsubscribeMessage));
|
|
155
166
|
// Record WS message and subscription metrics
|
|
156
|
-
transportMetrics.recordWsMessageMetrics(context,
|
|
167
|
+
transportMetrics.recordWsMessageMetrics(context, subscribes, unsubscribes);
|
|
157
168
|
logger.debug('Setting local state to cache value');
|
|
158
169
|
this.localSubscriptions = desiredSubs;
|
|
159
170
|
logger.debug('Background execute complete');
|
|
160
|
-
return this.rateLimiter.msUntilNextExecution(context.
|
|
171
|
+
return this.rateLimiter.msUntilNextExecution(context.endpointName);
|
|
161
172
|
}
|
|
162
173
|
}
|
|
163
174
|
exports.WebSocketTransport = WebSocketTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAsD;AAW7C,oBAXF,YAAS,CAWE;AANlB,kCAAqD;AAErD,yBAA+E;AAC/E,4DAA6C;AAK7C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,oBAAoB,CAAC,CAAA;AAQ/C,MAAa,sBAAsB;IAGjC,MAAM,CAAC,GAAG,CAAC,IAAoB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;;AATH,wDAUC;AATQ,2BAAI,GAAmB,YAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":"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"}
|
package/util/index.d.ts
CHANGED
|
@@ -10,5 +10,4 @@ export declare const sleep: (ms: number) => Promise<void>;
|
|
|
10
10
|
export declare const isObject: (o: unknown) => boolean;
|
|
11
11
|
export declare const isArray: (o: unknown) => boolean;
|
|
12
12
|
export declare const isEmpty: (o: unknown) => boolean;
|
|
13
|
-
export declare function isArraylikeAccessor(x: unknown[]): x is [number];
|
|
14
13
|
export declare type PromiseOrValue<T> = Promise<T> | T;
|
package/util/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
18
18
|
__exportStar(require("./request"), exports);
|
|
19
19
|
__exportStar(require("./logger"), exports);
|
|
20
20
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
@@ -35,8 +35,4 @@ const isArray = (o) => o !== null && typeof o === 'object' && Array.isArray(o);
|
|
|
35
35
|
exports.isArray = isArray;
|
|
36
36
|
const isEmpty = (o) => o === undefined || o === null || o === '';
|
|
37
37
|
exports.isEmpty = isEmpty;
|
|
38
|
-
function isArraylikeAccessor(x) {
|
|
39
|
-
return x.length === 1 && x.every((i) => typeof i === 'number');
|
|
40
|
-
}
|
|
41
|
-
exports.isArraylikeAccessor = isArraylikeAccessor;
|
|
42
38
|
//# sourceMappingURL=index.js.map
|
package/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,KAAK,SAIjB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,KAAK,SAIjB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE"}
|
package/validation/index.js
CHANGED
|
@@ -49,7 +49,7 @@ const validatorMiddleware = (adapter) => (req, reply, done) => {
|
|
|
49
49
|
// Add metrics meta which includes feedId to the request
|
|
50
50
|
// Perform prior to overrides to maintain consistent Feed IDs across adapters
|
|
51
51
|
const metrics = (0, util_1.getMetricsMeta)({
|
|
52
|
-
|
|
52
|
+
inputParameters: endpoint.inputParameters,
|
|
53
53
|
adapterConfig: adapter.config,
|
|
54
54
|
}, validatedData);
|
|
55
55
|
req.requestContext = { ...req.requestContext, meta: { metrics } };
|
|
@@ -69,7 +69,8 @@ const validatorMiddleware = (adapter) => (req, reply, done) => {
|
|
|
69
69
|
}
|
|
70
70
|
else {
|
|
71
71
|
req.requestContext.cacheKey = (0, cache_1.calculateCacheKey)({
|
|
72
|
-
|
|
72
|
+
endpointName: endpoint.name,
|
|
73
|
+
inputParameters: endpoint.inputParameters,
|
|
73
74
|
adapterConfig: adapter.config,
|
|
74
75
|
}, req.requestContext.data);
|
|
75
76
|
}
|
package/validation/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;AAEA,oCAA4C;AAC5C,0CAAgD;AAChD,kCAAoC;AAEpC,mCAAyD;AAGzD,MAAM,kBAAkB,GAAG,IAAA,iBAAU,EAAC,yBAAyB,CAAC,CAAA;AAEzD,MAAM,mBAAmB,GAC9B,CAAC,OAAgB,EAAE,EAAE,CACrB,CAAC,GAAmB,EAAE,KAAmB,EAAE,IAA6B,EAAE,EAAE;IAC1E,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,kBAAkB,EAAE;QACtD,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,oDAAoD;YAC7D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACb,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,oDAAoD;YAC7D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAqC,CAAA;IAE7D,kCAAkC;IAClC,MAAM,aAAa,GACjB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE;QACnC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE;QACzC,OAAO,CAAC,eAAe,CAAA;IACzB,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,0GAA0G;YACnH,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,yBAAiB,CAAC;YAC1B,OAAO,EAAE,4BAA4B,aAAa,aAAa;YAC/D,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAExE,GAAG,CAAC,cAAc,GAAG;QACnB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC5B,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE;QACjF,wDAAwD;QACxD,6EAA6E;QAC7E,MAAM,OAAO,GAAG,IAAA,qBAAc,EAC5B;YACE,eAAe,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
|