@chainlink/external-adapter-framework 0.5.6 → 0.5.40

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.
Files changed (67) hide show
  1. package/adapter/basic.d.ts +1 -1
  2. package/adapter/basic.js +23 -6
  3. package/adapter/basic.js.map +1 -1
  4. package/adapter/types.d.ts +5 -4
  5. package/background-executor.js +2 -1
  6. package/background-executor.js.map +1 -1
  7. package/cache/index.d.ts +6 -5
  8. package/cache/index.js +5 -5
  9. package/cache/index.js.map +1 -1
  10. package/config/index.d.ts +9 -10
  11. package/config/index.js +9 -17
  12. package/config/index.js.map +1 -1
  13. package/examples/bank-frick/config/index.d.ts +5 -0
  14. package/examples/bank-frick/config/index.js +5 -0
  15. package/examples/bank-frick/config/index.js.map +1 -1
  16. package/examples/coingecko/src/config/index.d.ts +7 -0
  17. package/examples/coingecko/src/config/index.js +8 -1
  18. package/examples/coingecko/src/config/index.js.map +1 -1
  19. package/examples/coingecko/src/crypto-utils.d.ts +4 -3
  20. package/examples/coingecko/src/crypto-utils.js.map +1 -1
  21. package/examples/coingecko/src/endpoint/coins.d.ts +2 -2
  22. package/examples/coingecko/src/endpoint/coins.js.map +1 -1
  23. package/examples/coingecko/src/global-utils.d.ts +2 -2
  24. package/examples/coingecko/src/global-utils.js.map +1 -1
  25. package/examples/coingecko/src/index.js +2 -0
  26. package/examples/coingecko/src/index.js.map +1 -1
  27. package/examples/cryptocompare/src/config/index.d.ts +7 -0
  28. package/examples/cryptocompare/src/config/index.js +8 -1
  29. package/examples/cryptocompare/src/config/index.js.map +1 -1
  30. package/examples/cryptocompare/src/endpoints/crypto.d.ts +2 -2
  31. package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -1
  32. package/examples/cryptocompare/src/index.js +2 -0
  33. package/examples/cryptocompare/src/index.js.map +1 -1
  34. package/examples/genesis/config/index.d.ts +5 -0
  35. package/examples/genesis/config/index.js +5 -0
  36. package/examples/genesis/config/index.js.map +1 -1
  37. package/index.d.ts +1 -1
  38. package/index.js.map +1 -1
  39. package/metrics/util.d.ts +3 -3
  40. package/metrics/util.js +2 -2
  41. package/metrics/util.js.map +1 -1
  42. package/package.json +3 -5
  43. package/transports/batch-warming.d.ts +10 -6
  44. package/transports/batch-warming.js +2 -2
  45. package/transports/batch-warming.js.map +1 -1
  46. package/transports/index.d.ts +3 -3
  47. package/transports/index.js.map +1 -1
  48. package/transports/metrics.d.ts +2 -2
  49. package/transports/metrics.js.map +1 -1
  50. package/transports/rest.d.ts +15 -20
  51. package/transports/rest.js +8 -5
  52. package/transports/rest.js.map +1 -1
  53. package/transports/routing.js +4 -8
  54. package/transports/routing.js.map +1 -1
  55. package/transports/sse.d.ts +6 -6
  56. package/transports/sse.js.map +1 -1
  57. package/transports/util.d.ts +3 -1
  58. package/transports/util.js +69 -39
  59. package/transports/util.js.map +1 -1
  60. package/transports/websocket.d.ts +8 -7
  61. package/transports/websocket.js +17 -6
  62. package/transports/websocket.js.map +1 -1
  63. package/util/index.d.ts +0 -1
  64. package/util/index.js +1 -5
  65. package/util/index.js.map +1 -1
  66. package/validation/index.js +3 -2
  67. package/validation/index.js.map +1 -1
@@ -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
- try {
43
- request.timeout = config.API_TIMEOUT;
44
- providerResponse = await axios_1.default.request(request);
45
- }
46
- catch (e) {
47
- const error = e;
48
- // Request error
49
- let providerStatusCode;
50
- let adapterError;
51
- if (error.code === 'ECONNABORTED') {
52
- adapterError = new error_1.AdapterTimeoutError({});
53
- providerStatusCode = error?.response?.status ?? 504;
54
- adapterError.name = 'Data Provider Request Timeout error';
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
- else if (error?.response?.status) {
57
- adapterError = new error_1.AdapterDataProviderError({});
58
- providerStatusCode = error?.response?.status;
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
- else {
61
- adapterError = new error_1.AdapterConnectionError({});
62
- providerStatusCode = 0; // 0 -> connection error
104
+ finally {
105
+ // Record time taken for data provider request for success or failure
106
+ responseTimer();
63
107
  }
64
- // Record count of failed data provider request
108
+ // Record count of successful data provider requests
65
109
  transportMetrics.dataProviderRequests
66
- .labels(transportMetrics.dataProviderMetricsLabel(providerStatusCode, request.method))
110
+ .labels(transportMetrics.dataProviderMetricsLabel(providerResponse.status, request.method))
67
111
  .inc();
68
- adapterError.statusCode = 200;
69
- adapterError.providerStatusCode = providerStatusCode;
70
- adapterError.message = error?.message;
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
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/transports/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4E;AAE5E,+CAK4B;AAC5B,4DAA6C;AAE7C;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAKhC,OAAgD,EAChD,MAAqC;IAErC,MAAM,aAAa,GAAG,gBAAgB,CAAC,kCAAkC,CAAC,UAAU,EAAE,CAAA;IACtF,IAAI,gBAAqD,CAAA;IACzD,IAAI;QACF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAA;QACpC,gBAAgB,GAAG,MAAM,eAAK,CAAC,OAAO,CAAuB,OAAO,CAAC,CAAA;KACtE;IAAC,OAAO,CAAU,EAAE;QACnB,MAAM,KAAK,GAAG,CAAe,CAAA;QAC7B,gBAAgB;QAChB,IAAI,kBAAsC,CAAA;QAC1C,IAAI,YAA0B,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE;YACjC,YAAY,GAAG,IAAI,2BAAmB,CAAC,EAAE,CAAC,CAAA;YAC1C,kBAAkB,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAA;YACnD,YAAY,CAAC,IAAI,GAAG,qCAAqC,CAAA;SAC1D;aAAM,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE;YAClC,YAAY,GAAG,IAAI,gCAAwB,CAAC,EAAE,CAAC,CAAA;YAC/C,kBAAkB,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAA;SAC7C;aAAM;YACL,YAAY,GAAG,IAAI,8BAAsB,CAAC,EAAE,CAAC,CAAA;YAC7C,kBAAkB,GAAG,CAAC,CAAA,CAAC,wBAAwB;SAChD;QACD,+CAA+C;QAC/C,gBAAgB,CAAC,oBAAoB;aAClC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aACrF,GAAG,EAAE,CAAA;QAER,YAAY,CAAC,UAAU,GAAG,GAAG,CAAA;QAC7B,YAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QACpD,YAAY,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAA;QACrC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;QAC1B,YAAY,CAAC,aAAa,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAA;QAClD,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QAE9B,MAAM,YAAY,CAAA;KACnB;YAAS;QACR,qEAAqE;QACrE,aAAa,EAAE,CAAA;KAChB;IAED,oDAAoD;IACpD,gBAAgB,CAAC,oBAAoB;SAClC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1F,GAAG,EAAE,CAAA;IAER,OAAO,gBAAgB,CAAA;AACzB,CAAC;AArDD,oCAqDC"}
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 { AdapterContext, AdapterDependencies } from '../adapter';
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,9 +18,9 @@ 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: AdapterContext<T>) => Promise<string> | string;
21
+ url: (context: EndpointContext<T>) => Promise<string> | string;
22
22
  /** Optional parameters used when establishing the WebSocket connection */
23
- options?: (context: AdapterContext<T>) => Promise<ClientOptions> | ClientOptions;
23
+ options?: (context: EndpointContext<T>) => Promise<ClientOptions> | ClientOptions;
24
24
  /** Map of handlers for different WS lifecycle events */
25
25
  handlers: {
26
26
  /**
@@ -29,7 +29,7 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
29
29
  * @param wsConnection - the WebSocket with an established connection
30
30
  * @returns an empty Promise, or void
31
31
  */
32
- open: (wsConnection: WebSocket, context: AdapterContext<T>) => Promise<void> | void;
32
+ open: (wsConnection: WebSocket, context: EndpointContext<T>) => Promise<void> | void;
33
33
  /**
34
34
  * Handles when the WS receives a message
35
35
  *
@@ -37,7 +37,7 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
37
37
  * @param context - the background context for the Adapter
38
38
  * @returns a list of cache entries of adapter responses to set in the cache
39
39
  */
40
- message: (message: T['Provider']['WsMessage'], context: AdapterContext<T>) => ProviderResult<T>[] | undefined;
40
+ message: (message: T['Provider']['WsMessage'], context: EndpointContext<T>) => ProviderResult<T>[] | undefined;
41
41
  };
42
42
  /** Map of "builders", functions that will be used to prepare specific WS messages */
43
43
  builders: {
@@ -85,11 +85,12 @@ export declare class WebSocketTransport<T extends WebsocketTransportGenerics> im
85
85
  subscriptionSet: SubscriptionSet<T['Request']['Params']>;
86
86
  localSubscriptions: T['Request']['Params'][];
87
87
  wsConnection: WebSocket;
88
+ currentUrl: string;
88
89
  constructor(config: WebSocketTransportConfig<T>);
89
90
  initialize(dependencies: AdapterDependencies, config: AdapterConfig<T['CustomSettings']>, endpointName: string): Promise<void>;
90
91
  registerRequest(req: AdapterRequest<T['Request']>, config: AdapterConfig<T['CustomSettings']>): Promise<void>;
91
92
  serializeMessage(payload: unknown): string;
92
93
  deserializeMessage(data: WebSocket.Data): T['Provider']['WsMessage'];
93
- establishWsConnection(context: AdapterContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<unknown>;
94
- backgroundExecute(context: AdapterContext<T>): Promise<number>;
94
+ establishWsConnection(context: EndpointContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<unknown>;
95
+ backgroundExecute(context: EndpointContext<T>): Promise<number>;
95
96
  }
@@ -55,6 +55,8 @@ 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
+ // What URL this instance is currently listening to, updated automatically if this.url(context) differs
59
+ this.currentUrl = '';
58
60
  }
59
61
  async initialize(dependencies, config, endpointName) {
60
62
  this.cache = dependencies.cache;
@@ -114,7 +116,7 @@ class WebSocketTransport {
114
116
  const desiredSubs = await this.subscriptionSet.getAll();
115
117
  // Keep track of active subscriptions for background execute
116
118
  transportMetrics.bgExecuteSubscriptionSetCount
117
- .labels({ endpoint: context.adapterEndpoint.name, transport_type: 'websocket' })
119
+ .labels({ endpoint: context.endpointName, transport_type: 'websocket' })
118
120
  .set(desiredSubs.length);
119
121
  logger.debug('Generating delta (subscribes & unsubscribes)');
120
122
  const subscribeParams = desiredSubs.filter((s) => !this.localSubscriptions.map((ls) => JSON.stringify(ls)).includes(JSON.stringify(s)));
@@ -138,13 +140,22 @@ class WebSocketTransport {
138
140
  // No new subs && connection -> unsubs only
139
141
  if (!subscribes.length && !this.wsConnection) {
140
142
  logger.debug('No entries in subscription set and no established connection, skipping');
141
- return this.rateLimiter.msUntilNextExecution(context.adapterEndpoint.name);
143
+ return this.rateLimiter.msUntilNextExecution(context.endpointName);
142
144
  }
143
- if (!this.wsConnection && subscribes.length) {
145
+ const calculatedUrl = await new Promise((resolve) => {
146
+ resolve(context.adapterConfig.WS_API_ENDPOINT || this.config.url(context));
147
+ });
148
+ const urlChanged = this.currentUrl === calculatedUrl;
149
+ if ((!this.wsConnection && subscribes.length) || urlChanged) {
150
+ // Close the old connection and reconnect if url has changed
151
+ if (this.wsConnection && urlChanged) {
152
+ logger.info(`websocket url has changed from ${this.currentUrl} to ${calculatedUrl}, reconnecting...`);
153
+ this.wsConnection.close();
154
+ this.currentUrl = calculatedUrl;
155
+ }
144
156
  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
157
  const options = this.config.options && (await this.config.options(context));
147
- await this.establishWsConnection(context, url, options);
158
+ await this.establishWsConnection(context, this.currentUrl, options);
148
159
  }
149
160
  logger.debug('Sending subs/unsubs if there are any');
150
161
  const messages = unsubscribes.concat(subscribes);
@@ -157,7 +168,7 @@ class WebSocketTransport {
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.adapterEndpoint.name);
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":"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"}
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.isArraylikeAccessor = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
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;AAEzF,SAAgB,mBAAmB,CAAC,CAAY;IAC9C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;AAChE,CAAC;AAFD,kDAEC"}
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"}
@@ -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
- adapterEndpoint: endpoint,
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
- adapterEndpoint: endpoint,
72
+ endpointName: endpoint.name,
73
+ inputParameters: endpoint.inputParameters,
73
74
  adapterConfig: adapter.config,
74
75
  }, req.requestContext.data);
75
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}