@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.
- package/README.md +0 -2
- package/adapter/basic.d.ts +1 -18
- package/adapter/basic.js +5 -41
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +32 -4
- package/adapter/endpoint.js +99 -3
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.js +5 -3
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +30 -10
- package/background-executor.js +12 -14
- package/background-executor.js.map +1 -1
- package/cache/index.d.ts +10 -18
- package/cache/index.js +29 -19
- package/cache/index.js.map +1 -1
- package/cache/response.d.ts +1 -1
- package/cache/response.js +4 -2
- package/cache/response.js.map +1 -1
- package/metrics/index.d.ts +3 -2
- package/metrics/index.js +7 -2
- package/metrics/index.js.map +1 -1
- package/package.json +3 -2
- package/rate-limiting/index.js +7 -2
- package/rate-limiting/index.js.map +1 -1
- package/transports/abstract/subscription.d.ts +2 -1
- package/transports/abstract/subscription.js +2 -1
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/http.d.ts +1 -1
- package/transports/http.js +8 -4
- package/transports/http.js.map +1 -1
- package/transports/index.d.ts +2 -17
- package/transports/sse.d.ts +1 -1
- package/transports/sse.js +18 -6
- package/transports/sse.js.map +1 -1
- package/transports/websocket.js +1 -1
- package/transports/websocket.js.map +1 -1
- package/util/logger.d.ts +5 -1
- package/util/logger.js +3 -1
- package/util/logger.js.map +1 -1
- package/util/requester.js +16 -8
- package/util/requester.js.map +1 -1
- package/util/types.d.ts +10 -2
- package/validation/index.js +12 -8
- package/validation/index.js.map +1 -1
- package/validation/input-params.d.ts +3 -0
- package/config/provider-limits.d.ts +0 -27
- package/config/provider-limits.js +0 -75
- package/config/provider-limits.js.map +0 -1
- package/transports/meta/index.d.ts +0 -1
- package/transports/meta/index.js +0 -18
- package/transports/meta/index.js.map +0 -1
- package/transports/meta/routing.d.ts +0 -38
- package/transports/meta/routing.js +0 -80
- 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
|
|
package/adapter/basic.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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.
|
package/adapter/basic.js.map
CHANGED
|
@@ -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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"}
|
package/adapter/endpoint.d.ts
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { AdapterConfig } from '../config';
|
|
2
|
-
import {
|
|
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
|
|
10
|
+
export declare class AdapterEndpoint<T extends EndpointGenerics> implements AdapterEndpointInterface<T> {
|
|
10
11
|
name: string;
|
|
11
12
|
aliases?: string[] | undefined;
|
|
12
|
-
|
|
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
|
}
|
package/adapter/endpoint.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
41
|
-
|
|
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;
|
package/adapter/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAGjD,
|
|
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
|
-
|
|
49
|
-
if (!
|
|
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
|
-
|
|
69
|
+
for (const endpoint of priceEndpoints) {
|
|
70
|
+
endpoint.requestTransforms?.push(requestTransform);
|
|
71
|
+
}
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
async handleRequest(req, replySent) {
|
package/adapter/price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":";;;AAEA,yCAA4C;AAC5C,mCAA8F;AAoB9F;;GAEG;AACU,QAAA,4BAA4B,GAAiC;IACxE,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AA2BD;;;GAGG;AACH,MAAa,aAA+C,SAAQ,0BAAkB;IACpF,YACE,MAEC;QAED,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;CACF;AARD,sCAQC;AAED,MAAM,gBAAgB,GAAG,CAAC,YAA0B,EAAE,EAAE;IACtD,MAAM,WAAW,GAAgB,EAAE,CAAA;IAEnC,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE;QACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;SACvB;QACD,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;KACpC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAUD;;GAEG;AACH,MAAa,YAAiD,SAAQ,eAAuB;IAG3F,YACE,MAEC;QAED,
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
|
package/adapter/types.d.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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']
|
|
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
|
|
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 {};
|
package/background-executor.js
CHANGED
|
@@ -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
|
|
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
|
|
73
|
-
|
|
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":";;;AACA,uCAAmC;AAEnC,iCAAsD;AAEtD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,oBAAoB,CAAC,CAAA;AAE/C;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAAgB,EAAE,kBAAkC;IAC/F,uFAAuF;IACvF,4FAA4F;IAC5F,IAAI,YAAY,GAAG,KAAK,CAAA;IAExB,MAAM,WAAW,GAEb,EAAE,CAAA;IAEN,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;QAC5B,YAAY,GAAG,IAAI,CAAA;QACnB,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE;YACtC,MAAM,CAAC,KAAK,CAAC,kCAAkC,YAAY,GAAG,CAAC,CAAA;YAC/D,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAA;YACjC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;SACxC;IACH,CAAC,CAAC,CAAA;IAEF,iGAAiG;IACjG,MAAM,qBAAqB,GAAG,CAC5B,QAA2C,EAC3C,SAAuC,EACvC,EAAE;QACF,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtE,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,0CAA0C,CAAC,CAAA;YAClF,OAAM;SACP;QAED,MAAM,OAAO,GAAsC;YACjD,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,aAAa,EAAE,OAAO,CAAC,MAAM;SAC9B,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,YAAY,EAAE;gBAChB,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;gBAChF,OAAM;aACP;YACD,qDAAqD;YACrD,iBAAO,
|
|
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
|
|
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
|
-
|
|
61
|
-
|
|
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.
|