@blackglory/structures 0.11.5 → 0.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/es2015/cons.js +2 -2
- package/lib/es2015/cons.js.map +1 -1
- package/lib/es2015/expirable-map.d.ts +4 -4
- package/lib/es2015/expirable-map.js +26 -23
- package/lib/es2015/expirable-map.js.map +1 -1
- package/lib/es2015/tlru-map.d.ts +1 -1
- package/lib/es2015/tlru-map.js +3 -3
- package/lib/es2015/tlru-map.js.map +1 -1
- package/lib/es2015/trie-map.js +2 -2
- package/lib/es2015/trie-map.js.map +1 -1
- package/lib/es2015/utils/skip-list.js +6 -6
- package/lib/es2015/utils/skip-list.js.map +1 -1
- package/lib/es2018/cons.js +2 -2
- package/lib/es2018/cons.js.map +1 -1
- package/lib/es2018/expirable-map.d.ts +4 -4
- package/lib/es2018/expirable-map.js +26 -23
- package/lib/es2018/expirable-map.js.map +1 -1
- package/lib/es2018/tlru-map.d.ts +1 -1
- package/lib/es2018/tlru-map.js +3 -3
- package/lib/es2018/tlru-map.js.map +1 -1
- package/lib/es2018/trie-map.js +2 -2
- package/lib/es2018/trie-map.js.map +1 -1
- package/lib/es2018/utils/skip-list.js +6 -6
- package/lib/es2018/utils/skip-list.js.map +1 -1
- package/package.json +13 -10
package/README.md
CHANGED
|
@@ -212,7 +212,7 @@ class ExpirableMap<K, V> {
|
|
|
212
212
|
|
|
213
213
|
constructor()
|
|
214
214
|
|
|
215
|
-
set(key: K, value: V,
|
|
215
|
+
set(key: K, value: V, timeToLive?: number = Infinity): this
|
|
216
216
|
has(key: K): boolean
|
|
217
217
|
get(key: K): V | undefined
|
|
218
218
|
delete(key: K): boolean
|
|
@@ -228,7 +228,7 @@ class TLRUMap<K, V> {
|
|
|
228
228
|
|
|
229
229
|
constructor(limit: number)
|
|
230
230
|
|
|
231
|
-
set(key: K, value: V,
|
|
231
|
+
set(key: K, value: V, timeToLive?: number = Infinity): this
|
|
232
232
|
has(key: K): boolean
|
|
233
233
|
get(key: K): V | undefined
|
|
234
234
|
delete(key: K): boolean
|
package/lib/es2015/cons.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertArrayToCons = exports.convertConsToArray = void 0;
|
|
4
|
-
const
|
|
4
|
+
const extra_utils_1 = require("extra-utils");
|
|
5
5
|
function convertConsToArray([value, next]) {
|
|
6
|
-
if ((0,
|
|
6
|
+
if ((0, extra_utils_1.isNull)(next)) {
|
|
7
7
|
return [value];
|
|
8
8
|
}
|
|
9
9
|
else {
|
package/lib/es2015/cons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAIpC,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,oBAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;KACf;SAAM;QACL,OAAO,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAND,gDAMC;AAED,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAM;IACzD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAFD,gDAEC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export declare class ExpirableMap<K, V> {
|
|
2
2
|
private map;
|
|
3
|
-
private
|
|
4
|
-
itemMetadataSortedByExpirationTime: Array<{
|
|
3
|
+
private cancelScheduledCleaner?;
|
|
4
|
+
protected itemMetadataSortedByExpirationTime: Array<{
|
|
5
5
|
key: K;
|
|
6
6
|
expirationTime: number;
|
|
7
7
|
}>;
|
|
8
8
|
get [Symbol.toStringTag](): string;
|
|
9
9
|
get size(): number;
|
|
10
|
-
set(key: K, value: V,
|
|
10
|
+
set(key: K, value: V, timeToLive?: number): this;
|
|
11
11
|
has(key: K): boolean;
|
|
12
12
|
get(key: K): V | undefined;
|
|
13
13
|
delete(key: K): boolean;
|
|
14
14
|
clear(): void;
|
|
15
15
|
private addItemMetadata;
|
|
16
16
|
private removeItemMetadata;
|
|
17
|
+
private scheduleCleaner;
|
|
17
18
|
private clearExpiredItems;
|
|
18
|
-
private rescheduleClearTimeout;
|
|
19
19
|
}
|
|
@@ -13,10 +13,10 @@ class ExpirableMap {
|
|
|
13
13
|
get size() {
|
|
14
14
|
return this.map.size;
|
|
15
15
|
}
|
|
16
|
-
set(key, value,
|
|
16
|
+
set(key, value, timeToLive = Infinity) {
|
|
17
17
|
this.map.set(key, value);
|
|
18
18
|
this.removeItemMetadata(key);
|
|
19
|
-
this.addItemMetadata(key, Date.now() +
|
|
19
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
20
20
|
return this;
|
|
21
21
|
}
|
|
22
22
|
has(key) {
|
|
@@ -26,12 +26,14 @@ class ExpirableMap {
|
|
|
26
26
|
return this.map.get(key);
|
|
27
27
|
}
|
|
28
28
|
delete(key) {
|
|
29
|
+
var _a;
|
|
29
30
|
const exists = this.map.delete(key);
|
|
30
31
|
if (exists) {
|
|
31
32
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
32
33
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
33
34
|
if (index === 0) {
|
|
34
|
-
this.
|
|
35
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
36
|
+
this.scheduleCleaner();
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
return exists;
|
|
@@ -39,58 +41,59 @@ class ExpirableMap {
|
|
|
39
41
|
clear() {
|
|
40
42
|
var _a;
|
|
41
43
|
this.map.clear();
|
|
42
|
-
(_a = this.
|
|
44
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
43
45
|
this.itemMetadataSortedByExpirationTime = [];
|
|
44
46
|
}
|
|
45
47
|
addItemMetadata(key, expirationTime) {
|
|
48
|
+
var _a, _b;
|
|
46
49
|
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
47
50
|
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
48
51
|
if (expirationTime < item.expirationTime) {
|
|
49
52
|
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
50
53
|
if (i === 0) {
|
|
51
|
-
this.
|
|
54
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
55
|
+
this.scheduleCleaner();
|
|
52
56
|
}
|
|
53
57
|
return;
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
57
61
|
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
58
|
-
this.
|
|
62
|
+
(_b = this.cancelScheduledCleaner) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
63
|
+
this.scheduleCleaner();
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
removeItemMetadata(key) {
|
|
67
|
+
var _a;
|
|
62
68
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
63
69
|
if (index >= 0) {
|
|
64
70
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
65
71
|
if (index === 0) {
|
|
66
|
-
this.
|
|
72
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
73
|
+
this.scheduleCleaner();
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
}
|
|
70
|
-
|
|
71
|
-
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
72
|
-
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
73
|
-
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
74
|
-
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
75
|
-
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
76
|
-
}
|
|
77
|
-
rescheduleClearTimeout() {
|
|
78
|
-
var _a;
|
|
79
|
-
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
77
|
+
scheduleCleaner() {
|
|
80
78
|
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
81
79
|
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
82
80
|
if (Number.isFinite(item.expirationTime)) {
|
|
83
|
-
|
|
81
|
+
this.cancelScheduledCleaner = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
82
|
+
var _a;
|
|
84
83
|
this.clearExpiredItems(Date.now());
|
|
85
|
-
this.
|
|
84
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
85
|
+
this.scheduleCleaner();
|
|
86
86
|
});
|
|
87
|
-
this.cancelClearTimeout = () => {
|
|
88
|
-
cancel();
|
|
89
|
-
this.cancelClearTimeout = undefined;
|
|
90
|
-
};
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
}
|
|
90
|
+
clearExpiredItems(timestamp) {
|
|
91
|
+
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
92
|
+
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
93
|
+
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
94
|
+
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
95
|
+
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
96
|
+
}
|
|
94
97
|
}
|
|
95
98
|
exports.ExpirableMap = ExpirableMap;
|
|
96
99
|
//# sourceMappingURL=expirable-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAE1C,MAAa,YAAY;IAAzB;QACU,QAAG,GAAG,IAAI,GAAG,EAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2015/tlru-map.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class TLRUMap<K, V> {
|
|
|
9
9
|
get [Symbol.toStringTag](): string;
|
|
10
10
|
get size(): number;
|
|
11
11
|
constructor(limit: number);
|
|
12
|
-
set(key: K, value: V,
|
|
12
|
+
set(key: K, value: V, timeToLive?: number): this;
|
|
13
13
|
has(key: K): boolean;
|
|
14
14
|
get(key: K): V | undefined;
|
|
15
15
|
delete(key: K): boolean;
|
package/lib/es2015/tlru-map.js
CHANGED
|
@@ -18,18 +18,18 @@ class TLRUMap {
|
|
|
18
18
|
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
19
19
|
this.limit = limit;
|
|
20
20
|
}
|
|
21
|
-
set(key, value,
|
|
21
|
+
set(key, value, timeToLive = Infinity) {
|
|
22
22
|
if (this.map.has(key)) {
|
|
23
23
|
this.updateItem(key, value);
|
|
24
24
|
this.removeItemMetadata(key);
|
|
25
|
-
this.addItemMetadata(key, Date.now() +
|
|
25
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
if (this.map.size === this.limit) {
|
|
29
29
|
this.map.delete(this.getColdestKey());
|
|
30
30
|
}
|
|
31
31
|
this.map.set(key, value);
|
|
32
|
-
this.addItemMetadata(key, Date.now() +
|
|
32
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
33
33
|
}
|
|
34
34
|
return this;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,yDAAyC;AACzC,+CAA0C;AAK1C,MAAa,OAAO;
|
|
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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TrieMap = void 0;
|
|
4
4
|
const iterable_operator_1 = require("iterable-operator");
|
|
5
|
-
const
|
|
5
|
+
const extra_utils_1 = require("extra-utils");
|
|
6
6
|
class TrieNode {
|
|
7
7
|
constructor(value) {
|
|
8
8
|
this.value = value;
|
|
@@ -21,7 +21,7 @@ class TrieMap {
|
|
|
21
21
|
function* dfs(node, paths) {
|
|
22
22
|
for (const [path, childNode] of node.children) {
|
|
23
23
|
const newPaths = [...paths, path];
|
|
24
|
-
if ((0,
|
|
24
|
+
if ((0, extra_utils_1.isntUndefined)(childNode.value)) {
|
|
25
25
|
yield [newPaths, childNode.value];
|
|
26
26
|
}
|
|
27
27
|
yield* dfs(childNode, newPaths);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,6CAA2C;AAE3C,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACU,SAAI,GAAG,IAAI,QAAQ,EAAQ,CAAA;IA2FrC,CAAC;IAzFC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAE,OAAO;QACP,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEzB,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,KAAU;YAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;gBACjC,IAAI,IAAA,2BAAa,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAClC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;iBAClC;gBAED,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;aAChC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAA,uBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,uBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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;AA5FD,0BA4FC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SkipList = exports.SkipListNode = void 0;
|
|
4
|
-
const
|
|
4
|
+
const extra_utils_1 = require("extra-utils");
|
|
5
5
|
class SkipListNode {
|
|
6
6
|
constructor(value) {
|
|
7
7
|
this.value = value;
|
|
@@ -30,7 +30,7 @@ class SkipList {
|
|
|
30
30
|
while (currentNode.down) {
|
|
31
31
|
currentNode = currentNode.down;
|
|
32
32
|
}
|
|
33
|
-
while (currentNode.next && (0,
|
|
33
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
34
34
|
currentNode = currentNode.next;
|
|
35
35
|
yield currentNode;
|
|
36
36
|
}
|
|
@@ -58,12 +58,12 @@ class SkipList {
|
|
|
58
58
|
this._size--;
|
|
59
59
|
}
|
|
60
60
|
has(value) {
|
|
61
|
-
return (0,
|
|
61
|
+
return (0, extra_utils_1.isntNull)(this.findNode(value));
|
|
62
62
|
}
|
|
63
63
|
findNode(value) {
|
|
64
64
|
let currentNode = this.head;
|
|
65
65
|
while (true) {
|
|
66
|
-
while (currentNode.next && (0,
|
|
66
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
67
67
|
const result = this.compare(currentNode.next.value, value);
|
|
68
68
|
if (result === 0) {
|
|
69
69
|
return currentNode.next;
|
|
@@ -86,7 +86,7 @@ class SkipList {
|
|
|
86
86
|
add(value) {
|
|
87
87
|
let previousNode = this.findPreviousNode(value);
|
|
88
88
|
if (previousNode.next &&
|
|
89
|
-
(0,
|
|
89
|
+
(0, extra_utils_1.isntNull)(previousNode.next.value) &&
|
|
90
90
|
this.compare(previousNode.next.value, value) === 0) {
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
@@ -133,7 +133,7 @@ class SkipList {
|
|
|
133
133
|
findPreviousNode(value) {
|
|
134
134
|
let currentNode = this.head;
|
|
135
135
|
while (true) {
|
|
136
|
-
while (currentNode.next && (0,
|
|
136
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
137
137
|
const result = this.compare(currentNode.next.value, value);
|
|
138
138
|
if (result >= 0) {
|
|
139
139
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../../src/utils/skip-list.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../../src/utils/skip-list.ts"],"names":[],"mappings":"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"}
|
package/lib/es2018/cons.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertArrayToCons = exports.convertConsToArray = void 0;
|
|
4
|
-
const
|
|
4
|
+
const extra_utils_1 = require("extra-utils");
|
|
5
5
|
function convertConsToArray([value, next]) {
|
|
6
|
-
if ((0,
|
|
6
|
+
if ((0, extra_utils_1.isNull)(next)) {
|
|
7
7
|
return [value];
|
|
8
8
|
}
|
|
9
9
|
else {
|
package/lib/es2018/cons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cons.js","sourceRoot":"","sources":["../../src/cons.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AAIpC,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,IAAI,CAAU;IAC1D,IAAI,IAAA,oBAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;KACf;SAAM;QACL,OAAO,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAND,gDAMC;AAED,SAAgB,kBAAkB,CAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAM;IACzD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAFD,gDAEC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export declare class ExpirableMap<K, V> {
|
|
2
2
|
private map;
|
|
3
|
-
private
|
|
4
|
-
itemMetadataSortedByExpirationTime: Array<{
|
|
3
|
+
private cancelScheduledCleaner?;
|
|
4
|
+
protected itemMetadataSortedByExpirationTime: Array<{
|
|
5
5
|
key: K;
|
|
6
6
|
expirationTime: number;
|
|
7
7
|
}>;
|
|
8
8
|
get [Symbol.toStringTag](): string;
|
|
9
9
|
get size(): number;
|
|
10
|
-
set(key: K, value: V,
|
|
10
|
+
set(key: K, value: V, timeToLive?: number): this;
|
|
11
11
|
has(key: K): boolean;
|
|
12
12
|
get(key: K): V | undefined;
|
|
13
13
|
delete(key: K): boolean;
|
|
14
14
|
clear(): void;
|
|
15
15
|
private addItemMetadata;
|
|
16
16
|
private removeItemMetadata;
|
|
17
|
+
private scheduleCleaner;
|
|
17
18
|
private clearExpiredItems;
|
|
18
|
-
private rescheduleClearTimeout;
|
|
19
19
|
}
|
|
@@ -13,10 +13,10 @@ class ExpirableMap {
|
|
|
13
13
|
get size() {
|
|
14
14
|
return this.map.size;
|
|
15
15
|
}
|
|
16
|
-
set(key, value,
|
|
16
|
+
set(key, value, timeToLive = Infinity) {
|
|
17
17
|
this.map.set(key, value);
|
|
18
18
|
this.removeItemMetadata(key);
|
|
19
|
-
this.addItemMetadata(key, Date.now() +
|
|
19
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
20
20
|
return this;
|
|
21
21
|
}
|
|
22
22
|
has(key) {
|
|
@@ -26,12 +26,14 @@ class ExpirableMap {
|
|
|
26
26
|
return this.map.get(key);
|
|
27
27
|
}
|
|
28
28
|
delete(key) {
|
|
29
|
+
var _a;
|
|
29
30
|
const exists = this.map.delete(key);
|
|
30
31
|
if (exists) {
|
|
31
32
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
32
33
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
33
34
|
if (index === 0) {
|
|
34
|
-
this.
|
|
35
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
36
|
+
this.scheduleCleaner();
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
return exists;
|
|
@@ -39,58 +41,59 @@ class ExpirableMap {
|
|
|
39
41
|
clear() {
|
|
40
42
|
var _a;
|
|
41
43
|
this.map.clear();
|
|
42
|
-
(_a = this.
|
|
44
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
43
45
|
this.itemMetadataSortedByExpirationTime = [];
|
|
44
46
|
}
|
|
45
47
|
addItemMetadata(key, expirationTime) {
|
|
48
|
+
var _a, _b;
|
|
46
49
|
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
47
50
|
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
48
51
|
if (expirationTime < item.expirationTime) {
|
|
49
52
|
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
50
53
|
if (i === 0) {
|
|
51
|
-
this.
|
|
54
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
55
|
+
this.scheduleCleaner();
|
|
52
56
|
}
|
|
53
57
|
return;
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
57
61
|
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
58
|
-
this.
|
|
62
|
+
(_b = this.cancelScheduledCleaner) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
63
|
+
this.scheduleCleaner();
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
removeItemMetadata(key) {
|
|
67
|
+
var _a;
|
|
62
68
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
63
69
|
if (index >= 0) {
|
|
64
70
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
65
71
|
if (index === 0) {
|
|
66
|
-
this.
|
|
72
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
73
|
+
this.scheduleCleaner();
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
}
|
|
70
|
-
|
|
71
|
-
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
72
|
-
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
73
|
-
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
74
|
-
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
75
|
-
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
76
|
-
}
|
|
77
|
-
rescheduleClearTimeout() {
|
|
78
|
-
var _a;
|
|
79
|
-
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
77
|
+
scheduleCleaner() {
|
|
80
78
|
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
81
79
|
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
82
80
|
if (Number.isFinite(item.expirationTime)) {
|
|
83
|
-
|
|
81
|
+
this.cancelScheduledCleaner = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
82
|
+
var _a;
|
|
84
83
|
this.clearExpiredItems(Date.now());
|
|
85
|
-
this.
|
|
84
|
+
(_a = this.cancelScheduledCleaner) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
85
|
+
this.scheduleCleaner();
|
|
86
86
|
});
|
|
87
|
-
this.cancelClearTimeout = () => {
|
|
88
|
-
cancel();
|
|
89
|
-
this.cancelClearTimeout = undefined;
|
|
90
|
-
};
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
}
|
|
90
|
+
clearExpiredItems(timestamp) {
|
|
91
|
+
const indexOfFirstUnexpired = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
|
|
92
|
+
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
93
|
+
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
94
|
+
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
95
|
+
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
96
|
+
}
|
|
94
97
|
}
|
|
95
98
|
exports.ExpirableMap = ExpirableMap;
|
|
96
99
|
//# sourceMappingURL=expirable-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAE1C,MAAa,YAAY;IAAzB;QACU,QAAG,GAAG,IAAI,GAAG,EAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2018/tlru-map.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class TLRUMap<K, V> {
|
|
|
9
9
|
get [Symbol.toStringTag](): string;
|
|
10
10
|
get size(): number;
|
|
11
11
|
constructor(limit: number);
|
|
12
|
-
set(key: K, value: V,
|
|
12
|
+
set(key: K, value: V, timeToLive?: number): this;
|
|
13
13
|
has(key: K): boolean;
|
|
14
14
|
get(key: K): V | undefined;
|
|
15
15
|
delete(key: K): boolean;
|
package/lib/es2018/tlru-map.js
CHANGED
|
@@ -18,18 +18,18 @@ class TLRUMap {
|
|
|
18
18
|
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
19
19
|
this.limit = limit;
|
|
20
20
|
}
|
|
21
|
-
set(key, value,
|
|
21
|
+
set(key, value, timeToLive = Infinity) {
|
|
22
22
|
if (this.map.has(key)) {
|
|
23
23
|
this.updateItem(key, value);
|
|
24
24
|
this.removeItemMetadata(key);
|
|
25
|
-
this.addItemMetadata(key, Date.now() +
|
|
25
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
if (this.map.size === this.limit) {
|
|
29
29
|
this.map.delete(this.getColdestKey());
|
|
30
30
|
}
|
|
31
31
|
this.map.set(key, value);
|
|
32
|
-
this.addItemMetadata(key, Date.now() +
|
|
32
|
+
this.addItemMetadata(key, Date.now() + timeToLive);
|
|
33
33
|
}
|
|
34
34
|
return this;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,yDAAyC;AACzC,+CAA0C;AAK1C,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2018/trie-map.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TrieMap = void 0;
|
|
4
4
|
const iterable_operator_1 = require("iterable-operator");
|
|
5
|
-
const
|
|
5
|
+
const extra_utils_1 = require("extra-utils");
|
|
6
6
|
class TrieNode {
|
|
7
7
|
constructor(value) {
|
|
8
8
|
this.value = value;
|
|
@@ -21,7 +21,7 @@ class TrieMap {
|
|
|
21
21
|
function* dfs(node, paths) {
|
|
22
22
|
for (const [path, childNode] of node.children) {
|
|
23
23
|
const newPaths = [...paths, path];
|
|
24
|
-
if ((0,
|
|
24
|
+
if ((0, extra_utils_1.isntUndefined)(childNode.value)) {
|
|
25
25
|
yield [newPaths, childNode.value];
|
|
26
26
|
}
|
|
27
27
|
yield* dfs(childNode, newPaths);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,6CAA2C;AAE3C,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACU,SAAI,GAAG,IAAI,QAAQ,EAAQ,CAAA;IA2FrC,CAAC;IAzFC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAE,OAAO;QACP,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEzB,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,KAAU;YAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;gBACjC,IAAI,IAAA,2BAAa,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAClC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;iBAClC;gBAED,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;aAChC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAA,uBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,uBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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,IAAI,CAAC,IAAI,CAAA;QACpB,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;AA5FD,0BA4FC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SkipList = exports.SkipListNode = void 0;
|
|
4
|
-
const
|
|
4
|
+
const extra_utils_1 = require("extra-utils");
|
|
5
5
|
class SkipListNode {
|
|
6
6
|
constructor(value) {
|
|
7
7
|
this.value = value;
|
|
@@ -30,7 +30,7 @@ class SkipList {
|
|
|
30
30
|
while (currentNode.down) {
|
|
31
31
|
currentNode = currentNode.down;
|
|
32
32
|
}
|
|
33
|
-
while (currentNode.next && (0,
|
|
33
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
34
34
|
currentNode = currentNode.next;
|
|
35
35
|
yield currentNode;
|
|
36
36
|
}
|
|
@@ -58,12 +58,12 @@ class SkipList {
|
|
|
58
58
|
this._size--;
|
|
59
59
|
}
|
|
60
60
|
has(value) {
|
|
61
|
-
return (0,
|
|
61
|
+
return (0, extra_utils_1.isntNull)(this.findNode(value));
|
|
62
62
|
}
|
|
63
63
|
findNode(value) {
|
|
64
64
|
let currentNode = this.head;
|
|
65
65
|
while (true) {
|
|
66
|
-
while (currentNode.next && (0,
|
|
66
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
67
67
|
const result = this.compare(currentNode.next.value, value);
|
|
68
68
|
if (result === 0) {
|
|
69
69
|
return currentNode.next;
|
|
@@ -86,7 +86,7 @@ class SkipList {
|
|
|
86
86
|
add(value) {
|
|
87
87
|
let previousNode = this.findPreviousNode(value);
|
|
88
88
|
if (previousNode.next &&
|
|
89
|
-
(0,
|
|
89
|
+
(0, extra_utils_1.isntNull)(previousNode.next.value) &&
|
|
90
90
|
this.compare(previousNode.next.value, value) === 0) {
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
@@ -133,7 +133,7 @@ class SkipList {
|
|
|
133
133
|
findPreviousNode(value) {
|
|
134
134
|
let currentNode = this.head;
|
|
135
135
|
while (true) {
|
|
136
|
-
while (currentNode.next && (0,
|
|
136
|
+
while (currentNode.next && (0, extra_utils_1.isntNull)(currentNode.next.value)) {
|
|
137
137
|
const result = this.compare(currentNode.next.value, value);
|
|
138
138
|
if (result >= 0) {
|
|
139
139
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../../src/utils/skip-list.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../../src/utils/skip-list.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blackglory/structures",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib"
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"repository": "git@github.com:BlackGlory/structures.git",
|
|
12
12
|
"author": "BlackGlory <woshenmedoubuzhidao@blackglory.me>",
|
|
13
13
|
"license": "MIT",
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=12"
|
|
16
|
+
},
|
|
14
17
|
"scripts": {
|
|
15
18
|
"lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src __tests__",
|
|
16
19
|
"test": "jest --runInBand --config jest.config.js",
|
|
@@ -25,7 +28,8 @@
|
|
|
25
28
|
"build:es2018": "run-s build:es2018:*",
|
|
26
29
|
"build:es2018:compile": "tsc --project tsconfig.build.json --module commonjs --target es2018 --outDir lib/es2018",
|
|
27
30
|
"build:es2018:patch": "tscpaths -p tsconfig.build.json -s ./src -o ./lib/es2018",
|
|
28
|
-
"bench": "
|
|
31
|
+
"bench": "run-s bench:*",
|
|
32
|
+
"bench:bit-set": "ts-node --require tsconfig-paths/register benches/bit-set.ts",
|
|
29
33
|
"release": "standard-version"
|
|
30
34
|
},
|
|
31
35
|
"husky": {
|
|
@@ -34,18 +38,15 @@
|
|
|
34
38
|
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
|
-
"engines": {
|
|
38
|
-
"node": ">=12"
|
|
39
|
-
},
|
|
40
41
|
"devDependencies": {
|
|
41
42
|
"@blackglory/jest-matchers": "^0.5.0",
|
|
42
43
|
"@commitlint/cli": "^17.3.0",
|
|
43
44
|
"@commitlint/config-conventional": "^17.3.0",
|
|
44
|
-
"@types/jest": "^29.2.
|
|
45
|
+
"@types/jest": "^29.2.4",
|
|
45
46
|
"@types/node": "14",
|
|
46
|
-
"@typescript-eslint/eslint-plugin": "^5.45.
|
|
47
|
-
"@typescript-eslint/parser": "^5.45.
|
|
48
|
-
"eslint": "^8.
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^5.45.1",
|
|
48
|
+
"@typescript-eslint/parser": "^5.45.1",
|
|
49
|
+
"eslint": "^8.29.0",
|
|
49
50
|
"extra-benchmark": "^0.2.2",
|
|
50
51
|
"extra-generator": "^0.2.21",
|
|
51
52
|
"husky": "^4.3.8",
|
|
@@ -55,6 +56,8 @@
|
|
|
55
56
|
"rimraf": "^3.0.2",
|
|
56
57
|
"standard-version": "^9.5.0",
|
|
57
58
|
"ts-jest": "^29.0.3",
|
|
59
|
+
"ts-node": "^10.9.1",
|
|
60
|
+
"tsconfig-paths": "^4.1.1",
|
|
58
61
|
"tscpaths": "^0.0.9",
|
|
59
62
|
"tslib": "^2.4.1",
|
|
60
63
|
"typescript": "^4.9.3"
|
|
@@ -62,8 +65,8 @@
|
|
|
62
65
|
"dependencies": {
|
|
63
66
|
"@blackglory/errors": "^2.3.0",
|
|
64
67
|
"@blackglory/go": "^1.1.2",
|
|
65
|
-
"@blackglory/types": "^1.4.0",
|
|
66
68
|
"extra-timers": "^0.2.5",
|
|
69
|
+
"extra-utils": "^3.5.1",
|
|
67
70
|
"iterable-operator": "^2.5.0",
|
|
68
71
|
"justypes": "^3.1.2"
|
|
69
72
|
}
|