@chainlink/external-adapter-framework 0.14.5 → 0.15.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/adapter/basic.js +7 -6
- package/adapter/basic.js.map +1 -1
- package/adapter/types.d.ts +5 -4
- package/background-executor.js +4 -4
- package/background-executor.js.map +1 -1
- package/cache/factory.d.ts +4 -1
- package/cache/factory.js +2 -2
- package/cache/factory.js.map +1 -1
- package/cache/local.d.ts +26 -4
- package/cache/local.js +113 -22
- package/cache/local.js.map +1 -1
- package/config/index.d.ts +30 -28
- package/config/index.js +35 -61
- package/config/index.js.map +1 -1
- package/package.json +4 -4
- package/rate-limiting/index.d.ts +2 -15
- package/rate-limiting/index.js +1 -2
- package/rate-limiting/index.js.map +1 -1
- package/rate-limiting/request/simple-counting.d.ts +1 -1
- package/rate-limiting/request/simple-counting.js +12 -8
- package/rate-limiting/request/simple-counting.js.map +1 -1
- package/rate-limiting/simple-counting.d.ts +20 -0
- package/rate-limiting/simple-counting.js +67 -0
- package/rate-limiting/simple-counting.js.map +1 -0
- package/transports/abstract/subscription.d.ts +1 -3
- package/transports/abstract/subscription.js +0 -1
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/batch-warming.d.ts +20 -8
- package/transports/batch-warming.js +55 -68
- package/transports/batch-warming.js.map +1 -1
- package/transports/http.d.ts +90 -0
- package/transports/http.js +172 -0
- package/transports/http.js.map +1 -0
- package/transports/index.d.ts +2 -3
- package/transports/index.js +1 -2
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +0 -6
- package/transports/metrics.js +1 -18
- package/transports/metrics.js.map +1 -1
- package/transports/sse.d.ts +3 -3
- package/transports/sse.js +6 -3
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +2 -2
- package/transports/websocket.js +3 -0
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +1 -1
- package/util/index.js +1 -1
- package/util/index.js.map +1 -1
- package/util/logger.d.ts +1 -1
- package/util/metrics.d.ts +9 -0
- package/util/metrics.js +53 -0
- package/util/metrics.js.map +1 -0
- package/util/request.d.ts +25 -25
- package/util/requester.d.ts +42 -0
- package/util/requester.js +233 -0
- package/util/requester.js.map +1 -0
- package/util/test-payload-loader.d.ts +1 -1
- package/util/types.d.ts +217 -0
- package/util/types.js +3 -0
- package/util/types.js.map +1 -0
- package/validation/error.d.ts +5 -2
- package/validation/error.js +4 -2
- package/validation/error.js.map +1 -1
- package/validation/index.d.ts +1 -1
- package/validation/index.js.map +1 -1
- package/validation/input-validator.d.ts +3 -0
- package/validation/input-validator.js +31 -1
- package/validation/input-validator.js.map +1 -1
- package/validation/utils.d.ts +1 -0
- package/validation/utils.js +10 -0
- package/validation/utils.js.map +1 -1
package/adapter/basic.js
CHANGED
|
@@ -36,6 +36,7 @@ const rate_limiting_1 = require("../rate-limiting");
|
|
|
36
36
|
const util_1 = require("../util");
|
|
37
37
|
const censor_list_1 = __importDefault(require("../util/censor/censor-list"));
|
|
38
38
|
const error_1 = require("../validation/error");
|
|
39
|
+
const requester_1 = require("../util/requester");
|
|
39
40
|
const logger = (0, util_1.makeLogger)('Adapter');
|
|
40
41
|
/**
|
|
41
42
|
* Main class to represent an External Adapter
|
|
@@ -215,7 +216,7 @@ class Adapter {
|
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
218
|
if (!dependencies.cache) {
|
|
218
|
-
dependencies.cache = cache_1.CacheFactory.buildCache(this.config.CACHE_TYPE, dependencies.redisClient);
|
|
219
|
+
dependencies.cache = cache_1.CacheFactory.buildCache({ cacheType: this.config.CACHE_TYPE, maxSizeForLocalCache: this.config.CACHE_MAX_ITEMS }, dependencies.redisClient);
|
|
219
220
|
}
|
|
220
221
|
const rateLimitingTier = (0, rate_limiting_1.getRateLimitingTier)(this.config, this.rateLimiting?.tiers);
|
|
221
222
|
const highestTierValue = (0, rate_limiting_1.highestRateLimitTiers)(this.rateLimiting?.tiers);
|
|
@@ -231,15 +232,15 @@ class Adapter {
|
|
|
231
232
|
: 'RATE_LIMIT_CAPACITY'}
|
|
232
233
|
value is higher than the highest tier value from limits.json ${highestTierValue}`);
|
|
233
234
|
}
|
|
234
|
-
if (!dependencies.
|
|
235
|
-
dependencies.
|
|
236
|
-
}
|
|
237
|
-
if (!dependencies.backgroundExecuteRateLimiter) {
|
|
238
|
-
dependencies.backgroundExecuteRateLimiter = new rate_limiting_1.FixedFrequencyRateLimiter().initialize(this.endpoints, rateLimitingTier);
|
|
235
|
+
if (!dependencies.rateLimiter) {
|
|
236
|
+
dependencies.rateLimiter = new rate_limiting_1.SimpleCountingRateLimiter().initialize(this.endpoints, rateLimitingTier);
|
|
239
237
|
}
|
|
240
238
|
if (!dependencies.subscriptionSetFactory) {
|
|
241
239
|
dependencies.subscriptionSetFactory = new util_1.SubscriptionSetFactory(this.config, this.name, dependencies.redisClient);
|
|
242
240
|
}
|
|
241
|
+
if (!dependencies.requester) {
|
|
242
|
+
dependencies.requester = new requester_1.Requester(dependencies.rateLimiter, this.config);
|
|
243
|
+
}
|
|
243
244
|
return dependencies;
|
|
244
245
|
}
|
|
245
246
|
/**
|
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/types.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import type EventSource from 'eventsource';
|
|
|
2
2
|
import Redis from 'ioredis';
|
|
3
3
|
import { Cache } from '../cache';
|
|
4
4
|
import { AdapterConfig, BaseAdapterConfig, SettingsMap } from '../config';
|
|
5
|
-
import { AdapterRateLimitTier,
|
|
5
|
+
import { AdapterRateLimitTier, RateLimiter } from '../rate-limiting';
|
|
6
6
|
import { Transport, TransportGenerics } from '../transports';
|
|
7
7
|
import { AdapterRequest, RequestGenerics, SubscriptionSetFactory } from '../util';
|
|
8
|
+
import { Requester } from '../util/requester';
|
|
8
9
|
import { InputParameters } from '../validation';
|
|
9
10
|
import { AdapterError } from '../validation/error';
|
|
10
11
|
import { Adapter } from './basic';
|
|
@@ -20,15 +21,15 @@ export interface AdapterDependencies {
|
|
|
20
21
|
/** Specific instance of the Cache the adapter will use (e.g. Local, Redis, etc.) */
|
|
21
22
|
cache: Cache;
|
|
22
23
|
/** Shared instance of the request rate limiter */
|
|
23
|
-
|
|
24
|
-
/** Shared instance of the background execute rate limiter */
|
|
25
|
-
backgroundExecuteRateLimiter: BackgroundExecuteRateLimiter;
|
|
24
|
+
rateLimiter: RateLimiter;
|
|
26
25
|
/** Factory to create subscription sets based on the specified cache type */
|
|
27
26
|
subscriptionSetFactory: SubscriptionSetFactory;
|
|
28
27
|
/** Redis client used for cache and subscription set */
|
|
29
28
|
redisClient: Redis;
|
|
30
29
|
/** EventSource to use for listening to server sent events. A mock EventSource can be provided as a dependency for testing */
|
|
31
30
|
eventSource: typeof EventSource;
|
|
31
|
+
/** Shared instance to handle sending http requests in a centralized fashion */
|
|
32
|
+
requester: Requester;
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
34
35
|
* Context that will be used on background executions of a Transport.
|
package/background-executor.js
CHANGED
|
@@ -38,7 +38,6 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
|
|
|
38
38
|
// Set up variable to check later on to see if we need to stop this background "thread"
|
|
39
39
|
// If no server is provided, the listener won't be set and serverClosed will always be false
|
|
40
40
|
let serverClosed = false;
|
|
41
|
-
const rateLimiter = adapter.dependencies.backgroundExecuteRateLimiter;
|
|
42
41
|
const timeoutsMap = {};
|
|
43
42
|
apiShutdownPromise?.then(() => {
|
|
44
43
|
serverClosed = true;
|
|
@@ -78,10 +77,11 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
|
|
|
78
77
|
catch (error) {
|
|
79
78
|
logger.error(error);
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
// This background execute loop is no longer the one to determine the sleep between bg execute calls.
|
|
81
|
+
// That is now instead responsibility of each transport, to allow for custom ones to implement their own timings.
|
|
82
|
+
logger.trace(`Finished background execute for endpoint "${endpoint.name}", calling it again in 1ms...`);
|
|
83
83
|
metricsTimer();
|
|
84
|
-
timeoutsMap[endpoint.name] = setTimeout(handler,
|
|
84
|
+
timeoutsMap[endpoint.name] = setTimeout(handler, 1);
|
|
85
85
|
};
|
|
86
86
|
// Start recursive async calls
|
|
87
87
|
handler();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAAoC;AAEpC,iCAAmC;AAEnC,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,
|
|
1
|
+
{"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":"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"}
|
package/cache/factory.d.ts
CHANGED
|
@@ -2,5 +2,8 @@ import Redis from 'ioredis';
|
|
|
2
2
|
import { LocalCache } from './local';
|
|
3
3
|
import { RedisCache } from './redis';
|
|
4
4
|
export declare class CacheFactory {
|
|
5
|
-
static buildCache(cacheType
|
|
5
|
+
static buildCache({ cacheType, maxSizeForLocalCache }: {
|
|
6
|
+
cacheType: string;
|
|
7
|
+
maxSizeForLocalCache: number;
|
|
8
|
+
}, redisClient?: Redis): LocalCache<unknown> | RedisCache<unknown> | undefined;
|
|
6
9
|
}
|
package/cache/factory.js
CHANGED
|
@@ -6,11 +6,11 @@ const local_1 = require("./local");
|
|
|
6
6
|
const redis_1 = require("./redis");
|
|
7
7
|
const logger = (0, util_1.makeLogger)('CacheFactory');
|
|
8
8
|
class CacheFactory {
|
|
9
|
-
static buildCache(cacheType, redisClient) {
|
|
9
|
+
static buildCache({ cacheType, maxSizeForLocalCache }, redisClient) {
|
|
10
10
|
logger.info(`Using "${cacheType}" cache.`);
|
|
11
11
|
switch (cacheType) {
|
|
12
12
|
case 'local':
|
|
13
|
-
return new local_1.LocalCache();
|
|
13
|
+
return new local_1.LocalCache(maxSizeForLocalCache);
|
|
14
14
|
case 'redis': {
|
|
15
15
|
if (!redisClient) {
|
|
16
16
|
throw new Error('Redis client undefined. Cannot create Redis cache');
|
package/cache/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/cache/factory.ts"],"names":[],"mappings":";;;AACA,kCAAoC;AACpC,mCAAoC;AACpC,mCAAoC;AAEpC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,cAAc,CAAC,CAAA;AACzC,MAAa,YAAY;IACvB,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/cache/factory.ts"],"names":[],"mappings":";;;AACA,kCAAoC;AACpC,mCAAoC;AACpC,mCAAoC;AAEpC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,cAAc,CAAC,CAAA;AACzC,MAAa,YAAY;IACvB,MAAM,CAAC,UAAU,CACf,EAAE,SAAS,EAAE,oBAAoB,EAAuD,EACxF,WAAmB;QAEnB,MAAM,CAAC,IAAI,CAAC,UAAU,SAAS,UAAU,CAAC,CAAA;QAC1C,QAAQ,SAAS,EAAE;YACjB,KAAK,OAAO;gBACV,OAAO,IAAI,kBAAU,CAAC,oBAAoB,CAAC,CAAA;YAC7C,KAAK,OAAO,CAAC,CAAC;gBACZ,IAAI,CAAC,WAAW,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;iBACrE;gBACD,OAAO,IAAI,kBAAU,CAAC,WAAW,CAAC,CAAA;aACnC;SACF;IACH,CAAC;CACF;AAjBD,oCAiBC"}
|
package/cache/local.d.ts
CHANGED
|
@@ -9,17 +9,39 @@ export interface LocalCacheEntry<T> {
|
|
|
9
9
|
expirationTimestamp: number;
|
|
10
10
|
value: T;
|
|
11
11
|
}
|
|
12
|
+
declare class LinkedListNode<T = unknown> {
|
|
13
|
+
data: T;
|
|
14
|
+
next: LinkedListNode | null;
|
|
15
|
+
prev: LinkedListNode | null;
|
|
16
|
+
key: string;
|
|
17
|
+
constructor(key: string, data: T);
|
|
18
|
+
}
|
|
19
|
+
declare class DoubleLinkedList {
|
|
20
|
+
head: LinkedListNode | null;
|
|
21
|
+
tail: LinkedListNode | null;
|
|
22
|
+
size: number;
|
|
23
|
+
constructor();
|
|
24
|
+
insertAtTail(node: LinkedListNode): LinkedListNode<unknown>;
|
|
25
|
+
remove(node: LinkedListNode | null): LinkedListNode | undefined;
|
|
26
|
+
removeHead(): LinkedListNode | undefined;
|
|
27
|
+
}
|
|
12
28
|
/**
|
|
13
|
-
* Local implementation of a Cache. It uses a
|
|
14
|
-
*
|
|
15
|
-
*
|
|
29
|
+
* Local implementation of a Cache. It uses a DoubleLinkedList class for storing cache nodes.
|
|
30
|
+
* Each LinkedListNode is storing entries with both value and an expiration timestamp.
|
|
31
|
+
* Expired entries are deleted on reads (i.e. no background gc/upkeep).
|
|
16
32
|
* @typeParam T - the type for the entries' values
|
|
17
33
|
*/
|
|
18
34
|
export declare class LocalCache<T = unknown> implements Cache<T> {
|
|
19
35
|
type: CacheTypes;
|
|
20
|
-
|
|
36
|
+
capacity: number;
|
|
37
|
+
cache: Map<string, LinkedListNode<LocalCacheEntry<T>>>;
|
|
38
|
+
list: DoubleLinkedList;
|
|
39
|
+
constructor(capacity: number);
|
|
21
40
|
get(key: string): Promise<T | undefined>;
|
|
22
41
|
delete(key: string): Promise<void>;
|
|
23
42
|
set(key: string, value: T, ttl: number): Promise<void>;
|
|
24
43
|
setMany(entries: CacheEntry<T>[], ttl: number): Promise<void>;
|
|
44
|
+
private evictIfNeeded;
|
|
45
|
+
private moveToTail;
|
|
25
46
|
}
|
|
47
|
+
export {};
|
package/cache/local.js
CHANGED
|
@@ -4,45 +4,123 @@ exports.LocalCache = void 0;
|
|
|
4
4
|
const util_1 = require("../util");
|
|
5
5
|
const metrics_1 = require("./metrics");
|
|
6
6
|
const logger = (0, util_1.makeLogger)('LocalCache');
|
|
7
|
+
class LinkedListNode {
|
|
8
|
+
constructor(key, data) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.next = null;
|
|
11
|
+
this.prev = null;
|
|
12
|
+
this.key = key;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
class DoubleLinkedList {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.head = null;
|
|
18
|
+
this.tail = null;
|
|
19
|
+
this.size = 0;
|
|
20
|
+
}
|
|
21
|
+
insertAtTail(node) {
|
|
22
|
+
if (!this.tail) {
|
|
23
|
+
this.tail = node;
|
|
24
|
+
this.head = node;
|
|
25
|
+
node.next = null;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.tail.next = node;
|
|
29
|
+
node.prev = this.tail;
|
|
30
|
+
this.tail = node;
|
|
31
|
+
node.next = null;
|
|
32
|
+
}
|
|
33
|
+
this.size++;
|
|
34
|
+
return node;
|
|
35
|
+
}
|
|
36
|
+
remove(node) {
|
|
37
|
+
if (!node) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (node.prev !== null) {
|
|
41
|
+
node.prev.next = node.next;
|
|
42
|
+
}
|
|
43
|
+
if (node.next !== null) {
|
|
44
|
+
node.next.prev = node.prev;
|
|
45
|
+
}
|
|
46
|
+
if (node === this.head) {
|
|
47
|
+
this.head = this.head.next;
|
|
48
|
+
}
|
|
49
|
+
if (node === this.tail) {
|
|
50
|
+
this.tail = this.tail.prev;
|
|
51
|
+
}
|
|
52
|
+
this.size--;
|
|
53
|
+
return node;
|
|
54
|
+
}
|
|
55
|
+
removeHead() {
|
|
56
|
+
return this.remove(this.head);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
7
59
|
/**
|
|
8
|
-
* Local implementation of a Cache. It uses a
|
|
9
|
-
*
|
|
10
|
-
*
|
|
60
|
+
* Local implementation of a Cache. It uses a DoubleLinkedList class for storing cache nodes.
|
|
61
|
+
* Each LinkedListNode is storing entries with both value and an expiration timestamp.
|
|
62
|
+
* Expired entries are deleted on reads (i.e. no background gc/upkeep).
|
|
11
63
|
* @typeParam T - the type for the entries' values
|
|
12
64
|
*/
|
|
13
65
|
class LocalCache {
|
|
14
|
-
constructor() {
|
|
66
|
+
constructor(capacity) {
|
|
15
67
|
this.type = metrics_1.CacheTypes.Local;
|
|
16
|
-
this.
|
|
68
|
+
this.capacity = capacity;
|
|
69
|
+
this.cache = new Map();
|
|
70
|
+
this.list = new DoubleLinkedList();
|
|
17
71
|
}
|
|
18
72
|
async get(key) {
|
|
19
73
|
logger.trace(`Getting key ${key}`);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
74
|
+
if (this.cache.has(key)) {
|
|
75
|
+
const node = this.cache.get(key);
|
|
76
|
+
const expired = node.data.expirationTimestamp <= Date.now();
|
|
77
|
+
if (expired) {
|
|
78
|
+
logger.debug('Entry in local cache expired, deleting and returning undefined');
|
|
79
|
+
this.delete(key);
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
logger.debug('Found valid entry in local cache, returning value');
|
|
84
|
+
return node.data.value;
|
|
85
|
+
}
|
|
30
86
|
}
|
|
31
87
|
else {
|
|
32
|
-
logger.debug(
|
|
33
|
-
return
|
|
88
|
+
logger.debug(`No entry in local cache for key "${key}", returning undefined`);
|
|
89
|
+
return undefined;
|
|
34
90
|
}
|
|
35
91
|
}
|
|
36
92
|
async delete(key) {
|
|
37
93
|
logger.trace(`Deleting key ${key}`);
|
|
38
|
-
|
|
94
|
+
if (this.cache.has(key)) {
|
|
95
|
+
const node = this.cache.get(key);
|
|
96
|
+
this.list.remove(node);
|
|
97
|
+
this.cache.delete(key);
|
|
98
|
+
}
|
|
39
99
|
}
|
|
40
100
|
async set(key, value, ttl) {
|
|
41
101
|
logger.trace(`Setting key ${key} with ttl ${ttl}`);
|
|
42
|
-
this.
|
|
43
|
-
value
|
|
44
|
-
|
|
45
|
-
|
|
102
|
+
if (this.cache.has(key)) {
|
|
103
|
+
logger.trace(`Found existing key ${key}. Updating value...`);
|
|
104
|
+
const node = this.cache.get(key);
|
|
105
|
+
node.data = {
|
|
106
|
+
value,
|
|
107
|
+
expirationTimestamp: Date.now() + ttl,
|
|
108
|
+
};
|
|
109
|
+
// When existing key is updated we move it to the end of the list as we keep recently updated entries there
|
|
110
|
+
this.moveToTail(node);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// For new cache entries check if we reached maximum size to delete least recently updated entry and free up space
|
|
114
|
+
this.evictIfNeeded();
|
|
115
|
+
const data = {
|
|
116
|
+
value,
|
|
117
|
+
expirationTimestamp: Date.now() + ttl,
|
|
118
|
+
};
|
|
119
|
+
const node = new LinkedListNode(key, data);
|
|
120
|
+
// New entries are always added at the end of the list
|
|
121
|
+
this.list.insertAtTail(node);
|
|
122
|
+
this.cache.set(key, node);
|
|
123
|
+
}
|
|
46
124
|
}
|
|
47
125
|
async setMany(entries, ttl) {
|
|
48
126
|
logger.trace(`Setting a bunch of keys with ttl ${ttl}`);
|
|
@@ -50,6 +128,19 @@ class LocalCache {
|
|
|
50
128
|
this.set(key, value, ttl);
|
|
51
129
|
}
|
|
52
130
|
}
|
|
131
|
+
evictIfNeeded() {
|
|
132
|
+
if (this.list.size >= this.capacity) {
|
|
133
|
+
logger.warn(`Cache list reached maximum capacity, evicting least recently updated entry`);
|
|
134
|
+
const node = this.list.removeHead();
|
|
135
|
+
if (node) {
|
|
136
|
+
this.cache.delete(node.key);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
moveToTail(node) {
|
|
141
|
+
this.list.remove(node);
|
|
142
|
+
this.list.insertAtTail(node);
|
|
143
|
+
}
|
|
53
144
|
}
|
|
54
145
|
exports.LocalCache = LocalCache;
|
|
55
146
|
//# sourceMappingURL=local.js.map
|
package/cache/local.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":";;;AAAA,kCAAoC;AAEpC,uCAAsC;AAEtC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,YAAY,CAAC,CAAA;AAYvC
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":"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"}
|
package/config/index.d.ts
CHANGED
|
@@ -15,17 +15,18 @@ export declare const BaseSettings: {
|
|
|
15
15
|
readonly type: "string";
|
|
16
16
|
readonly default: "/";
|
|
17
17
|
};
|
|
18
|
-
readonly BATCH_TRANSPORT_SETUP_VALIDATION: {
|
|
19
|
-
readonly description: "Flag to toggle batch transport setup validation";
|
|
20
|
-
readonly type: "boolean";
|
|
21
|
-
readonly default: false;
|
|
22
|
-
};
|
|
23
18
|
readonly CACHE_MAX_AGE: {
|
|
24
19
|
readonly description: "Maximum amount of time (in ms) that a response will stay cached";
|
|
25
20
|
readonly type: "number";
|
|
26
21
|
readonly default: 90000;
|
|
27
22
|
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
28
23
|
};
|
|
24
|
+
readonly CACHE_MAX_ITEMS: {
|
|
25
|
+
readonly type: "number";
|
|
26
|
+
readonly description: "The maximum number of items that remain in the cache";
|
|
27
|
+
readonly default: 10000;
|
|
28
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
29
|
+
};
|
|
29
30
|
readonly CACHE_REDIS_CONNECTION_TIMEOUT: {
|
|
30
31
|
readonly description: "Connection timeout for redis client";
|
|
31
32
|
readonly type: "number";
|
|
@@ -141,17 +142,6 @@ export declare const BaseSettings: {
|
|
|
141
142
|
readonly type: "number";
|
|
142
143
|
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
143
144
|
};
|
|
144
|
-
readonly REQUEST_COALESCING_ENABLED: {
|
|
145
|
-
readonly description: "Enable request coalescing";
|
|
146
|
-
readonly type: "boolean";
|
|
147
|
-
readonly default: false;
|
|
148
|
-
};
|
|
149
|
-
readonly REQUEST_COALESCING_ENTROPY_MAX: {
|
|
150
|
-
readonly description: "Amount of random delay (entropy) in milliseconds that will be added to requests. Avoids issue where the request coalescing key will not be set before multiple other instances in a burst try to access the same key";
|
|
151
|
-
readonly type: "number";
|
|
152
|
-
readonly default: 0;
|
|
153
|
-
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
154
|
-
};
|
|
155
145
|
readonly RETRY: {
|
|
156
146
|
readonly type: "number";
|
|
157
147
|
readonly description: "Retry count for failed HTTP requests";
|
|
@@ -223,18 +213,6 @@ export declare const BaseSettings: {
|
|
|
223
213
|
readonly default: 300;
|
|
224
214
|
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
225
215
|
};
|
|
226
|
-
readonly REST_TRANSPORT_MAX_RATE_LIMIT_RETRIES: {
|
|
227
|
-
readonly description: "Maximum amount of times the Rest Transport will attempt to set up a request when blocked by the rate limiter";
|
|
228
|
-
readonly type: "number";
|
|
229
|
-
readonly default: 3;
|
|
230
|
-
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
231
|
-
};
|
|
232
|
-
readonly REST_TRANSPORT_MS_BETWEEN_RATE_LIMIT_RETRIES: {
|
|
233
|
-
readonly description: "Time that the Rest Transport will wait between retries when blocked by the rate limiter";
|
|
234
|
-
readonly type: "number";
|
|
235
|
-
readonly default: 400;
|
|
236
|
-
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
237
|
-
};
|
|
238
216
|
readonly SMOKE_TEST_PAYLOAD_FILE_NAME: {
|
|
239
217
|
readonly description: "Name of the test payload file used for the smoke endpoint";
|
|
240
218
|
readonly type: "string";
|
|
@@ -261,6 +239,30 @@ export declare const BaseSettings: {
|
|
|
261
239
|
readonly description: "CA certificate to use for authenticating client certificates";
|
|
262
240
|
readonly type: "string";
|
|
263
241
|
};
|
|
242
|
+
readonly MAX_HTTP_REQUEST_QUEUE_LENGTH: {
|
|
243
|
+
readonly description: "The maximum amount of queued requests for Http transports before new ones push oldest ones out of the queue";
|
|
244
|
+
readonly type: "number";
|
|
245
|
+
readonly default: 200;
|
|
246
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
247
|
+
};
|
|
248
|
+
readonly BACKGROUND_EXECUTE_MS_SSE: {
|
|
249
|
+
readonly description: "Time in milliseconds to sleep between SSE transports' background execute calls";
|
|
250
|
+
readonly type: "number";
|
|
251
|
+
readonly default: 1000;
|
|
252
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
253
|
+
};
|
|
254
|
+
readonly BACKGROUND_EXECUTE_MS_WS: {
|
|
255
|
+
readonly description: "Time in milliseconds to sleep between WS transports' background execute calls";
|
|
256
|
+
readonly type: "number";
|
|
257
|
+
readonly default: 1000;
|
|
258
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
259
|
+
};
|
|
260
|
+
readonly BACKGROUND_EXECUTE_MS_HTTP: {
|
|
261
|
+
readonly description: "Time in milliseconds to sleep between HTTP transports' background execute calls, when there are no requests to send";
|
|
262
|
+
readonly type: "number";
|
|
263
|
+
readonly default: 1000;
|
|
264
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
265
|
+
};
|
|
264
266
|
};
|
|
265
267
|
export declare const buildAdapterConfig: <CustomSettings extends CustomSettingsType<CustomSettings> = EmptySettings>({ overrides, customSettings, envVarsPrefix, }: {
|
|
266
268
|
overrides?: Partial<BaseAdapterConfig> | undefined;
|