@blackglory/structures 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/dist/es2015/index.min.mjs +2 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +116 -157
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +116 -157
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +2 -2
- 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 +116 -157
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +116 -157
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +2 -2
- package/dist/es2018/index.umd.min.js.map +1 -1
- package/lib/es2015/box.d.ts +1 -1
- package/lib/es2015/box.js +3 -17
- package/lib/es2015/box.js.map +1 -1
- package/lib/es2015/emitter.d.ts +6 -6
- package/lib/es2015/emitter.js +27 -24
- package/lib/es2015/emitter.js.map +1 -1
- package/lib/es2015/expirable-map.d.ts +2 -1
- package/lib/es2015/expirable-map.js +14 -27
- package/lib/es2015/expirable-map.js.map +1 -1
- package/lib/es2015/finite-state-machine.d.ts +1 -1
- package/lib/es2015/finite-state-machine.js +4 -18
- package/lib/es2015/finite-state-machine.js.map +1 -1
- package/lib/es2015/hash-map.d.ts +1 -1
- package/lib/es2015/hash-map.js +8 -14
- package/lib/es2015/hash-map.js.map +1 -1
- package/lib/es2015/hash-set.d.ts +1 -1
- package/lib/es2015/hash-set.js +9 -15
- package/lib/es2015/hash-set.js.map +1 -1
- package/lib/es2015/lru-map.d.ts +2 -1
- package/lib/es2015/lru-map.js +15 -28
- package/lib/es2015/lru-map.js.map +1 -1
- package/lib/es2015/queue.d.ts +1 -1
- package/lib/es2015/queue.js +8 -14
- package/lib/es2015/queue.js.map +1 -1
- package/lib/es2015/tlru-map.d.ts +4 -2
- package/lib/es2015/tlru-map.js +21 -35
- package/lib/es2015/tlru-map.js.map +1 -1
- package/lib/es2015/trie-map.d.ts +1 -1
- package/lib/es2015/trie-map.js +6 -12
- package/lib/es2015/trie-map.js.map +1 -1
- package/lib/es2018/box.d.ts +1 -1
- package/lib/es2018/box.js +3 -17
- package/lib/es2018/box.js.map +1 -1
- package/lib/es2018/emitter.d.ts +6 -6
- package/lib/es2018/emitter.js +27 -24
- package/lib/es2018/emitter.js.map +1 -1
- package/lib/es2018/expirable-map.d.ts +2 -1
- package/lib/es2018/expirable-map.js +14 -27
- package/lib/es2018/expirable-map.js.map +1 -1
- package/lib/es2018/finite-state-machine.d.ts +1 -1
- package/lib/es2018/finite-state-machine.js +4 -18
- package/lib/es2018/finite-state-machine.js.map +1 -1
- package/lib/es2018/hash-map.d.ts +1 -1
- package/lib/es2018/hash-map.js +8 -14
- package/lib/es2018/hash-map.js.map +1 -1
- package/lib/es2018/hash-set.d.ts +1 -1
- package/lib/es2018/hash-set.js +9 -15
- package/lib/es2018/hash-set.js.map +1 -1
- package/lib/es2018/lru-map.d.ts +2 -1
- package/lib/es2018/lru-map.js +15 -28
- package/lib/es2018/lru-map.js.map +1 -1
- package/lib/es2018/queue.d.ts +1 -1
- package/lib/es2018/queue.js +8 -14
- package/lib/es2018/queue.js.map +1 -1
- package/lib/es2018/tlru-map.d.ts +4 -2
- package/lib/es2018/tlru-map.js +21 -35
- package/lib/es2018/tlru-map.js.map +1 -1
- package/lib/es2018/trie-map.d.ts +1 -1
- package/lib/es2018/trie-map.js +6 -12
- package/lib/es2018/trie-map.js.map +1 -1
- package/package.json +13 -13
package/lib/es2015/queue.js
CHANGED
|
@@ -1,35 +1,29 @@
|
|
|
1
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 _Queue_items;
|
|
8
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
3
|
exports.Queue = void 0;
|
|
10
4
|
class Queue {
|
|
11
5
|
constructor() {
|
|
12
|
-
|
|
6
|
+
this.items = [];
|
|
13
7
|
}
|
|
14
|
-
get [
|
|
8
|
+
get [Symbol.toStringTag]() {
|
|
15
9
|
return this.constructor.name;
|
|
16
10
|
}
|
|
17
11
|
get size() {
|
|
18
|
-
return
|
|
12
|
+
return this.items.length;
|
|
19
13
|
}
|
|
20
14
|
empty() {
|
|
21
|
-
|
|
15
|
+
this.items.length = 0;
|
|
22
16
|
}
|
|
23
17
|
enqueue(...items) {
|
|
24
|
-
|
|
18
|
+
this.items.push(...items);
|
|
25
19
|
}
|
|
26
20
|
dequeue() {
|
|
27
|
-
return
|
|
21
|
+
return this.items.shift();
|
|
28
22
|
}
|
|
29
23
|
remove(item) {
|
|
30
24
|
let index;
|
|
31
|
-
while ((index =
|
|
32
|
-
|
|
25
|
+
while ((index = this.items.indexOf(item)) >= 0) {
|
|
26
|
+
this.items.splice(index, 1);
|
|
33
27
|
}
|
|
34
28
|
}
|
|
35
29
|
}
|
package/lib/es2015/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAAlB;QACU,UAAK,GAAQ,EAAE,CAAA;IA4BzB,CAAC;IA1BC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,CAAC,GAAG,KAAU;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,IAAI,KAAa,CAAA;QACjB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;SAC5B;IACH,CAAC;CACF;AA7BD,sBA6BC"}
|
package/lib/es2015/tlru-map.d.ts
CHANGED
package/lib/es2015/tlru-map.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.TLRUMap = void 0;
|
|
16
4
|
const errors_1 = require("@blackglory/errors");
|
|
@@ -18,41 +6,39 @@ const iterable_operator_1 = require("iterable-operator");
|
|
|
18
6
|
const extra_timers_1 = require("extra-timers");
|
|
19
7
|
class TLRUMap {
|
|
20
8
|
constructor(limit) {
|
|
21
|
-
|
|
22
|
-
_TLRUMap_map.set(this, new Map());
|
|
23
|
-
_TLRUMap_cancelClearTimeout.set(this, void 0);
|
|
9
|
+
this.map = new Map();
|
|
24
10
|
this.itemMetadataSortedByExpirationTime = [];
|
|
25
11
|
(0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
|
|
26
12
|
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
27
|
-
|
|
13
|
+
this.limit = limit;
|
|
28
14
|
}
|
|
29
|
-
get [
|
|
15
|
+
get [Symbol.toStringTag]() {
|
|
30
16
|
return this.constructor.name;
|
|
31
17
|
}
|
|
32
18
|
get size() {
|
|
33
|
-
return
|
|
19
|
+
return this.map.size;
|
|
34
20
|
}
|
|
35
21
|
set(key, value, maxAge) {
|
|
36
|
-
if (
|
|
22
|
+
if (this.map.has(key)) {
|
|
37
23
|
this.updateItem(key, value);
|
|
38
24
|
this.removeItemMetadata(key);
|
|
39
25
|
this.addItemMetadata(key, Date.now() + maxAge);
|
|
40
26
|
}
|
|
41
27
|
else {
|
|
42
|
-
if (
|
|
43
|
-
|
|
28
|
+
if (this.map.size === this.limit) {
|
|
29
|
+
this.map.delete(this.getColdestKey());
|
|
44
30
|
}
|
|
45
|
-
|
|
31
|
+
this.map.set(key, value);
|
|
46
32
|
this.addItemMetadata(key, Date.now() + maxAge);
|
|
47
33
|
}
|
|
48
34
|
return this;
|
|
49
35
|
}
|
|
50
36
|
has(key) {
|
|
51
|
-
return
|
|
37
|
+
return this.map.has(key);
|
|
52
38
|
}
|
|
53
39
|
get(key) {
|
|
54
40
|
if (this.has(key)) {
|
|
55
|
-
const value =
|
|
41
|
+
const value = this.map.get(key);
|
|
56
42
|
this.updateItem(key, value);
|
|
57
43
|
return value;
|
|
58
44
|
}
|
|
@@ -61,7 +47,7 @@ class TLRUMap {
|
|
|
61
47
|
}
|
|
62
48
|
}
|
|
63
49
|
delete(key) {
|
|
64
|
-
const result =
|
|
50
|
+
const result = this.map.delete(key);
|
|
65
51
|
if (result) {
|
|
66
52
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
67
53
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
@@ -73,13 +59,13 @@ class TLRUMap {
|
|
|
73
59
|
}
|
|
74
60
|
clear() {
|
|
75
61
|
var _a;
|
|
76
|
-
|
|
77
|
-
(_a =
|
|
62
|
+
this.map.clear();
|
|
63
|
+
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
78
64
|
this.itemMetadataSortedByExpirationTime = [];
|
|
79
65
|
}
|
|
80
66
|
updateItem(key, value) {
|
|
81
|
-
|
|
82
|
-
|
|
67
|
+
this.map.delete(key);
|
|
68
|
+
this.map.set(key, value);
|
|
83
69
|
}
|
|
84
70
|
addItemMetadata(key, expirationTime) {
|
|
85
71
|
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
@@ -111,11 +97,11 @@ class TLRUMap {
|
|
|
111
97
|
const expiredItemKeys = indexOfFirstUnexpiredItem >= 0
|
|
112
98
|
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpiredItem)
|
|
113
99
|
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
114
|
-
expiredItemKeys.forEach(x =>
|
|
100
|
+
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
115
101
|
}
|
|
116
102
|
rescheduleClearTimeout() {
|
|
117
103
|
var _a;
|
|
118
|
-
(_a =
|
|
104
|
+
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
119
105
|
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
120
106
|
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
121
107
|
if (Number.isFinite(item.expirationTime)) {
|
|
@@ -123,15 +109,15 @@ class TLRUMap {
|
|
|
123
109
|
this.clearExpiredItems(Date.now());
|
|
124
110
|
this.rescheduleClearTimeout();
|
|
125
111
|
});
|
|
126
|
-
|
|
112
|
+
this.cancelClearTimeout = () => {
|
|
127
113
|
cancel();
|
|
128
|
-
|
|
129
|
-
}
|
|
114
|
+
this.cancelClearTimeout = undefined;
|
|
115
|
+
};
|
|
130
116
|
}
|
|
131
117
|
}
|
|
132
118
|
}
|
|
133
119
|
getColdestKey() {
|
|
134
|
-
return (0, iterable_operator_1.first)(
|
|
120
|
+
return (0, iterable_operator_1.first)(this.map.keys());
|
|
135
121
|
}
|
|
136
122
|
}
|
|
137
123
|
exports.TLRUMap = TLRUMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":"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"}
|
package/lib/es2015/trie-map.d.ts
CHANGED
package/lib/es2015/trie-map.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
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 _TrieMap_root;
|
|
8
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
3
|
exports.TrieMap = void 0;
|
|
10
4
|
const iterable_operator_1 = require("iterable-operator");
|
|
@@ -16,13 +10,13 @@ class TrieNode {
|
|
|
16
10
|
}
|
|
17
11
|
class TrieMap {
|
|
18
12
|
constructor() {
|
|
19
|
-
|
|
13
|
+
this.root = new TrieNode();
|
|
20
14
|
}
|
|
21
|
-
get [
|
|
15
|
+
get [Symbol.toStringTag]() {
|
|
22
16
|
return this.constructor.name;
|
|
23
17
|
}
|
|
24
18
|
set(key, value) {
|
|
25
|
-
let node =
|
|
19
|
+
let node = this.root;
|
|
26
20
|
for (const part of key) {
|
|
27
21
|
if (!node.children.has(part)) {
|
|
28
22
|
node.children.set(part, new TrieNode());
|
|
@@ -33,7 +27,7 @@ class TrieMap {
|
|
|
33
27
|
return this;
|
|
34
28
|
}
|
|
35
29
|
has(key) {
|
|
36
|
-
let node =
|
|
30
|
+
let node = this.root;
|
|
37
31
|
for (const part of key) {
|
|
38
32
|
if (node.children.has(part)) {
|
|
39
33
|
node = node.children.get(part);
|
|
@@ -45,7 +39,7 @@ class TrieMap {
|
|
|
45
39
|
return node.value !== undefined;
|
|
46
40
|
}
|
|
47
41
|
get(key) {
|
|
48
|
-
let node =
|
|
42
|
+
let node = this.root;
|
|
49
43
|
for (const part of key) {
|
|
50
44
|
if (node.children.has(part)) {
|
|
51
45
|
node = node.children.get(part);
|
|
@@ -58,7 +52,7 @@ class TrieMap {
|
|
|
58
52
|
}
|
|
59
53
|
delete(key) {
|
|
60
54
|
const parentNodes = [];
|
|
61
|
-
let node =
|
|
55
|
+
let node = this.root;
|
|
62
56
|
for (const part of key) {
|
|
63
57
|
if (node.children.has(part)) {
|
|
64
58
|
parentNodes.push(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":"
|
|
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;QACU,SAAI,GAAG,IAAI,QAAQ,EAAQ,CAAA;IAoErC,CAAC;IAlEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,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;AArED,0BAqEC"}
|
package/lib/es2018/box.d.ts
CHANGED
package/lib/es2018/box.js
CHANGED
|
@@ -1,30 +1,16 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.Box = void 0;
|
|
16
4
|
class Box {
|
|
17
5
|
constructor(value) {
|
|
18
|
-
|
|
19
|
-
__classPrivateFieldSet(this, _Box_value, value, "f");
|
|
6
|
+
this.value = value;
|
|
20
7
|
}
|
|
21
8
|
set(value) {
|
|
22
|
-
|
|
9
|
+
this.value = value;
|
|
23
10
|
}
|
|
24
11
|
get() {
|
|
25
|
-
return
|
|
12
|
+
return this.value;
|
|
26
13
|
}
|
|
27
14
|
}
|
|
28
15
|
exports.Box = Box;
|
|
29
|
-
_Box_value = new WeakMap();
|
|
30
16
|
//# sourceMappingURL=box.js.map
|
package/lib/es2018/box.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;IACd,YAAoB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAEhC,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAVD,kBAUC"}
|
package/lib/es2018/emitter.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
declare type
|
|
2
|
-
export declare class Emitter<
|
|
3
|
-
|
|
1
|
+
declare type Listener<Args extends unknown[]> = (...args: Args) => void;
|
|
2
|
+
export declare class Emitter<EventToArgs extends Record<string, unknown[]>> {
|
|
3
|
+
private map;
|
|
4
4
|
get [Symbol.toStringTag](): string;
|
|
5
|
-
on(event:
|
|
6
|
-
|
|
7
|
-
emit(event:
|
|
5
|
+
on<T extends keyof EventToArgs>(event: T, listener: Listener<EventToArgs[T]>): () => void;
|
|
6
|
+
once<T extends keyof EventToArgs>(event: T, listener: Listener<EventToArgs[T]>): () => void;
|
|
7
|
+
emit<T extends keyof EventToArgs>(event: T, ...args: EventToArgs[T]): void;
|
|
8
8
|
}
|
|
9
9
|
export {};
|
package/lib/es2018/emitter.js
CHANGED
|
@@ -1,40 +1,43 @@
|
|
|
1
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 _Emitter_map;
|
|
8
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
3
|
exports.Emitter = void 0;
|
|
10
4
|
class Emitter {
|
|
11
5
|
constructor() {
|
|
12
|
-
|
|
6
|
+
this.map = new Map();
|
|
13
7
|
}
|
|
14
|
-
get [
|
|
8
|
+
get [Symbol.toStringTag]() {
|
|
15
9
|
return this.constructor.name;
|
|
16
10
|
}
|
|
17
|
-
on(event,
|
|
18
|
-
if (!
|
|
19
|
-
|
|
11
|
+
on(event, listener) {
|
|
12
|
+
if (!this.map.has(event)) {
|
|
13
|
+
this.map.set(event, new Set());
|
|
20
14
|
}
|
|
21
|
-
const set =
|
|
15
|
+
const set = this.map.get(event);
|
|
22
16
|
set.add(handler);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
return () => {
|
|
18
|
+
if (!this.map.has(event))
|
|
19
|
+
return;
|
|
20
|
+
const handlers = this.map.get(event);
|
|
21
|
+
handlers.delete(handler);
|
|
22
|
+
if (handlers.size === 0) {
|
|
23
|
+
this.map.delete(event);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
function handler(...args) {
|
|
27
|
+
listener(...args);
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
once(event, listener) {
|
|
31
|
+
const removeListener = this.on(event, (...args) => {
|
|
32
|
+
listener(...args);
|
|
33
|
+
removeListener();
|
|
34
|
+
});
|
|
35
|
+
return removeListener;
|
|
36
|
+
}
|
|
37
|
+
emit(event, ...args) {
|
|
38
|
+
if (!this.map.has(event))
|
|
35
39
|
return;
|
|
36
|
-
|
|
37
|
-
set.forEach(cb => cb(value));
|
|
40
|
+
this.map.get(event).forEach(cb => cb(...args));
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
exports.Emitter = Emitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAoDL,CAAC;IAlDC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SAC/B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;QAChC,GAAG,CAAC,GAAG,CAAC,OAAmD,CAAC,CAAA;QAE5D,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAM;YAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;YACrC,QAAQ,CAAC,MAAM,CAAC,OAAmD,CAAC,CAAA;YACpE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;aACvB;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAA8B,KAAQ,EAAE,GAAG,IAAoB;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAM;QAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAxDD,0BAwDC"}
|
|
@@ -1,45 +1,32 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ExpirableMap = void 0;
|
|
16
4
|
const extra_timers_1 = require("extra-timers");
|
|
17
5
|
class ExpirableMap {
|
|
18
6
|
constructor() {
|
|
19
|
-
|
|
20
|
-
_ExpirableMap_cancelClearTimeout.set(this, void 0);
|
|
7
|
+
this.map = new Map();
|
|
21
8
|
this.itemMetadataSortedByExpirationTime = [];
|
|
22
9
|
}
|
|
23
|
-
get [
|
|
10
|
+
get [Symbol.toStringTag]() {
|
|
24
11
|
return this.constructor.name;
|
|
25
12
|
}
|
|
26
13
|
get size() {
|
|
27
|
-
return
|
|
14
|
+
return this.map.size;
|
|
28
15
|
}
|
|
29
16
|
set(key, value, maxAge) {
|
|
30
|
-
|
|
17
|
+
this.map.set(key, value);
|
|
31
18
|
this.removeItemMetadata(key);
|
|
32
19
|
this.addItemMetadata(key, Date.now() + maxAge);
|
|
33
20
|
return this;
|
|
34
21
|
}
|
|
35
22
|
has(key) {
|
|
36
|
-
return
|
|
23
|
+
return this.map.has(key);
|
|
37
24
|
}
|
|
38
25
|
get(key) {
|
|
39
|
-
return
|
|
26
|
+
return this.map.get(key);
|
|
40
27
|
}
|
|
41
28
|
delete(key) {
|
|
42
|
-
const exists =
|
|
29
|
+
const exists = this.map.delete(key);
|
|
43
30
|
if (exists) {
|
|
44
31
|
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
45
32
|
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
@@ -51,8 +38,8 @@ class ExpirableMap {
|
|
|
51
38
|
}
|
|
52
39
|
clear() {
|
|
53
40
|
var _a;
|
|
54
|
-
|
|
55
|
-
(_a =
|
|
41
|
+
this.map.clear();
|
|
42
|
+
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
56
43
|
this.itemMetadataSortedByExpirationTime = [];
|
|
57
44
|
}
|
|
58
45
|
addItemMetadata(key, expirationTime) {
|
|
@@ -85,11 +72,11 @@ class ExpirableMap {
|
|
|
85
72
|
const expiredItemKeys = indexOfFirstUnexpired >= 0
|
|
86
73
|
? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpired)
|
|
87
74
|
: this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
|
|
88
|
-
expiredItemKeys.forEach(x =>
|
|
75
|
+
expiredItemKeys.forEach(x => this.map.delete(x.key));
|
|
89
76
|
}
|
|
90
77
|
rescheduleClearTimeout() {
|
|
91
78
|
var _a;
|
|
92
|
-
(_a =
|
|
79
|
+
(_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
93
80
|
if (this.itemMetadataSortedByExpirationTime.length > 0) {
|
|
94
81
|
const item = this.itemMetadataSortedByExpirationTime[0];
|
|
95
82
|
if (Number.isFinite(item.expirationTime)) {
|
|
@@ -97,10 +84,10 @@ class ExpirableMap {
|
|
|
97
84
|
this.clearExpiredItems(Date.now());
|
|
98
85
|
this.rescheduleClearTimeout();
|
|
99
86
|
});
|
|
100
|
-
|
|
87
|
+
this.cancelClearTimeout = () => {
|
|
101
88
|
cancel();
|
|
102
|
-
|
|
103
|
-
}
|
|
89
|
+
this.cancelClearTimeout = undefined;
|
|
90
|
+
};
|
|
104
91
|
}
|
|
105
92
|
}
|
|
106
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CustomError } from '@blackglory/errors';
|
|
2
2
|
export declare type IFiniteStateMachineSchema<State extends string, Event extends string> = Record<State, Partial<Record<Event, State>>>;
|
|
3
3
|
export declare class FiniteStateMachine<State extends string, Event extends string> {
|
|
4
|
-
#private;
|
|
5
4
|
protected schema: IFiniteStateMachineSchema<State, Event>;
|
|
5
|
+
private _state;
|
|
6
6
|
get state(): State;
|
|
7
7
|
constructor(schema: IFiniteStateMachineSchema<State, Event>, initialState: State);
|
|
8
8
|
matches(state: State): boolean;
|
|
@@ -1,37 +1,24 @@
|
|
|
1
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 _FiniteStateMachine_state;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.BadEventError = exports.FiniteStateMachine = void 0;
|
|
16
4
|
const errors_1 = require("@blackglory/errors");
|
|
17
5
|
class FiniteStateMachine {
|
|
18
6
|
constructor(schema, initialState) {
|
|
19
7
|
this.schema = schema;
|
|
20
|
-
|
|
21
|
-
__classPrivateFieldSet(this, _FiniteStateMachine_state, initialState, "f");
|
|
8
|
+
this._state = initialState;
|
|
22
9
|
}
|
|
23
10
|
get state() {
|
|
24
|
-
return
|
|
11
|
+
return this._state;
|
|
25
12
|
}
|
|
26
13
|
matches(state) {
|
|
27
|
-
return
|
|
14
|
+
return this._state === state;
|
|
28
15
|
}
|
|
29
16
|
can(event) {
|
|
30
17
|
return event in this.schema[this.state];
|
|
31
18
|
}
|
|
32
19
|
send(event) {
|
|
33
20
|
if (this.can(event)) {
|
|
34
|
-
|
|
21
|
+
this._state = this.schema[this.state][event];
|
|
35
22
|
}
|
|
36
23
|
else {
|
|
37
24
|
throw new BadEventError(this.state, event);
|
|
@@ -39,7 +26,6 @@ class FiniteStateMachine {
|
|
|
39
26
|
}
|
|
40
27
|
}
|
|
41
28
|
exports.FiniteStateMachine = FiniteStateMachine;
|
|
42
|
-
_FiniteStateMachine_state = new WeakMap();
|
|
43
29
|
class BadEventError extends errors_1.CustomError {
|
|
44
30
|
constructor(state, event) {
|
|
45
31
|
super(`State ${state} cannot react to event ${event}`);
|