@chainlink/external-adapter-framework 0.25.0 → 0.26.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.
Files changed (54) hide show
  1. package/README.md +0 -2
  2. package/adapter/basic.d.ts +1 -18
  3. package/adapter/basic.js +5 -41
  4. package/adapter/basic.js.map +1 -1
  5. package/adapter/endpoint.d.ts +32 -4
  6. package/adapter/endpoint.js +99 -3
  7. package/adapter/endpoint.js.map +1 -1
  8. package/adapter/price.js +5 -3
  9. package/adapter/price.js.map +1 -1
  10. package/adapter/types.d.ts +30 -10
  11. package/background-executor.js +12 -14
  12. package/background-executor.js.map +1 -1
  13. package/cache/index.d.ts +10 -18
  14. package/cache/index.js +29 -19
  15. package/cache/index.js.map +1 -1
  16. package/cache/response.d.ts +1 -1
  17. package/cache/response.js +4 -2
  18. package/cache/response.js.map +1 -1
  19. package/metrics/index.d.ts +3 -2
  20. package/metrics/index.js +7 -2
  21. package/metrics/index.js.map +1 -1
  22. package/package.json +3 -2
  23. package/rate-limiting/index.js +7 -2
  24. package/rate-limiting/index.js.map +1 -1
  25. package/transports/abstract/subscription.d.ts +2 -1
  26. package/transports/abstract/subscription.js +2 -1
  27. package/transports/abstract/subscription.js.map +1 -1
  28. package/transports/http.d.ts +1 -1
  29. package/transports/http.js +8 -4
  30. package/transports/http.js.map +1 -1
  31. package/transports/index.d.ts +2 -17
  32. package/transports/sse.d.ts +1 -1
  33. package/transports/sse.js +18 -6
  34. package/transports/sse.js.map +1 -1
  35. package/transports/websocket.js +1 -1
  36. package/transports/websocket.js.map +1 -1
  37. package/util/logger.d.ts +5 -1
  38. package/util/logger.js +3 -1
  39. package/util/logger.js.map +1 -1
  40. package/util/requester.js +16 -8
  41. package/util/requester.js.map +1 -1
  42. package/util/types.d.ts +10 -2
  43. package/validation/index.js +12 -8
  44. package/validation/index.js.map +1 -1
  45. package/validation/input-params.d.ts +3 -0
  46. package/config/provider-limits.d.ts +0 -27
  47. package/config/provider-limits.js +0 -75
  48. package/config/provider-limits.js.map +0 -1
  49. package/transports/meta/index.d.ts +0 -1
  50. package/transports/meta/index.js +0 -18
  51. package/transports/meta/index.js.map +0 -1
  52. package/transports/meta/routing.d.ts +0 -38
  53. package/transports/meta/routing.js +0 -80
  54. package/transports/meta/routing.js.map +0 -1
package/README.md CHANGED
@@ -40,8 +40,6 @@ yarn # Install yarn dependencies
40
40
  - [WebSocket](./docs/v3-ea-components/transport-types/websocket-transport.md)
41
41
  - [SSE](./docs/v3-ea-components/transport-types/sse-transport.md)
42
42
  - [Custom](./docs/v3-ea-components/transport-types/custom-transport.md)
43
- - Meta
44
- - [Routing](./docs/v3-ea-components/transport-types/routing-transport.md)
45
43
 
46
44
  ## Testing
47
45
 
@@ -1,7 +1,7 @@
1
1
  import { AdapterConfig, BaseAdapterConfig, SettingsMap } from '../config';
2
2
  import { AdapterRequest, AdapterResponse, Merge } from '../util';
3
3
  import { AdapterEndpoint } from './endpoint';
4
- import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig, CustomAdapterSettings, EndpointGenerics, RequestTransform } from './types';
4
+ import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig, CustomAdapterSettings, EndpointGenerics } from './types';
5
5
  /**
6
6
  * Main class to represent an External Adapter
7
7
  */
@@ -14,8 +14,6 @@ export declare class Adapter<CustomSettings extends CustomAdapterSettings = Sett
14
14
  envDefaultOverrides?: Partial<BaseAdapterConfig> | undefined;
15
15
  customSettings?: SettingsMap | undefined;
16
16
  rateLimiting?: AdapterRateLimitingConfig | undefined;
17
- overrides?: Record<string, string> | undefined;
18
- requestTransforms?: RequestTransform[];
19
17
  envVarsPrefix?: string;
20
18
  initialized: boolean;
21
19
  /** Object containing alias translations for all endpoints */
@@ -70,21 +68,6 @@ export declare class Adapter<CustomSettings extends CustomAdapterSettings = Sett
70
68
  * @returns the cached value if exists
71
69
  */
72
70
  findResponseInCache(req: AdapterRequest): Promise<Readonly<AdapterResponse> | undefined>;
73
- /**
74
- * Default request transform that takes requests and manipulates
75
- *
76
- * @param adapter - the current adapter
77
- * @param req - the current adapter request
78
- * @returns the modified (or new) request
79
- */
80
- symbolOverrider(req: AdapterRequest): AdapterRequest<import("../util").RequestGenerics>;
81
- /**
82
- * Takes the incoming request and applies all request transforms in the adapter
83
- *
84
- * @param req - the current adapter request
85
- * @returns the request after passing through all request transforms
86
- */
87
- runRequestTransforms(req: AdapterRequest): void;
88
71
  /**
89
72
  * Function to serve as middleware to pass along the AdapterRequest to the appropriate Transport (acc. to the endpoint in the req.)
90
73
  *
package/adapter/basic.js CHANGED
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Adapter = void 0;
7
7
  const ioredis_1 = __importDefault(require("ioredis"));
8
8
  const cache_1 = require("../cache");
9
+ const metrics_1 = require("../cache/metrics");
9
10
  const config_1 = require("../config");
11
+ const metrics_2 = require("../metrics");
10
12
  const rate_limiting_1 = require("../rate-limiting");
11
13
  const util_1 = require("../util");
12
14
  const censor_list_1 = __importDefault(require("../util/censor/censor-list"));
13
- const error_1 = require("../validation/error");
14
15
  const requester_1 = require("../util/requester");
15
- const metrics_1 = require("../cache/metrics");
16
- const metrics_2 = require("../metrics");
16
+ const error_1 = require("../validation/error");
17
17
  const logger = (0, util_1.makeLogger)('Adapter');
18
18
  /**
19
19
  * Main class to represent an External Adapter
@@ -31,8 +31,6 @@ class Adapter {
31
31
  this.envDefaultOverrides = params.envDefaultOverrides;
32
32
  this.customSettings = params.customSettings;
33
33
  this.rateLimiting = params.rateLimiting;
34
- this.overrides = params.overrides;
35
- this.requestTransforms = [this.symbolOverrider.bind(this), ...(params.requestTransforms || [])];
36
34
  this.bootstrap = params.bootstrap;
37
35
  this.config = (0, config_1.buildAdapterConfig)({
38
36
  overrides: this.envDefaultOverrides,
@@ -249,41 +247,6 @@ class Adapter {
249
247
  return response;
250
248
  }
251
249
  }
252
- /**
253
- * Default request transform that takes requests and manipulates
254
- *
255
- * @param adapter - the current adapter
256
- * @param req - the current adapter request
257
- * @returns the modified (or new) request
258
- */
259
- symbolOverrider(req) {
260
- const rawRequestBody = req.body;
261
- const requestOverrides = rawRequestBody.data?.overrides?.[this.name.toLowerCase()];
262
- const base = req.requestContext.data['base'];
263
- if (requestOverrides?.[base]) {
264
- // Perform overrides specified in the request payload
265
- req.requestContext.data['base'] = requestOverrides[base];
266
- }
267
- else if (this.overrides?.[base]) {
268
- // Perform hardcoded adapter overrides
269
- req.requestContext.data['base'] = this.overrides[base];
270
- }
271
- return req;
272
- }
273
- /**
274
- * Takes the incoming request and applies all request transforms in the adapter
275
- *
276
- * @param req - the current adapter request
277
- * @returns the request after passing through all request transforms
278
- */
279
- runRequestTransforms(req) {
280
- if (!this.requestTransforms) {
281
- return;
282
- }
283
- for (const transform of this.requestTransforms) {
284
- transform(req);
285
- }
286
- }
287
250
  /**
288
251
  * Function to serve as middleware to pass along the AdapterRequest to the appropriate Transport (acc. to the endpoint in the req.)
289
252
  *
@@ -293,7 +256,8 @@ class Adapter {
293
256
  */
294
257
  async handleRequest(req, replySent) {
295
258
  // Get transport, must be here because it's already checked in the validator
296
- const transport = this.endpointsMap[req.requestContext.endpointName].transport;
259
+ const endpoint = this.endpointsMap[req.requestContext.endpointName];
260
+ const transport = endpoint.transports[req.requestContext.transportName];
297
261
  // First try to find the response in our cache, keep it ready
298
262
  const cachedResponse = await this.findResponseInCache(req);
299
263
  // Next we fire off the transport's registration of the request if defined, regardless of if we already have a cached response.
@@ -1 +1 @@
1
- {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,25 @@
1
1
  import { AdapterConfig } from '../config';
2
- import { MetaTransport, Transport } from '../transports';
2
+ import { Transport } from '../transports';
3
+ import { AdapterRequest } from '../util';
3
4
  import { SpecificInputParameters } from '../validation';
4
5
  import { InputValidator } from '../validation/input-validator';
5
- import { AdapterDependencies, AdapterEndpointParams, CustomInputValidator, EndpointGenerics, EndpointRateLimitingConfig } from './types';
6
+ import { AdapterDependencies, AdapterEndpointInterface, AdapterEndpointParams, CustomInputValidator, EndpointGenerics, EndpointRateLimitingConfig, RequestTransform } from './types';
6
7
  /**
7
8
  * Main class to represent an endpoint within an External Adapter
8
9
  */
9
- export declare class AdapterEndpoint<T extends EndpointGenerics> implements AdapterEndpointParams<T> {
10
+ export declare class AdapterEndpoint<T extends EndpointGenerics> implements AdapterEndpointInterface<T> {
10
11
  name: string;
11
12
  aliases?: string[] | undefined;
12
- transport: Transport<T> | MetaTransport<T>;
13
+ transports: Record<string, Transport<T>>;
13
14
  inputParameters: SpecificInputParameters<T['Request']['Params']>;
14
15
  rateLimiting?: EndpointRateLimitingConfig | undefined;
15
16
  validator: InputValidator;
16
17
  cacheKeyGenerator?: (data: Record<string, unknown>) => string;
17
18
  customInputValidation?: CustomInputValidator<T>;
19
+ requestTransforms?: RequestTransform<T>[];
20
+ overrides?: Record<string, string> | undefined;
21
+ customRouter?: (req: AdapterRequest<T['Request']>, adapterConfig: AdapterConfig<T['CustomSettings']>) => string;
22
+ defaultTransport?: string;
18
23
  constructor(params: AdapterEndpointParams<T>);
19
24
  /**
20
25
  * Performs all necessary initialization processes that are async or need async initialized dependencies
@@ -23,4 +28,27 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
23
28
  * @param config - configuration for the adapter
24
29
  */
25
30
  initialize(adapterName: string, dependencies: AdapterDependencies, config: AdapterConfig<T['CustomSettings']>): Promise<void>;
31
+ /**
32
+ * Takes the incoming request and applies all request transforms in the adapter
33
+ *
34
+ * @param req - the current adapter request
35
+ * @returns the request after passing through all request transforms
36
+ */
37
+ runRequestTransforms(req: AdapterRequest): void;
38
+ /**
39
+ * Default request transform that takes requests and manipulates base params
40
+ *
41
+ * @param adapter - the current adapter
42
+ * @param req - the current adapter request
43
+ * @returns the modified (or new) request
44
+ */
45
+ symbolOverrider(req: AdapterRequest): AdapterRequest<import("../util").RequestGenerics>;
46
+ getTransportNameForRequest(req: AdapterRequest<T['Request']>, adapterConfig: AdapterConfig<T['CustomSettings']>): string;
47
+ /**
48
+ * Default routing strategy. Will try and use the transport input parameter if present in the request body.
49
+ *
50
+ * @param req - The current adapter request
51
+ * @returns the transport param if present
52
+ */
53
+ private defaultRouter;
26
54
  }
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdapterEndpoint = void 0;
4
4
  const response_1 = require("../cache/response");
5
5
  const util_1 = require("../util");
6
+ const error_1 = require("../validation/error");
6
7
  const input_validator_1 = require("../validation/input-validator");
7
8
  const logger = (0, util_1.makeLogger)('AdapterEndpoint');
9
+ const DEFAULT_TRANSPORT_NAME = 'default_single_transport';
8
10
  /**
9
11
  * Main class to represent an endpoint within an External Adapter
10
12
  */
@@ -12,12 +14,31 @@ class AdapterEndpoint {
12
14
  constructor(params) {
13
15
  this.name = params.name;
14
16
  this.aliases = params.aliases;
15
- this.transport = params.transport;
17
+ // These ifs are annoying but it's to make it type safe
18
+ if ('transports' in params) {
19
+ this.transports = params.transports;
20
+ this.customRouter = params.customRouter;
21
+ this.defaultTransport = params.defaultTransport;
22
+ // Validate transport names
23
+ for (const transportName in this.transports) {
24
+ // This is intentional, to keep names to one word only
25
+ if (!/^[a-z]+$/.test(transportName)) {
26
+ throw new Error(`Transport name "${transportName}" is invalid. Names in the AdapterEndpoint transports map can only include lowercase letters.`);
27
+ }
28
+ }
29
+ }
30
+ else {
31
+ this.transports = {
32
+ [DEFAULT_TRANSPORT_NAME]: params.transport,
33
+ };
34
+ }
16
35
  this.inputParameters = params.inputParameters;
17
36
  this.rateLimiting = params.rateLimiting;
18
37
  this.validator = new input_validator_1.InputValidator(this.inputParameters);
19
38
  this.cacheKeyGenerator = params.cacheKeyGenerator;
20
39
  this.customInputValidation = params.customInputValidation;
40
+ this.overrides = params.overrides;
41
+ this.requestTransforms = [this.symbolOverrider.bind(this), ...(params.requestTransforms || [])];
21
42
  }
22
43
  /**
23
44
  * Performs all necessary initialization processes that are async or need async initialized dependencies
@@ -37,8 +58,83 @@ class AdapterEndpoint {
37
58
  ...dependencies,
38
59
  responseCache,
39
60
  };
40
- logger.debug(`Initializing transport for endpoint "${this.name}"...`);
41
- await this.transport.initialize(transportDependencies, config, this.name);
61
+ logger.debug(`Initializing transports for endpoint "${this.name}"...`);
62
+ for (const [transportName, transport] of Object.entries(this.transports)) {
63
+ await transport.initialize(transportDependencies, config, this.name, transportName);
64
+ }
65
+ }
66
+ /**
67
+ * Takes the incoming request and applies all request transforms in the adapter
68
+ *
69
+ * @param req - the current adapter request
70
+ * @returns the request after passing through all request transforms
71
+ */
72
+ runRequestTransforms(req) {
73
+ if (!this.requestTransforms) {
74
+ return;
75
+ }
76
+ for (const transform of this.requestTransforms) {
77
+ transform(req);
78
+ }
79
+ }
80
+ /**
81
+ * Default request transform that takes requests and manipulates base params
82
+ *
83
+ * @param adapter - the current adapter
84
+ * @param req - the current adapter request
85
+ * @returns the modified (or new) request
86
+ */
87
+ symbolOverrider(req) {
88
+ const rawRequestBody = req.body;
89
+ const requestOverrides = rawRequestBody.data?.overrides?.[this.name.toLowerCase()];
90
+ const base = req.requestContext.data['base'];
91
+ if (requestOverrides?.[base]) {
92
+ // Perform overrides specified in the request payload
93
+ req.requestContext.data['base'] = requestOverrides[base];
94
+ }
95
+ else if (this.overrides?.[base]) {
96
+ // Perform hardcoded adapter overrides
97
+ req.requestContext.data['base'] = this.overrides[base];
98
+ }
99
+ return req;
100
+ }
101
+ getTransportNameForRequest(req, adapterConfig) {
102
+ // If there's only one transport, return it
103
+ if (this.transports[DEFAULT_TRANSPORT_NAME]) {
104
+ return DEFAULT_TRANSPORT_NAME;
105
+ }
106
+ // Attempt to get the transport to use from:
107
+ // 1. Custom router (whatever logic the user wrote)
108
+ // 2. Default router (try to get it from the input params)
109
+ // 3. Default transport (if it was specified in the instance params)
110
+ const rawTransportName = (this.customRouter && this.customRouter(req, adapterConfig)) ||
111
+ this.defaultRouter(req) ||
112
+ this.defaultTransport;
113
+ if (!rawTransportName) {
114
+ throw new error_1.AdapterError({
115
+ statusCode: 400,
116
+ message: `No result was fetched from a custom router, no transport was specified in the input parameters, and this endpoint does not have a default transport set.`,
117
+ });
118
+ }
119
+ const transportName = rawTransportName.toLowerCase();
120
+ if (!this.transports[transportName]) {
121
+ throw new error_1.AdapterError({
122
+ statusCode: 400,
123
+ message: `No transport found for key "${transportName}", must be one of ${JSON.stringify(Object.keys(this.transports))}`,
124
+ });
125
+ }
126
+ logger.debug(`Request will be routed to transport "${transportName}"`);
127
+ return transportName;
128
+ }
129
+ /**
130
+ * Default routing strategy. Will try and use the transport input parameter if present in the request body.
131
+ *
132
+ * @param req - The current adapter request
133
+ * @returns the transport param if present
134
+ */
135
+ defaultRouter(req) {
136
+ const rawRequestBody = req.body;
137
+ return rawRequestBody.data?.transport;
42
138
  }
43
139
  }
44
140
  exports.AdapterEndpoint = AdapterEndpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAGjD,kCAAoC;AAEpC,mEAA8D;AAS9D,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAC5C;;GAEG;AACH,MAAa,eAAe;IAU1B,YAAY,MAAgC;QAC1C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,YAAiC,EACjC,MAA0C;QAE1C,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC;YACtC,YAAY;YACZ,MAAM,EAAE,MAAuB;YAC/B,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAA;QAEF,MAAM,qBAAqB,GAAG;YAC5B,GAAG,YAAY;YACf,aAAa;SACd,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAA;QACrE,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC;CACF;AAhDD,0CAgDC"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":"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"}
package/adapter/price.js CHANGED
@@ -45,8 +45,8 @@ const buildIncludesMap = (includesFile) => {
45
45
  */
46
46
  class PriceAdapter extends index_1.Adapter {
47
47
  constructor(params) {
48
- // Doing this with types would be too complex to maintain
49
- if (!params.endpoints.some((e) => e instanceof PriceEndpoint)) {
48
+ const priceEndpoints = params.endpoints.filter((e) => e instanceof PriceEndpoint);
49
+ if (!priceEndpoints.length) {
50
50
  throw new Error(`This PriceAdapter's list of endpoints does not contain a valid PriceEndpoint`);
51
51
  }
52
52
  super(params);
@@ -66,7 +66,9 @@ class PriceAdapter extends index_1.Adapter {
66
66
  inverse,
67
67
  };
68
68
  };
69
- this.requestTransforms?.push(requestTransform);
69
+ for (const endpoint of priceEndpoints) {
70
+ endpoint.requestTransforms?.push(requestTransform);
71
+ }
70
72
  }
71
73
  }
72
74
  async handleRequest(req, replySent) {
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Cache } from '../cache';
4
4
  import { AdapterConfig, BaseAdapterConfig, SettingsMap } from '../config';
5
5
  import { AdapterRateLimitTier, RateLimiter } from '../rate-limiting';
6
6
  import { Transport, TransportGenerics } from '../transports';
7
- import { AdapterRequest, RequestGenerics, SingleNumberResultResponse, SubscriptionSetFactory } from '../util';
7
+ import { AdapterRequest, SingleNumberResultResponse, SubscriptionSetFactory } from '../util';
8
8
  import { Requester } from '../util/requester';
9
9
  import { InputParameters, SpecificInputParameters } from '../validation';
10
10
  import { AdapterError } from '../validation/error';
@@ -53,7 +53,7 @@ export interface AdapterRateLimitingConfig {
53
53
  /**
54
54
  * Type to perform arbitrary modifications on an adapter request
55
55
  */
56
- export type RequestTransform<T extends RequestGenerics = RequestGenerics> = (req: AdapterRequest<T>) => void;
56
+ export type RequestTransform<T extends EndpointGenerics> = (req: AdapterRequest<T['Request']>) => void;
57
57
  /**
58
58
  * Map of overrides objects (symbol -\> symbol) per adapter name
59
59
  */
@@ -86,10 +86,6 @@ export interface AdapterParams<CustomSettings extends SettingsMap> {
86
86
  customSettings?: SettingsMap;
87
87
  /** Configuration relevant to outbound (EA --\> DP) communication rate limiting */
88
88
  rateLimiting?: AdapterRateLimitingConfig;
89
- /** Overrides for converting the 'base' parameter that are hardcoded into the adapter. */
90
- overrides?: Record<string, string>;
91
- /** Transforms that will apply to the request before submitting it through the adapter request flow */
92
- requestTransforms?: RequestTransform[];
93
89
  /** Bootstrap function that will run when initializing the adapter */
94
90
  bootstrap?: (adapter: Adapter<CustomSettings>) => Promise<void>;
95
91
  }
@@ -114,17 +110,15 @@ export type EndpointGenerics = TransportGenerics;
114
110
  export type PriceEndpointGenerics = TransportGenerics & {
115
111
  Response: SingleNumberResultResponse;
116
112
  };
117
- export type CustomInputValidator<T extends EndpointGenerics> = (input: T['Request']['Params'], config: AdapterConfig<T['CustomSettings']>) => AdapterError | undefined;
113
+ export type CustomInputValidator<T extends EndpointGenerics> = (input: AdapterRequest<T['Request']>, config: AdapterConfig<T['CustomSettings']>) => AdapterError | undefined;
118
114
  /**
119
115
  * Structure to describe a specific endpoint in an [[Adapter]]
120
116
  */
121
- export interface AdapterEndpointParams<T extends EndpointGenerics> {
117
+ export interface BaseAdapterEndpointParams<T extends EndpointGenerics> {
122
118
  /** Name that will be used to match input params to this endpoint (case insensitive) */
123
119
  name: string;
124
120
  /** List of alternative endpoint names that will resolve to this same transport (case insensitive) */
125
121
  aliases?: string[];
126
- /** Transport that will be used to handle data processing and communication for this endpoint */
127
- transport: Transport<T>;
128
122
  /** Specification of what the body of a request hitting this endpoint should look like (used for validation) */
129
123
  inputParameters: SpecificInputParameters<T['Request']['Params']>;
130
124
  /** Specific details related to the rate limiting for this endpoint in particular */
@@ -133,5 +127,31 @@ export interface AdapterEndpointParams<T extends EndpointGenerics> {
133
127
  cacheKeyGenerator?: (data: Record<string, unknown>) => string;
134
128
  /** Custom input validation. Void function that should throw AdapterInputError on validation errors */
135
129
  customInputValidation?: CustomInputValidator<T>;
130
+ /** Transforms that will apply to the request before submitting it through the adapter request flow */
131
+ requestTransforms?: RequestTransform<T>[];
132
+ /** Overrides for converting the 'base' parameter that are hardcoded into the adapter. */
133
+ overrides?: Record<string, string>;
136
134
  }
135
+ type SingleTransportAdapterEndpointParams<T extends EndpointGenerics> = {
136
+ /** Transport that will be used to handle data processing and communication for this endpoint */
137
+ transport: Transport<T>;
138
+ };
139
+ type MultiTransportAdapterEndpointParams<T extends EndpointGenerics> = {
140
+ /** Map of transports that will be used when routing the request through this endpoint */
141
+ transports: Record<string, Transport<T>>;
142
+ /** Custom function to direct an incoming request to the appropriate transport from the transports map */
143
+ customRouter?: (req: AdapterRequest<T['Request']>, adapterConfig: AdapterConfig<T['CustomSettings']>) => string;
144
+ /** If no value is returned from the custom router or the default (transport param), which transport to use */
145
+ defaultTransport?: string;
146
+ };
147
+ /**
148
+ * Basic interface for the properties that the adapter endpoint will have, taken from the endpoint parameters.
149
+ * The reason why this is its own type is because the endpoint can be defined with one transport or multiple.
150
+ */
151
+ export interface AdapterEndpointInterface<T extends EndpointGenerics> extends BaseAdapterEndpointParams<T>, MultiTransportAdapterEndpointParams<T> {
152
+ }
153
+ /**
154
+ * Type for the parameters that an adapter endpoint requires. See the comment in the [[AdapterEndpointInterface]] for more details.
155
+ */
156
+ export type AdapterEndpointParams<T extends EndpointGenerics> = BaseAdapterEndpointParams<T> & (SingleTransportAdapterEndpointParams<T> | MultiTransportAdapterEndpointParams<T>);
137
157
  export {};
@@ -25,7 +25,7 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
25
25
  }
26
26
  });
27
27
  // Checks if an individual transport has a backgroundExecute function, and executes it if it does
28
- const callBackgroundExecute = (endpoint, transport) => {
28
+ const callBackgroundExecute = (endpoint, transport, transportName) => {
29
29
  const backgroundExecute = transport.backgroundExecute?.bind(transport);
30
30
  if (!backgroundExecute) {
31
31
  logger.debug(`Endpoint "${endpoint.name}" has no background execute, skipping...`);
@@ -42,11 +42,14 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
42
42
  return;
43
43
  }
44
44
  // Count number of background executions per endpoint
45
- metrics_1.metrics.get('bgExecuteTotal').labels({ endpoint: endpoint.name }).inc();
45
+ metrics_1.metrics
46
+ .get('bgExecuteTotal')
47
+ .labels({ endpoint: endpoint.name, transport: transportName })
48
+ .inc();
46
49
  // Time the duration of the background execute process excluding sleep time
47
50
  const metricsTimer = metrics_1.metrics
48
51
  .get('bgExecuteDurationSeconds')
49
- .labels({ endpoint: endpoint.name })
52
+ .labels({ endpoint: endpoint.name, transport: transportName })
50
53
  .startTimer();
51
54
  logger.debug(`Calling background execute for endpoint "${endpoint.name}"`);
52
55
  try {
@@ -58,6 +61,10 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
58
61
  }
59
62
  catch (error) {
60
63
  logger.error(error, error.stack);
64
+ metrics_1.metrics
65
+ .get('bgExecuteErrors')
66
+ .labels({ endpoint: endpoint.name, transport: transportName })
67
+ .inc();
61
68
  }
62
69
  // This background execute loop is no longer the one to determine the sleep between bg execute calls.
63
70
  // That is now instead responsibility of each transport, to allow for custom ones to implement their own timings.
@@ -69,17 +76,8 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
69
76
  handler();
70
77
  };
71
78
  for (const endpoint of adapter.endpoints) {
72
- const { transport } = endpoint;
73
- // Check if transport is a MetaTransport by casting and checking a known property (transports)
74
- const castMeta = transport;
75
- if (castMeta.transports) {
76
- logger.debug(`Encountered MetaTransport ${transport.constructor.name}, calling backgroundExecute on all transports`);
77
- for (const nestedTransport of Object.values(castMeta.transports)) {
78
- callBackgroundExecute(endpoint, nestedTransport);
79
- }
80
- }
81
- else {
82
- callBackgroundExecute(endpoint, transport);
79
+ for (const [transportName, transport] of Object.entries(endpoint.transports)) {
80
+ callBackgroundExecute(endpoint, transport, transportName);
83
81
  }
84
82
  }
85
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":"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"}
package/cache/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EndpointContext } from '../adapter';
2
- import { AdapterConfig, SettingsMap } from '../config';
2
+ import { AdapterConfig } from '../config';
3
3
  import { AdapterResponse, sleep } from '../util';
4
4
  import { InputParameters } from '../validation';
5
5
  import { CacheTypes as CacheType } from './metrics';
@@ -52,31 +52,23 @@ export interface Cache<T = unknown> {
52
52
  */
53
53
  delete: (key: string) => Promise<void>;
54
54
  }
55
- export declare const calculateCacheKey: <T extends import("../transports").TransportGenerics>({ inputParameters, adapterName, endpointName, adapterConfig, }: {
55
+ export declare const calculateCacheKey: <T extends import("../transports").TransportGenerics>({ data, inputParameters, adapterName, endpointName, adapterConfig, transportName, }: {
56
+ data: unknown;
56
57
  inputParameters: InputParameters;
57
58
  adapterName: string;
58
59
  endpointName: string;
59
60
  adapterConfig: AdapterConfig<T["CustomSettings"]>;
60
- }, data: unknown) => string;
61
- export declare const calculateHttpRequestKey: <T extends import("../transports").TransportGenerics>(context: EndpointContext<T>, data: unknown) => string;
61
+ transportName: string;
62
+ }) => string;
63
+ export declare const calculateHttpRequestKey: <T extends import("../transports").TransportGenerics>({ data, context, transportName, }: {
64
+ context: EndpointContext<T>;
65
+ data: unknown;
66
+ transportName: string;
67
+ }) => string;
62
68
  export declare const calculateFeedId: <T extends import("../transports").TransportGenerics>({ inputParameters, adapterConfig, }: {
63
69
  inputParameters: InputParameters;
64
70
  adapterConfig: AdapterConfig<T["CustomSettings"]>;
65
71
  }, data: unknown) => string;
66
- /**
67
- * Calculates a unique key from the provided data.
68
- *
69
- * @param data - the request data/body, i.e. the adapter input params
70
- * @param adapterConfig - the config for this Adapter
71
- * @returns the calculated unique key
72
- *
73
- * @example
74
- * ```
75
- * calculateKey({ base: 'ETH', quote: 'BTC' })
76
- * // equals `{"base":"eth","quote":"btc"}`
77
- * ```
78
- */
79
- export declare const calculateKey: <CustomSettings extends SettingsMap>(data: unknown, adapterConfig: AdapterConfig<CustomSettings>) => string;
80
72
  /**
81
73
  * Polls the provided Cache for an AdapterResponse set in the provided key. If the maximum
82
74
  * amount of retries is exceeded, it returns undefined instead.