@chainlink/external-adapter-framework 0.16.1 → 0.18.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/price.d.ts +2 -2
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +7 -1
- package/cache/index.d.ts +4 -4
- package/cache/index.js +13 -31
- package/cache/index.js.map +1 -1
- package/cache/local.d.ts +1 -17
- package/cache/local.js +2 -54
- package/cache/local.js.map +1 -1
- package/config/index.d.ts +6 -0
- package/config/index.js +6 -0
- package/config/index.js.map +1 -1
- package/package.json +1 -1
- package/transports/abstract/subscription.js +1 -1
- package/transports/abstract/subscription.js.map +1 -1
- package/util/index.d.ts +16 -0
- package/util/index.js +55 -1
- package/util/index.js.map +1 -1
- package/util/subscription-set/expiring-sorted-set.d.ts +11 -3
- package/util/subscription-set/expiring-sorted-set.js +63 -13
- package/util/subscription-set/expiring-sorted-set.js.map +1 -1
- package/util/subscription-set/redis-sorted-set.d.ts +2 -1
- package/util/subscription-set/redis-sorted-set.js +6 -5
- package/util/subscription-set/redis-sorted-set.js.map +1 -1
- package/util/subscription-set/subscription-set.d.ts +3 -1
- package/util/subscription-set/subscription-set.js +2 -1
- package/util/subscription-set/subscription-set.js.map +1 -1
package/adapter/price.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SettingsMap } from '../config';
|
|
2
2
|
import { AdapterRequest, AdapterRequestContext, AdapterResponse, RequestGenerics } from '../util';
|
|
3
3
|
import { AdapterEndpoint } from './endpoint';
|
|
4
|
-
import { Adapter, AdapterEndpointParams, AdapterParams,
|
|
4
|
+
import { Adapter, AdapterEndpointParams, AdapterParams, PriceEndpointGenerics } from './index';
|
|
5
5
|
/**
|
|
6
6
|
* Type for the base input parameter config that any [[PriceEndpoint]] must extend
|
|
7
7
|
*/
|
|
@@ -50,7 +50,7 @@ type IncludesMap = Record<string, Record<string, IncludeDetails>>;
|
|
|
50
50
|
* A PriceEndpoint is a specific type of AdapterEndpoint. Meant to comply with standard practices for
|
|
51
51
|
* Data Feeds, its InputParameters must extend the basic ones (base/quote).
|
|
52
52
|
*/
|
|
53
|
-
export declare class PriceEndpoint<T extends
|
|
53
|
+
export declare class PriceEndpoint<T extends PriceEndpointGenerics> extends AdapterEndpoint<T> {
|
|
54
54
|
constructor(params: AdapterEndpointParams<T> & {
|
|
55
55
|
inputParameters: PriceEndpointInputParameters;
|
|
56
56
|
});
|
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,
|
|
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,yDAAyD;QACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,aAAa,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAA;SACF;QAED,KAAK,CAAC,MAAM,CAAC,CAAA;QAEb,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,0CAA0C;YAC1C,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAEpD,MAAM,gBAAgB,GAAG,CAAC,GAAmB,EAAE,EAAE;gBAC/C,MAAM,YAAY,GAAG,GAEnB,CAAA;gBACF,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAA;gBACpD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBAEjF,IAAI,eAAe,EAAE;oBACnB,WAAW,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAA;oBAC3D,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,IAAI,WAAW,CAAC,KAAK,CAAA;iBAC5D;gBAED,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,IAAI,KAAK,CAAA;gBACjD,YAAY,CAAC,cAAc,CAAC,SAAS,GAAG;oBACtC,OAAO;iBACR,CAAA;YACH,CAAC,CAAA;YAED,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;SAC/C;IACH,CAAC;IAEQ,KAAK,CAAC,aAAa,CAC1B,GAEE,EACF,SAA2B;QAE3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAE1D,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE;YAC5D,mHAAmH;YACnH,MAAM,aAAa,GAAG,CAAC,GAAI,QAAQ,CAAC,MAAiB,CAAA;YACrD,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAA;YAC/B,gDAAgD;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiC,CAAA;YACvD,IAAI,IAAI,EAAE,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;aAC5B;SACF;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAhED,oCAgEC"}
|
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, RequestGenerics, SubscriptionSetFactory } from '../util';
|
|
7
|
+
import { AdapterRequest, RequestGenerics, SingleNumberResultResponse, SubscriptionSetFactory } from '../util';
|
|
8
8
|
import { Requester } from '../util/requester';
|
|
9
9
|
import { InputParameters } from '../validation';
|
|
10
10
|
import { AdapterError } from '../validation/error';
|
|
@@ -108,6 +108,12 @@ export interface EndpointRateLimitingConfig {
|
|
|
108
108
|
* Helper type structure that contains the different types passed to the generic parameters of an AdapterEndpoint
|
|
109
109
|
*/
|
|
110
110
|
export type EndpointGenerics = TransportGenerics;
|
|
111
|
+
/**
|
|
112
|
+
* Helper type structure that contains the different types passed to the generic parameters of a PriceEndpoint
|
|
113
|
+
*/
|
|
114
|
+
export type PriceEndpointGenerics = TransportGenerics & {
|
|
115
|
+
Response: SingleNumberResultResponse;
|
|
116
|
+
};
|
|
111
117
|
export type CustomInputValidator<T extends EndpointGenerics> = (input: T['Request']['Params'], config: AdapterConfig<T['CustomSettings']>) => AdapterError | undefined;
|
|
112
118
|
/**
|
|
113
119
|
* Structure to describe a specific endpoint in an [[Adapter]]
|
package/cache/index.d.ts
CHANGED
|
@@ -64,16 +64,16 @@ export declare const calculateFeedId: <T extends import("../transports").Transpo
|
|
|
64
64
|
* Calculates a unique key from the provided data.
|
|
65
65
|
*
|
|
66
66
|
* @param data - the request data/body, i.e. the adapter input params
|
|
67
|
-
* @param
|
|
67
|
+
* @param adapterConfig - the config for this Adapter
|
|
68
68
|
* @returns the calculated unique key
|
|
69
69
|
*
|
|
70
70
|
* @example
|
|
71
71
|
* ```
|
|
72
|
-
* calculateKey({ base: 'ETH', quote: 'BTC' }
|
|
73
|
-
* // equals
|
|
72
|
+
* calculateKey({ base: 'ETH', quote: 'BTC' })
|
|
73
|
+
* // equals `{"base":"eth","quote":"btc"}`
|
|
74
74
|
* ```
|
|
75
75
|
*/
|
|
76
|
-
export declare const calculateKey: <CustomSettings extends SettingsMap>(data: unknown,
|
|
76
|
+
export declare const calculateKey: <CustomSettings extends SettingsMap>(data: unknown, adapterConfig: AdapterConfig<CustomSettings>) => string;
|
|
77
77
|
/**
|
|
78
78
|
* Polls the provided Cache for an AdapterResponse set in the provided key. If the maximum
|
|
79
79
|
* amount of retries is exceeded, it returns undefined instead.
|
package/cache/index.js
CHANGED
|
@@ -22,64 +22,46 @@ __exportStar(require("./redis"), exports);
|
|
|
22
22
|
const logger = (0, util_1.makeLogger)('Cache');
|
|
23
23
|
// Uses calculateKey to generate a unique key from the endpoint name, data, and input parameters
|
|
24
24
|
const calculateCacheKey = ({ inputParameters, endpointName, adapterConfig, }, data) => {
|
|
25
|
-
|
|
26
|
-
if (paramNames.length === 0) {
|
|
25
|
+
if (Object.keys(inputParameters).length === 0) {
|
|
27
26
|
logger.trace(`Using default cache key ${adapterConfig.DEFAULT_CACHE_KEY}`);
|
|
28
27
|
return adapterConfig.DEFAULT_CACHE_KEY;
|
|
29
28
|
}
|
|
30
|
-
const cacheKey = `${endpointName}-${(0, exports.calculateKey)(data,
|
|
29
|
+
const cacheKey = `${endpointName}-${(0, exports.calculateKey)(data, adapterConfig)}`;
|
|
31
30
|
logger.trace(`Generated cache key for request: "${cacheKey}"`);
|
|
32
31
|
return cacheKey;
|
|
33
32
|
};
|
|
34
33
|
exports.calculateCacheKey = calculateCacheKey;
|
|
35
34
|
const calculateFeedId = ({ inputParameters, adapterConfig, }, data) => {
|
|
36
|
-
|
|
37
|
-
if (paramNames.length === 0) {
|
|
35
|
+
if (Object.keys(inputParameters).length === 0) {
|
|
38
36
|
logger.trace(`Cannot generate Feed ID without input parameters`);
|
|
39
37
|
return 'N/A';
|
|
40
38
|
}
|
|
41
|
-
return (0, exports.calculateKey)(data,
|
|
39
|
+
return (0, exports.calculateKey)(data, adapterConfig);
|
|
42
40
|
};
|
|
43
41
|
exports.calculateFeedId = calculateFeedId;
|
|
44
42
|
/**
|
|
45
43
|
* Calculates a unique key from the provided data.
|
|
46
44
|
*
|
|
47
45
|
* @param data - the request data/body, i.e. the adapter input params
|
|
48
|
-
* @param
|
|
46
|
+
* @param adapterConfig - the config for this Adapter
|
|
49
47
|
* @returns the calculated unique key
|
|
50
48
|
*
|
|
51
49
|
* @example
|
|
52
50
|
* ```
|
|
53
|
-
* calculateKey({ base: 'ETH', quote: 'BTC' }
|
|
54
|
-
* // equals
|
|
51
|
+
* calculateKey({ base: 'ETH', quote: 'BTC' })
|
|
52
|
+
* // equals `{"base":"eth","quote":"btc"}`
|
|
55
53
|
* ```
|
|
56
54
|
*/
|
|
57
|
-
const calculateKey = (data,
|
|
55
|
+
const calculateKey = (data, adapterConfig) => {
|
|
58
56
|
if (data && typeof data !== 'object') {
|
|
59
57
|
throw new Error('Data to calculate cache key should be an object');
|
|
60
58
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const param = params[paramName];
|
|
65
|
-
if (param === undefined) {
|
|
66
|
-
continue;
|
|
59
|
+
let cacheKey = JSON.stringify(data, (_, value) => {
|
|
60
|
+
if (value && typeof value === 'string') {
|
|
61
|
+
return value.toLowerCase();
|
|
67
62
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
case 'string':
|
|
71
|
-
cacheKey += param.toLowerCase();
|
|
72
|
-
break;
|
|
73
|
-
case 'number':
|
|
74
|
-
case 'boolean':
|
|
75
|
-
cacheKey += param.toString();
|
|
76
|
-
break;
|
|
77
|
-
case 'object':
|
|
78
|
-
// Force cache keys to only use performant properties of the input params.
|
|
79
|
-
// If the object were to be used, we'd have to sort its properties.
|
|
80
|
-
logger.debug(`Property "${paramName}" in request parameters is of type object, and won't be used in the cacheKey`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
63
|
+
return value;
|
|
64
|
+
});
|
|
83
65
|
if (cacheKey.length > adapterConfig.MAX_COMMON_KEY_SIZE) {
|
|
84
66
|
logger.warn(`Generated cache key for adapter request is bigger than the MAX_COMMON_KEY_SIZE and will be truncated`);
|
|
85
67
|
cacheKey = cacheKey.slice(0, adapterConfig.MAX_COMMON_KEY_SIZE);
|
package/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,kCAA4D;AAI5D,4CAAyB;AACzB,0CAAuB;AACvB,0CAAuB;AAEvB,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAA;AAsDlC,gGAAgG;AACzF,MAAM,iBAAiB,GAAG,CAC/B,EACE,eAAe,EACf,YAAY,EACZ,aAAa,GAKd,EACD,IAAa,EACL,EAAE;IACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"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"}
|
package/cache/local.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DoubleLinkedList, LinkedListNode } from '../util';
|
|
1
2
|
import { Cache, CacheEntry } from './index';
|
|
2
3
|
import { CacheTypes } from './metrics';
|
|
3
4
|
/**
|
|
@@ -9,22 +10,6 @@ export interface LocalCacheEntry<T> {
|
|
|
9
10
|
expirationTimestamp: number;
|
|
10
11
|
value: T;
|
|
11
12
|
}
|
|
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
|
-
}
|
|
28
13
|
/**
|
|
29
14
|
* Local implementation of a Cache. It uses a DoubleLinkedList class for storing cache nodes.
|
|
30
15
|
* Each LinkedListNode is storing entries with both value and an expiration timestamp.
|
|
@@ -44,4 +29,3 @@ export declare class LocalCache<T = unknown> implements Cache<T> {
|
|
|
44
29
|
private evictIfNeeded;
|
|
45
30
|
private moveToTail;
|
|
46
31
|
}
|
|
47
|
-
export {};
|
package/cache/local.js
CHANGED
|
@@ -4,58 +4,6 @@ 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
|
-
}
|
|
59
7
|
/**
|
|
60
8
|
* Local implementation of a Cache. It uses a DoubleLinkedList class for storing cache nodes.
|
|
61
9
|
* Each LinkedListNode is storing entries with both value and an expiration timestamp.
|
|
@@ -67,7 +15,7 @@ class LocalCache {
|
|
|
67
15
|
this.type = metrics_1.CacheTypes.Local;
|
|
68
16
|
this.capacity = capacity;
|
|
69
17
|
this.cache = new Map();
|
|
70
|
-
this.list = new DoubleLinkedList();
|
|
18
|
+
this.list = new util_1.DoubleLinkedList();
|
|
71
19
|
}
|
|
72
20
|
async get(key) {
|
|
73
21
|
logger.trace(`Getting key ${key}`);
|
|
@@ -116,7 +64,7 @@ class LocalCache {
|
|
|
116
64
|
value,
|
|
117
65
|
expirationTimestamp: Date.now() + ttl,
|
|
118
66
|
};
|
|
119
|
-
const node = new LinkedListNode(key, data);
|
|
67
|
+
const node = new util_1.LinkedListNode(key, data);
|
|
120
68
|
// New entries are always added at the end of the list
|
|
121
69
|
this.list.insertAtTail(node);
|
|
122
70
|
this.cache.set(key, node);
|
package/cache/local.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":"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"}
|
package/config/index.d.ts
CHANGED
|
@@ -76,6 +76,12 @@ export declare const BaseSettings: {
|
|
|
76
76
|
readonly default: "local";
|
|
77
77
|
readonly options: readonly ["local", "redis"];
|
|
78
78
|
};
|
|
79
|
+
readonly SUBSCRIPTION_SET_MAX_ITEMS: {
|
|
80
|
+
readonly type: "number";
|
|
81
|
+
readonly description: "The maximum number of subscriptions set";
|
|
82
|
+
readonly default: 10000;
|
|
83
|
+
readonly validate: import("../validation/utils").Validator<string | number>;
|
|
84
|
+
};
|
|
79
85
|
readonly CORRELATION_ID_ENABLED: {
|
|
80
86
|
readonly description: "Flag to enable correlation IDs for sent requests in logging";
|
|
81
87
|
readonly type: "boolean";
|
package/config/index.js
CHANGED
|
@@ -90,6 +90,12 @@ exports.BaseSettings = {
|
|
|
90
90
|
default: 'local',
|
|
91
91
|
options: ['local', 'redis'],
|
|
92
92
|
},
|
|
93
|
+
SUBSCRIPTION_SET_MAX_ITEMS: {
|
|
94
|
+
type: 'number',
|
|
95
|
+
description: 'The maximum number of subscriptions set',
|
|
96
|
+
default: 10000,
|
|
97
|
+
validate: utils_1.validator.integer({ min: 1000, max: 10000 }),
|
|
98
|
+
},
|
|
93
99
|
CORRELATION_ID_ENABLED: {
|
|
94
100
|
description: 'Flag to enable correlation IDs for sent requests in logging',
|
|
95
101
|
type: 'boolean',
|
package/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -42,7 +42,7 @@ class SubscriptionTransport {
|
|
|
42
42
|
async registerRequest(req, _) {
|
|
43
43
|
logger.debug(`Adding entry to subscription set (ttl ${this.subscriptionTtl}): [${req.requestContext.cacheKey}] = ${req.requestContext.data}`);
|
|
44
44
|
// This might need coalescing to avoid too frequent ttl updates
|
|
45
|
-
await this.subscriptionSet.add(req.requestContext.
|
|
45
|
+
await this.subscriptionSet.add(req.requestContext.data, this.subscriptionTtl, req.requestContext.cacheKey);
|
|
46
46
|
}
|
|
47
47
|
async backgroundExecute(context) {
|
|
48
48
|
logger.debug('Starting background execute');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qCAAwD;AAGxD,6DAA8C;AAE9C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,uBAAuB,CAAC,CAAA;AAElD;;;;;GAKG;AACH,MAAsB,qBAAqB;IAQzC,KAAK,CAAC,UAAU,CACd,YAAsC,EACtC,MAA0C,EAC1C,YAAoB;QAEpB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAA;QAC/C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA,CAAC,oCAAoC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAiC,EACjC,CAAqC;QAErC,MAAM,CAAC,KAAK,CACV,yCAAyC,IAAI,CAAC,eAAe,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAChI,CAAA;QAED,+DAA+D;QAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAG,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qCAAwD;AAGxD,6DAA8C;AAE9C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,uBAAuB,CAAC,CAAA;AAElD;;;;;GAKG;AACH,MAAsB,qBAAqB;IAQzC,KAAK,CAAC,UAAU,CACd,YAAsC,EACtC,MAA0C,EAC1C,YAAoB;QAEpB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAA;QAC/C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA,CAAC,oCAAoC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAiC,EACjC,CAAqC;QAErC,MAAM,CAAC,KAAK,CACV,yCAAyC,IAAI,CAAC,eAAe,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAChI,CAAA;QAED,+DAA+D;QAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAG,CAAC,cAAc,CAAC,IAAI,EACvB,IAAI,CAAC,eAAe,EACpB,GAAG,CAAC,cAAc,CAAC,QAAQ,CAC5B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACjD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAEnD,4DAA4D;QAC5D,gFAAgF;QAChF,2HAA2H;QAC3H,gBAAgB,CAAC,6BAA6B;aAC3C,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACjF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;CAmBF;AAjED,sDAiEC"}
|
package/util/index.d.ts
CHANGED
|
@@ -11,3 +11,19 @@ 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
13
|
export type PromiseOrValue<T> = Promise<T> | T;
|
|
14
|
+
export declare class LinkedListNode<T = unknown> {
|
|
15
|
+
data: T;
|
|
16
|
+
next: LinkedListNode | null;
|
|
17
|
+
prev: LinkedListNode | null;
|
|
18
|
+
key: string;
|
|
19
|
+
constructor(key: string, data: T);
|
|
20
|
+
}
|
|
21
|
+
export declare class DoubleLinkedList {
|
|
22
|
+
head: LinkedListNode | null;
|
|
23
|
+
tail: LinkedListNode | null;
|
|
24
|
+
size: number;
|
|
25
|
+
constructor();
|
|
26
|
+
insertAtTail(node: LinkedListNode): LinkedListNode<unknown>;
|
|
27
|
+
remove(node: LinkedListNode | null): LinkedListNode | undefined;
|
|
28
|
+
removeHead(): LinkedListNode | undefined;
|
|
29
|
+
}
|
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.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
17
|
+
exports.DoubleLinkedList = exports.LinkedListNode = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
__exportStar(require("./logger"), exports);
|
|
20
20
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
@@ -35,4 +35,58 @@ 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
|
+
class LinkedListNode {
|
|
39
|
+
constructor(key, data) {
|
|
40
|
+
this.data = data;
|
|
41
|
+
this.next = null;
|
|
42
|
+
this.prev = null;
|
|
43
|
+
this.key = key;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.LinkedListNode = LinkedListNode;
|
|
47
|
+
class DoubleLinkedList {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.head = null;
|
|
50
|
+
this.tail = null;
|
|
51
|
+
this.size = 0;
|
|
52
|
+
}
|
|
53
|
+
insertAtTail(node) {
|
|
54
|
+
if (!this.tail) {
|
|
55
|
+
this.tail = node;
|
|
56
|
+
this.head = node;
|
|
57
|
+
node.next = null;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.tail.next = node;
|
|
61
|
+
node.prev = this.tail;
|
|
62
|
+
this.tail = node;
|
|
63
|
+
node.next = null;
|
|
64
|
+
}
|
|
65
|
+
this.size++;
|
|
66
|
+
return node;
|
|
67
|
+
}
|
|
68
|
+
remove(node) {
|
|
69
|
+
if (!node) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (node.prev !== null) {
|
|
73
|
+
node.prev.next = node.next;
|
|
74
|
+
}
|
|
75
|
+
if (node.next !== null) {
|
|
76
|
+
node.next.prev = node.prev;
|
|
77
|
+
}
|
|
78
|
+
if (node === this.head) {
|
|
79
|
+
this.head = this.head.next;
|
|
80
|
+
}
|
|
81
|
+
if (node === this.tail) {
|
|
82
|
+
this.tail = this.tail.prev;
|
|
83
|
+
}
|
|
84
|
+
this.size--;
|
|
85
|
+
return node;
|
|
86
|
+
}
|
|
87
|
+
removeHead() {
|
|
88
|
+
return this.remove(this.head);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.DoubleLinkedList = DoubleLinkedList;
|
|
38
92
|
//# 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,0CAAuB;AACvB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,KAAK,SAIjB;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SubscriptionSet } from './subscription-set';
|
|
2
|
+
import { DoubleLinkedList, LinkedListNode, PromiseOrValue } from '..';
|
|
2
3
|
/**
|
|
3
4
|
* An object describing an entry in the expiring sorted set.
|
|
4
5
|
* @typeParam T - the type of the entry's value
|
|
@@ -14,8 +15,15 @@ interface ExpiringSortedSetEntry<T> {
|
|
|
14
15
|
* @typeParam T - the type of the set entries' values
|
|
15
16
|
*/
|
|
16
17
|
export declare class ExpiringSortedSet<T> implements SubscriptionSet<T> {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
capacity: number;
|
|
19
|
+
map: Map<string, LinkedListNode<ExpiringSortedSetEntry<T>>>;
|
|
20
|
+
list: DoubleLinkedList;
|
|
21
|
+
constructor(capacity: number);
|
|
22
|
+
add(value: T, ttl: number, key: string): void;
|
|
23
|
+
getAll(): PromiseOrValue<T[]>;
|
|
24
|
+
get(key: string): T | undefined;
|
|
25
|
+
delete(key: string): void;
|
|
26
|
+
private moveToTail;
|
|
27
|
+
private evictIfNeeded;
|
|
20
28
|
}
|
|
21
29
|
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExpiringSortedSet = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const logger = (0, __1.makeLogger)('ExpiringSortedSet');
|
|
4
6
|
/**
|
|
5
7
|
* This class implements a set of unique items, each of which has an expiration timestamp.
|
|
6
8
|
* On reads, items that have expired will be deleted from the set and not returned.
|
|
@@ -8,28 +10,76 @@ exports.ExpiringSortedSet = void 0;
|
|
|
8
10
|
* @typeParam T - the type of the set entries' values
|
|
9
11
|
*/
|
|
10
12
|
class ExpiringSortedSet {
|
|
11
|
-
constructor() {
|
|
13
|
+
constructor(capacity) {
|
|
14
|
+
this.capacity = capacity;
|
|
12
15
|
this.map = new Map();
|
|
16
|
+
this.list = new __1.DoubleLinkedList();
|
|
13
17
|
}
|
|
14
|
-
add(
|
|
15
|
-
this.map.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
add(value, ttl, key) {
|
|
19
|
+
let node = this.map.get(key);
|
|
20
|
+
if (node) {
|
|
21
|
+
node.data = {
|
|
22
|
+
value,
|
|
23
|
+
expirationTimestamp: Date.now() + ttl,
|
|
24
|
+
};
|
|
25
|
+
this.moveToTail(node);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.evictIfNeeded();
|
|
29
|
+
const data = {
|
|
30
|
+
value,
|
|
31
|
+
expirationTimestamp: Date.now() + ttl,
|
|
32
|
+
};
|
|
33
|
+
node = new __1.LinkedListNode(key, data);
|
|
34
|
+
this.list.insertAtTail(node);
|
|
35
|
+
this.map.set(key, node);
|
|
36
|
+
}
|
|
19
37
|
}
|
|
20
38
|
getAll() {
|
|
21
39
|
const results = [];
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
40
|
+
for (const [key] of this.map.entries()) {
|
|
41
|
+
const value = this.get(key);
|
|
42
|
+
if (value) {
|
|
43
|
+
results.push(value);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return results;
|
|
47
|
+
}
|
|
48
|
+
get(key) {
|
|
49
|
+
const node = this.map.get(key);
|
|
50
|
+
if (node) {
|
|
51
|
+
const expired = node.data.expirationTimestamp <= Date.now();
|
|
52
|
+
if (expired) {
|
|
53
|
+
this.delete(key);
|
|
54
|
+
return undefined;
|
|
27
55
|
}
|
|
28
56
|
else {
|
|
29
|
-
|
|
57
|
+
return node.data.value;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
delete(key) {
|
|
65
|
+
const node = this.map.get(key);
|
|
66
|
+
if (node) {
|
|
67
|
+
this.list.remove(node);
|
|
68
|
+
this.map.delete(key);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
moveToTail(node) {
|
|
72
|
+
this.list.remove(node);
|
|
73
|
+
this.list.insertAtTail(node);
|
|
74
|
+
}
|
|
75
|
+
evictIfNeeded() {
|
|
76
|
+
if (this.list.size >= this.capacity) {
|
|
77
|
+
const node = this.list.removeHead();
|
|
78
|
+
if (node) {
|
|
79
|
+
logger.warn(`List reached maximum capacity, evicting least recently updated entry. The subscription with key ${node.key} was removed.`);
|
|
80
|
+
this.map.delete(node.key);
|
|
30
81
|
}
|
|
31
82
|
}
|
|
32
|
-
return results;
|
|
33
83
|
}
|
|
34
84
|
}
|
|
35
85
|
exports.ExpiringSortedSet = ExpiringSortedSet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expiring-sorted-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/expiring-sorted-set.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"expiring-sorted-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/expiring-sorted-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export declare class RedisSubscriptionSet<T> implements SubscriptionSet<T> {
|
|
|
4
4
|
private redisClient;
|
|
5
5
|
private subscriptionSetKey;
|
|
6
6
|
constructor(redisClient: Redis, subscriptionSetKey: string);
|
|
7
|
-
add(
|
|
7
|
+
add(value: T, ttl: number): Promise<undefined>;
|
|
8
8
|
getAll(): Promise<T[]>;
|
|
9
|
+
get(): T | undefined;
|
|
9
10
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RedisSubscriptionSet = void 0;
|
|
4
|
-
// Delimiter used to store both key and value in redis sorted set string field together
|
|
5
|
-
const DELIMITER = '>';
|
|
6
4
|
class RedisSubscriptionSet {
|
|
7
5
|
constructor(redisClient, subscriptionSetKey) {
|
|
8
6
|
this.redisClient = redisClient;
|
|
9
7
|
this.subscriptionSetKey = subscriptionSetKey;
|
|
10
8
|
}
|
|
11
|
-
async add(
|
|
12
|
-
const storedValue =
|
|
9
|
+
async add(value, ttl) {
|
|
10
|
+
const storedValue = JSON.stringify(value);
|
|
13
11
|
await this.redisClient.zadd(this.subscriptionSetKey, Date.now() + ttl, storedValue);
|
|
14
12
|
return;
|
|
15
13
|
}
|
|
@@ -20,10 +18,13 @@ class RedisSubscriptionSet {
|
|
|
20
18
|
const validEntries = await this.redisClient.zrange(this.subscriptionSetKey, 0, -1);
|
|
21
19
|
validEntries.forEach((entry) => {
|
|
22
20
|
// Separate request and cache key prior to populating results array
|
|
23
|
-
parsedRequests.push(JSON.parse(entry
|
|
21
|
+
parsedRequests.push(JSON.parse(entry));
|
|
24
22
|
});
|
|
25
23
|
return parsedRequests;
|
|
26
24
|
}
|
|
25
|
+
get() {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
27
28
|
}
|
|
28
29
|
exports.RedisSubscriptionSet = RedisSubscriptionSet;
|
|
29
30
|
//# sourceMappingURL=redis-sorted-set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-sorted-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/redis-sorted-set.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"redis-sorted-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/redis-sorted-set.ts"],"names":[],"mappings":";;;AAGA,MAAa,oBAAoB;IAK/B,YAAY,WAAkB,EAAE,kBAA0B;QACxD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAW;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,WAAW,CAAC,CAAA;QACnF,OAAM;IACR,CAAC;IAED,KAAK,CAAC,MAAM;QACV,sCAAsC;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACpF,MAAM,cAAc,GAAQ,EAAE,CAAA;QAC9B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAClF,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,mEAAmE;YACnE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QACF,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,GAAG;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA/BD,oDA+BC"}
|
|
@@ -6,14 +6,16 @@ import { AdapterConfig } from '../../config';
|
|
|
6
6
|
*/
|
|
7
7
|
export interface SubscriptionSet<T> {
|
|
8
8
|
/** Add a new subscription to the set */
|
|
9
|
-
add(
|
|
9
|
+
add(value: T, ttl: number, key?: string): PromiseOrValue<void>;
|
|
10
10
|
/** Get all subscriptions from the set as a list */
|
|
11
11
|
getAll(): PromiseOrValue<T[]>;
|
|
12
|
+
get: (key: string) => T | undefined;
|
|
12
13
|
}
|
|
13
14
|
export declare class SubscriptionSetFactory {
|
|
14
15
|
private cacheType;
|
|
15
16
|
private redisClient?;
|
|
16
17
|
private adapterName?;
|
|
18
|
+
private capacity;
|
|
17
19
|
constructor(config: AdapterConfig, adapterName: string, redisClient?: Redis);
|
|
18
20
|
buildSet<T>(endpointName: string): SubscriptionSet<T>;
|
|
19
21
|
}
|
|
@@ -8,11 +8,12 @@ class SubscriptionSetFactory {
|
|
|
8
8
|
this.cacheType = config.CACHE_TYPE;
|
|
9
9
|
this.redisClient = redisClient;
|
|
10
10
|
this.adapterName = adapterName;
|
|
11
|
+
this.capacity = config.SUBSCRIPTION_SET_MAX_ITEMS;
|
|
11
12
|
}
|
|
12
13
|
buildSet(endpointName) {
|
|
13
14
|
switch (this.cacheType) {
|
|
14
15
|
case 'local':
|
|
15
|
-
return new expiring_sorted_set_1.ExpiringSortedSet();
|
|
16
|
+
return new expiring_sorted_set_1.ExpiringSortedSet(this.capacity);
|
|
16
17
|
case 'redis': {
|
|
17
18
|
if (!this.redisClient) {
|
|
18
19
|
throw new Error('Redis client undefined. Cannot create Redis subscription set');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/subscription-set.ts"],"names":[],"mappings":";;;AAGA,+DAAyD;AACzD,yDAAyD;
|
|
1
|
+
{"version":3,"file":"subscription-set.js","sourceRoot":"","sources":["../../../../src/util/subscription-set/subscription-set.ts"],"names":[],"mappings":";;;AAGA,+DAAyD;AACzD,yDAAyD;AAezD,MAAa,sBAAsB;IAMjC,YAAY,MAAqB,EAAE,WAAmB,EAAE,WAAmB;QACzE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAA;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,0BAA0B,CAAA;IACnD,CAAC;IAED,QAAQ,CAAI,YAAoB;QAC9B,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,OAAO;gBACV,OAAO,IAAI,uCAAiB,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChD,KAAK,OAAO,CAAC,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;iBAChF;gBACD,wDAAwD;gBACxD,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,kBAAkB,CAAA;gBAChF,OAAO,IAAI,uCAAoB,CAAI,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;aACzE;SACF;IACH,CAAC;CACF;AA3BD,wDA2BC"}
|