@blackglory/structures 0.2.3 → 0.2.7
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/CHANGELOG.md +24 -0
- package/README.md +41 -11
- package/dist/es2015/index.min.mjs +2 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +673 -273
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +677 -274
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +2 -3
- package/dist/es2015/index.umd.min.js.map +1 -1
- package/dist/es2018/index.min.mjs +2 -2
- package/dist/es2018/index.min.mjs.map +1 -1
- package/dist/es2018/index.mjs +673 -273
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +677 -274
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +2 -3
- package/dist/es2018/index.umd.min.js.map +1 -1
- package/lib/es2015/box.d.ts +6 -0
- package/lib/es2015/box.js +30 -0
- package/lib/es2015/box.js.map +1 -0
- package/lib/es2015/expirable-map.d.ts +18 -0
- package/lib/es2015/expirable-map.js +109 -0
- package/lib/es2015/expirable-map.js.map +1 -0
- package/lib/es2015/index.d.ts +3 -0
- package/lib/es2015/index.js +3 -0
- package/lib/es2015/index.js.map +1 -1
- package/lib/es2015/lru-map.js +4 -3
- package/lib/es2015/lru-map.js.map +1 -1
- package/lib/es2015/tlru-map.d.ts +21 -0
- package/lib/es2015/tlru-map.js +138 -0
- package/lib/es2015/tlru-map.js.map +1 -0
- package/lib/es2015/trie-map.js +1 -1
- package/lib/es2015/trie-map.js.map +1 -1
- package/lib/es2018/box.d.ts +6 -0
- package/lib/es2018/box.js +30 -0
- package/lib/es2018/box.js.map +1 -0
- package/lib/es2018/expirable-map.d.ts +18 -0
- package/lib/es2018/expirable-map.js +109 -0
- package/lib/es2018/expirable-map.js.map +1 -0
- package/lib/es2018/index.d.ts +3 -0
- package/lib/es2018/index.js +3 -0
- package/lib/es2018/index.js.map +1 -1
- package/lib/es2018/lru-map.js +4 -3
- package/lib/es2018/lru-map.js.map +1 -1
- package/lib/es2018/tlru-map.d.ts +21 -0
- package/lib/es2018/tlru-map.js +138 -0
- package/lib/es2018/tlru-map.js.map +1 -0
- package/lib/es2018/trie-map.js +1 -1
- package/lib/es2018/trie-map.js.map +1 -1
- package/package.json +25 -23
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Box_value;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Box = void 0;
|
|
16
|
+
class Box {
|
|
17
|
+
constructor(value) {
|
|
18
|
+
_Box_value.set(this, void 0);
|
|
19
|
+
__classPrivateFieldSet(this, _Box_value, value, "f");
|
|
20
|
+
}
|
|
21
|
+
set(value) {
|
|
22
|
+
__classPrivateFieldSet(this, _Box_value, value, "f");
|
|
23
|
+
}
|
|
24
|
+
get() {
|
|
25
|
+
return __classPrivateFieldGet(this, _Box_value, "f");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Box = Box;
|
|
29
|
+
_Box_value = new WeakMap();
|
|
30
|
+
//# sourceMappingURL=box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,MAAa,GAAG;IAGd,YAAY,KAAQ;QAFpB,6BAAS;QAGP,uBAAA,IAAI,cAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,uBAAA,IAAI,cAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAED,GAAG;QACD,OAAO,uBAAA,IAAI,kBAAO,CAAA;IACpB,CAAC;CACF;AAdD,kBAcC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class ExpirableMap<K, V> {
|
|
2
|
+
#private;
|
|
3
|
+
itemMetadataSortedByExpirationTime: Array<{
|
|
4
|
+
key: K;
|
|
5
|
+
expirationTime: number;
|
|
6
|
+
}>;
|
|
7
|
+
get [Symbol.toStringTag](): string;
|
|
8
|
+
get size(): number;
|
|
9
|
+
set(key: K, value: V, maxAge: number): this;
|
|
10
|
+
has(key: K): boolean;
|
|
11
|
+
get(key: K): V | undefined;
|
|
12
|
+
delete(key: K): boolean;
|
|
13
|
+
clear(): void;
|
|
14
|
+
private addItemMetadata;
|
|
15
|
+
private removeItemMetadata;
|
|
16
|
+
private clearExpiredItems;
|
|
17
|
+
private rescheduleClearTimeout;
|
|
18
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _ExpirableMap_map, _ExpirableMap_cancelClearTimeout;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ExpirableMap = void 0;
|
|
16
|
+
const extra_timers_1 = require("extra-timers");
|
|
17
|
+
class ExpirableMap {
|
|
18
|
+
constructor() {
|
|
19
|
+
_ExpirableMap_map.set(this, new Map());
|
|
20
|
+
_ExpirableMap_cancelClearTimeout.set(this, void 0);
|
|
21
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
22
|
+
}
|
|
23
|
+
get [(_ExpirableMap_map = new WeakMap(), _ExpirableMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
|
|
24
|
+
return this.constructor.name;
|
|
25
|
+
}
|
|
26
|
+
get size() {
|
|
27
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").size;
|
|
28
|
+
}
|
|
29
|
+
set(key, value, maxAge) {
|
|
30
|
+
__classPrivateFieldGet(this, _ExpirableMap_map, "f").set(key, value);
|
|
31
|
+
this.removeItemMetadata(key);
|
|
32
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
has(key) {
|
|
36
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").has(key);
|
|
37
|
+
}
|
|
38
|
+
get(key) {
|
|
39
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").get(key);
|
|
40
|
+
}
|
|
41
|
+
delete(key) {
|
|
42
|
+
const exists = __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(key);
|
|
43
|
+
if (exists) {
|
|
44
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
45
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
46
|
+
if (index === 0) {
|
|
47
|
+
this.rescheduleClearTimeout();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return exists;
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
var _a;
|
|
54
|
+
__classPrivateFieldGet(this, _ExpirableMap_map, "f").clear();
|
|
55
|
+
(_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
56
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
57
|
+
}
|
|
58
|
+
addItemMetadata(key, expirationTime) {
|
|
59
|
+
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
60
|
+
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
61
|
+
if (expirationTime < item.expirationTime) {
|
|
62
|
+
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
63
|
+
if (i === 0) {
|
|
64
|
+
this.rescheduleClearTimeout();
|
|
65
|
+
}
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
70
|
+
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
71
|
+
this.rescheduleClearTimeout();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
removeItemMetadata(key) {
|
|
75
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
76
|
+
if (index >= 0) {
|
|
77
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
78
|
+
if (index === 0) {
|
|
79
|
+
this.rescheduleClearTimeout();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
clearExpiredItems(timestamp) {
|
|
84
|
+
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
85
|
+
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
86
|
+
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
87
|
+
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
88
|
+
expiredItemKeys.forEach(x => __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(x.key));
|
|
89
|
+
}
|
|
90
|
+
rescheduleClearTimeout() {
|
|
91
|
+
var _a;
|
|
92
|
+
(_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
93
|
+
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
94
|
+
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
95
|
+
if (Number.isFinite(item.expirationTime)) {
|
|
96
|
+
const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
97
|
+
this.clearExpiredItems(Date.now());
|
|
98
|
+
this.rescheduleClearTimeout();
|
|
99
|
+
});
|
|
100
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, () => {
|
|
101
|
+
cancel();
|
|
102
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, undefined, "f");
|
|
103
|
+
}, "f");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ExpirableMap = ExpirableMap;
|
|
109
|
+
//# sourceMappingURL=expirable-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2015/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export * from './box';
|
|
1
2
|
export * from './cons';
|
|
2
3
|
export * from './emitter';
|
|
3
4
|
export * from './hash-map';
|
|
4
5
|
export * from './hash-set';
|
|
5
6
|
export * from './queue';
|
|
6
7
|
export * from './lru-map';
|
|
8
|
+
export * from './expirable-map';
|
|
9
|
+
export * from './tlru-map';
|
|
7
10
|
export * from './trie-map';
|
package/lib/es2015/index.js
CHANGED
|
@@ -10,11 +10,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./box"), exports);
|
|
13
14
|
__exportStar(require("./cons"), exports);
|
|
14
15
|
__exportStar(require("./emitter"), exports);
|
|
15
16
|
__exportStar(require("./hash-map"), exports);
|
|
16
17
|
__exportStar(require("./hash-set"), exports);
|
|
17
18
|
__exportStar(require("./queue"), exports);
|
|
18
19
|
__exportStar(require("./lru-map"), exports);
|
|
20
|
+
__exportStar(require("./expirable-map"), exports);
|
|
21
|
+
__exportStar(require("./tlru-map"), exports);
|
|
19
22
|
__exportStar(require("./trie-map"), exports);
|
|
20
23
|
//# sourceMappingURL=index.js.map
|
package/lib/es2015/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,6CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B"}
|
package/lib/es2015/lru-map.js
CHANGED
|
@@ -14,12 +14,13 @@ var _LRUMap_limit, _LRUMap_map;
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.LRUMap = void 0;
|
|
16
16
|
const errors_1 = require("@blackglory/errors");
|
|
17
|
+
const iterable_operator_1 = require("iterable-operator");
|
|
17
18
|
class LRUMap {
|
|
18
19
|
constructor(limit) {
|
|
19
20
|
_LRUMap_limit.set(this, void 0);
|
|
20
21
|
_LRUMap_map.set(this, new Map());
|
|
21
|
-
errors_1.assert(Number.isInteger(limit), 'The parameter limit must be an integer');
|
|
22
|
-
errors_1.assert(limit > 0, 'The parameter limit must be a positive value');
|
|
22
|
+
(0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
|
|
23
|
+
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
23
24
|
__classPrivateFieldSet(this, _LRUMap_limit, limit, "f");
|
|
24
25
|
}
|
|
25
26
|
get [(_LRUMap_limit = new WeakMap(), _LRUMap_map = new WeakMap(), Symbol.toStringTag)]() {
|
|
@@ -61,7 +62,7 @@ class LRUMap {
|
|
|
61
62
|
__classPrivateFieldGet(this, _LRUMap_map, "f").set(key, value);
|
|
62
63
|
}
|
|
63
64
|
getColdestKey() {
|
|
64
|
-
return __classPrivateFieldGet(this, _LRUMap_map, "f").keys()
|
|
65
|
+
return (0, iterable_operator_1.first)(__classPrivateFieldGet(this, _LRUMap_map, "f").keys());
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
exports.LRUMap = LRUMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lru-map.js","sourceRoot":"","sources":["../../src/lru-map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2C;
|
|
1
|
+
{"version":3,"file":"lru-map.js","sourceRoot":"","sources":["../../src/lru-map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,yDAAyC;AAEzC,MAAa,MAAM;IAYjB,YAAY,KAAa;QAXzB,gCAAc;QACd,sBAAO,IAAI,GAAG,EAAQ,EAAA;QAWpB,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAA;QACzE,IAAA,eAAM,EAAC,KAAK,GAAG,CAAC,EAAE,8CAA8C,CAAC,CAAA;QAEjE,uBAAA,IAAI,iBAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAbD,IAAI,8DAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,mBAAK,CAAC,IAAI,CAAA;IACvB,CAAC;IASD,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC5B;aAAM;YACL,IAAI,uBAAA,IAAI,mBAAK,CAAC,IAAI,KAAK,uBAAA,IAAI,qBAAO,EAAE;gBAClC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAG,CAAC,CAAA;aACxC;YACD,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC1B;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEpC,MAAM,KAAK,GAAG,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,mBAAK,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAKO,UAAU,CAAC,GAAM,EAAE,KAAQ;QACjC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAKO,aAAa;QACnB,OAAO,IAAA,yBAAK,EAAC,uBAAA,IAAI,mBAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAChC,CAAC;CACF;AAjED,wBAiEC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class TLRUMap<K, V> {
|
|
2
|
+
#private;
|
|
3
|
+
itemMetadataSortedByExpirationTime: Array<{
|
|
4
|
+
key: K;
|
|
5
|
+
expirationTime: number;
|
|
6
|
+
}>;
|
|
7
|
+
get [Symbol.toStringTag](): string;
|
|
8
|
+
get size(): number;
|
|
9
|
+
constructor(limit: number);
|
|
10
|
+
set(key: K, value: V, maxAge: number): this;
|
|
11
|
+
has(key: K): boolean;
|
|
12
|
+
get(key: K): V | undefined;
|
|
13
|
+
delete(key: K): boolean;
|
|
14
|
+
clear(): void;
|
|
15
|
+
private updateItem;
|
|
16
|
+
private addItemMetadata;
|
|
17
|
+
private removeItemMetadata;
|
|
18
|
+
private clearExpiredItems;
|
|
19
|
+
private rescheduleClearTimeout;
|
|
20
|
+
private getColdestKey;
|
|
21
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _TLRUMap_limit, _TLRUMap_map, _TLRUMap_cancelClearTimeout;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TLRUMap = void 0;
|
|
16
|
+
const errors_1 = require("@blackglory/errors");
|
|
17
|
+
const iterable_operator_1 = require("iterable-operator");
|
|
18
|
+
const extra_timers_1 = require("extra-timers");
|
|
19
|
+
class TLRUMap {
|
|
20
|
+
constructor(limit) {
|
|
21
|
+
_TLRUMap_limit.set(this, void 0);
|
|
22
|
+
_TLRUMap_map.set(this, new Map());
|
|
23
|
+
_TLRUMap_cancelClearTimeout.set(this, void 0);
|
|
24
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
25
|
+
(0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
|
|
26
|
+
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
27
|
+
__classPrivateFieldSet(this, _TLRUMap_limit, limit, "f");
|
|
28
|
+
}
|
|
29
|
+
get [(_TLRUMap_limit = new WeakMap(), _TLRUMap_map = new WeakMap(), _TLRUMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
|
|
30
|
+
return this.constructor.name;
|
|
31
|
+
}
|
|
32
|
+
get size() {
|
|
33
|
+
return __classPrivateFieldGet(this, _TLRUMap_map, "f").size;
|
|
34
|
+
}
|
|
35
|
+
set(key, value, maxAge) {
|
|
36
|
+
if (__classPrivateFieldGet(this, _TLRUMap_map, "f").has(key)) {
|
|
37
|
+
this.updateItem(key, value);
|
|
38
|
+
this.removeItemMetadata(key);
|
|
39
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
if (__classPrivateFieldGet(this, _TLRUMap_map, "f").size === __classPrivateFieldGet(this, _TLRUMap_limit, "f")) {
|
|
43
|
+
__classPrivateFieldGet(this, _TLRUMap_map, "f").delete(this.getColdestKey());
|
|
44
|
+
}
|
|
45
|
+
__classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
|
|
46
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
47
|
+
}
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
has(key) {
|
|
51
|
+
return __classPrivateFieldGet(this, _TLRUMap_map, "f").has(key);
|
|
52
|
+
}
|
|
53
|
+
get(key) {
|
|
54
|
+
if (this.has(key)) {
|
|
55
|
+
const value = __classPrivateFieldGet(this, _TLRUMap_map, "f").get(key);
|
|
56
|
+
this.updateItem(key, value);
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
delete(key) {
|
|
64
|
+
const result = __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
|
|
65
|
+
if (result) {
|
|
66
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
67
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
68
|
+
if (index === 0) {
|
|
69
|
+
this.rescheduleClearTimeout();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
clear() {
|
|
75
|
+
var _a;
|
|
76
|
+
__classPrivateFieldGet(this, _TLRUMap_map, "f").clear();
|
|
77
|
+
(_a = __classPrivateFieldGet(this, _TLRUMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
78
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
79
|
+
}
|
|
80
|
+
updateItem(key, value) {
|
|
81
|
+
__classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
|
|
82
|
+
__classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
|
|
83
|
+
}
|
|
84
|
+
addItemMetadata(key, expirationTime) {
|
|
85
|
+
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
86
|
+
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
87
|
+
if (expirationTime < item.expirationTime) {
|
|
88
|
+
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
89
|
+
if (i === 0) {
|
|
90
|
+
this.rescheduleClearTimeout();
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
96
|
+
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
97
|
+
this.rescheduleClearTimeout();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
removeItemMetadata(key) {
|
|
101
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
102
|
+
if (index >= 0) {
|
|
103
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
104
|
+
if (index === 0) {
|
|
105
|
+
this.rescheduleClearTimeout();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
clearExpiredItems(timestamp) {
|
|
110
|
+
const indexOfFirstUnexpiredItem = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
111
|
+
const expiredItemKeys = indexOfFirstUnexpiredItem >= 0
|
|
112
|
+
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpiredItem)
|
|
113
|
+
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
114
|
+
expiredItemKeys.forEach(x => __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(x.key));
|
|
115
|
+
}
|
|
116
|
+
rescheduleClearTimeout() {
|
|
117
|
+
var _a;
|
|
118
|
+
(_a = __classPrivateFieldGet(this, _TLRUMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
119
|
+
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
120
|
+
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
121
|
+
if (Number.isFinite(item.expirationTime)) {
|
|
122
|
+
const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
123
|
+
this.clearExpiredItems(Date.now());
|
|
124
|
+
this.rescheduleClearTimeout();
|
|
125
|
+
});
|
|
126
|
+
__classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, () => {
|
|
127
|
+
cancel();
|
|
128
|
+
__classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, undefined, "f");
|
|
129
|
+
}, "f");
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
getColdestKey() {
|
|
134
|
+
return (0, iterable_operator_1.first)(__classPrivateFieldGet(this, _TLRUMap_map, "f").keys());
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.TLRUMap = TLRUMap;
|
|
138
|
+
//# sourceMappingURL=tlru-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2015/trie-map.js
CHANGED
|
@@ -70,7 +70,7 @@ class TrieMap {
|
|
|
70
70
|
}
|
|
71
71
|
delete node.value;
|
|
72
72
|
if (node.children.size === 0) {
|
|
73
|
-
for (const [part, parentNode] of iterable_operator_1.toArray(iterable_operator_1.zip(key, parentNodes)).reverse()) {
|
|
73
|
+
for (const [part, parentNode] of (0, iterable_operator_1.toArray)((0, iterable_operator_1.zip)(key, parentNodes)).reverse()) {
|
|
74
74
|
parentNode.children.delete(part);
|
|
75
75
|
if (parentNode.children.size !== 0)
|
|
76
76
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAgD;AAGhD,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACE,wBAAQ,IAAI,QAAQ,EAAQ,EAAA;IAoE9B,CAAC;IAlEC,IAAI,iCAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAQ,CAAC,CAAA;aAC9C;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,WAAW,GAAqB,EAAE,CAAA;QACxC,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;QAGjB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,2BAAO,
|
|
1
|
+
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAgD;AAGhD,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACE,wBAAQ,IAAI,QAAQ,EAAQ,EAAA;IAoE9B,CAAC;IAlEC,IAAI,iCAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAQ,CAAC,CAAA;aAC9C;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,WAAW,GAAqB,EAAE,CAAA;QACxC,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;QAGjB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAA,2BAAO,EAAC,IAAA,uBAAG,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBAAE,MAAK;aAC1C;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AArED,0BAqEC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Box_value;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Box = void 0;
|
|
16
|
+
class Box {
|
|
17
|
+
constructor(value) {
|
|
18
|
+
_Box_value.set(this, void 0);
|
|
19
|
+
__classPrivateFieldSet(this, _Box_value, value, "f");
|
|
20
|
+
}
|
|
21
|
+
set(value) {
|
|
22
|
+
__classPrivateFieldSet(this, _Box_value, value, "f");
|
|
23
|
+
}
|
|
24
|
+
get() {
|
|
25
|
+
return __classPrivateFieldGet(this, _Box_value, "f");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Box = Box;
|
|
29
|
+
_Box_value = new WeakMap();
|
|
30
|
+
//# sourceMappingURL=box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,MAAa,GAAG;IAGd,YAAY,KAAQ;QAFpB,6BAAS;QAGP,uBAAA,IAAI,cAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,uBAAA,IAAI,cAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAED,GAAG;QACD,OAAO,uBAAA,IAAI,kBAAO,CAAA;IACpB,CAAC;CACF;AAdD,kBAcC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class ExpirableMap<K, V> {
|
|
2
|
+
#private;
|
|
3
|
+
itemMetadataSortedByExpirationTime: Array<{
|
|
4
|
+
key: K;
|
|
5
|
+
expirationTime: number;
|
|
6
|
+
}>;
|
|
7
|
+
get [Symbol.toStringTag](): string;
|
|
8
|
+
get size(): number;
|
|
9
|
+
set(key: K, value: V, maxAge: number): this;
|
|
10
|
+
has(key: K): boolean;
|
|
11
|
+
get(key: K): V | undefined;
|
|
12
|
+
delete(key: K): boolean;
|
|
13
|
+
clear(): void;
|
|
14
|
+
private addItemMetadata;
|
|
15
|
+
private removeItemMetadata;
|
|
16
|
+
private clearExpiredItems;
|
|
17
|
+
private rescheduleClearTimeout;
|
|
18
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _ExpirableMap_map, _ExpirableMap_cancelClearTimeout;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ExpirableMap = void 0;
|
|
16
|
+
const extra_timers_1 = require("extra-timers");
|
|
17
|
+
class ExpirableMap {
|
|
18
|
+
constructor() {
|
|
19
|
+
_ExpirableMap_map.set(this, new Map());
|
|
20
|
+
_ExpirableMap_cancelClearTimeout.set(this, void 0);
|
|
21
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
22
|
+
}
|
|
23
|
+
get [(_ExpirableMap_map = new WeakMap(), _ExpirableMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
|
|
24
|
+
return this.constructor.name;
|
|
25
|
+
}
|
|
26
|
+
get size() {
|
|
27
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").size;
|
|
28
|
+
}
|
|
29
|
+
set(key, value, maxAge) {
|
|
30
|
+
__classPrivateFieldGet(this, _ExpirableMap_map, "f").set(key, value);
|
|
31
|
+
this.removeItemMetadata(key);
|
|
32
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
has(key) {
|
|
36
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").has(key);
|
|
37
|
+
}
|
|
38
|
+
get(key) {
|
|
39
|
+
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").get(key);
|
|
40
|
+
}
|
|
41
|
+
delete(key) {
|
|
42
|
+
const exists = __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(key);
|
|
43
|
+
if (exists) {
|
|
44
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
45
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
46
|
+
if (index === 0) {
|
|
47
|
+
this.rescheduleClearTimeout();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return exists;
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
var _a;
|
|
54
|
+
__classPrivateFieldGet(this, _ExpirableMap_map, "f").clear();
|
|
55
|
+
(_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
56
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
57
|
+
}
|
|
58
|
+
addItemMetadata(key, expirationTime) {
|
|
59
|
+
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
60
|
+
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
61
|
+
if (expirationTime < item.expirationTime) {
|
|
62
|
+
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
63
|
+
if (i === 0) {
|
|
64
|
+
this.rescheduleClearTimeout();
|
|
65
|
+
}
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
70
|
+
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
71
|
+
this.rescheduleClearTimeout();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
removeItemMetadata(key) {
|
|
75
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
76
|
+
if (index >= 0) {
|
|
77
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
78
|
+
if (index === 0) {
|
|
79
|
+
this.rescheduleClearTimeout();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
clearExpiredItems(timestamp) {
|
|
84
|
+
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
85
|
+
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
86
|
+
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
87
|
+
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
88
|
+
expiredItemKeys.forEach(x => __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(x.key));
|
|
89
|
+
}
|
|
90
|
+
rescheduleClearTimeout() {
|
|
91
|
+
var _a;
|
|
92
|
+
(_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
93
|
+
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
94
|
+
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
95
|
+
if (Number.isFinite(item.expirationTime)) {
|
|
96
|
+
const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
97
|
+
this.clearExpiredItems(Date.now());
|
|
98
|
+
this.rescheduleClearTimeout();
|
|
99
|
+
});
|
|
100
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, () => {
|
|
101
|
+
cancel();
|
|
102
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, undefined, "f");
|
|
103
|
+
}, "f");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ExpirableMap = ExpirableMap;
|
|
109
|
+
//# sourceMappingURL=expirable-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2018/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export * from './box';
|
|
1
2
|
export * from './cons';
|
|
2
3
|
export * from './emitter';
|
|
3
4
|
export * from './hash-map';
|
|
4
5
|
export * from './hash-set';
|
|
5
6
|
export * from './queue';
|
|
6
7
|
export * from './lru-map';
|
|
8
|
+
export * from './expirable-map';
|
|
9
|
+
export * from './tlru-map';
|
|
7
10
|
export * from './trie-map';
|