@blackglory/structures 0.2.5 → 0.3.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/CHANGELOG.md +166 -0
- package/README.md +50 -13
- package/dist/es2015/index.min.mjs +16 -2
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +1661 -488
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +1666 -489
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +15 -2
- package/dist/es2015/index.umd.min.js.map +1 -1
- package/dist/es2018/index.min.mjs +16 -2
- package/dist/es2018/index.min.mjs.map +1 -1
- package/dist/es2018/index.mjs +1661 -488
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +1666 -489
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +15 -2
- 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 +4 -4
- package/lib/es2015/expirable-map.js +38 -38
- package/lib/es2015/expirable-map.js.map +1 -1
- package/lib/es2015/finite-state-machine.d.ts +13 -0
- package/lib/es2015/finite-state-machine.js +46 -0
- package/lib/es2015/finite-state-machine.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/observable-finite-state-machine.d.ts +13 -0
- package/lib/es2015/observable-finite-state-machine.js +28 -0
- package/lib/es2015/observable-finite-state-machine.js.map +1 -0
- package/lib/es2015/tlru-map.d.ts +4 -4
- package/lib/es2015/tlru-map.js +36 -36
- package/lib/es2015/tlru-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 +4 -4
- package/lib/es2018/expirable-map.js +38 -38
- package/lib/es2018/expirable-map.js.map +1 -1
- package/lib/es2018/finite-state-machine.d.ts +13 -0
- package/lib/es2018/finite-state-machine.js +46 -0
- package/lib/es2018/finite-state-machine.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/observable-finite-state-machine.d.ts +13 -0
- package/lib/es2018/observable-finite-state-machine.js +28 -0
- package/lib/es2018/observable-finite-state-machine.js.map +1 -0
- package/lib/es2018/tlru-map.d.ts +4 -4
- package/lib/es2018/tlru-map.js +36 -36
- package/lib/es2018/tlru-map.js.map +1 -1
- package/package.json +26 -24
|
@@ -10,17 +10,17 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
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
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _ExpirableMap_map,
|
|
13
|
+
var _ExpirableMap_map, _ExpirableMap_cancelClearTimeout;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.ExpirableMap = void 0;
|
|
16
16
|
const extra_timers_1 = require("extra-timers");
|
|
17
17
|
class ExpirableMap {
|
|
18
18
|
constructor() {
|
|
19
19
|
_ExpirableMap_map.set(this, new Map());
|
|
20
|
-
|
|
21
|
-
this.
|
|
20
|
+
_ExpirableMap_cancelClearTimeout.set(this, void 0);
|
|
21
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
22
22
|
}
|
|
23
|
-
get [(_ExpirableMap_map = new WeakMap(),
|
|
23
|
+
get [(_ExpirableMap_map = new WeakMap(), _ExpirableMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
|
|
24
24
|
return this.constructor.name;
|
|
25
25
|
}
|
|
26
26
|
get size() {
|
|
@@ -28,8 +28,8 @@ class ExpirableMap {
|
|
|
28
28
|
}
|
|
29
29
|
set(key, value, maxAge) {
|
|
30
30
|
__classPrivateFieldGet(this, _ExpirableMap_map, "f").set(key, value);
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
31
|
+
this.removeItemMetadata(key);
|
|
32
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
33
33
|
return this;
|
|
34
34
|
}
|
|
35
35
|
has(key) {
|
|
@@ -39,67 +39,67 @@ class ExpirableMap {
|
|
|
39
39
|
return __classPrivateFieldGet(this, _ExpirableMap_map, "f").get(key);
|
|
40
40
|
}
|
|
41
41
|
delete(key) {
|
|
42
|
-
const
|
|
43
|
-
if (
|
|
44
|
-
const index = this.
|
|
45
|
-
this.
|
|
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
46
|
if (index === 0) {
|
|
47
|
-
this.
|
|
47
|
+
this.rescheduleClearTimeout();
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
return
|
|
50
|
+
return exists;
|
|
51
51
|
}
|
|
52
52
|
clear() {
|
|
53
53
|
var _a;
|
|
54
54
|
__classPrivateFieldGet(this, _ExpirableMap_map, "f").clear();
|
|
55
|
-
(_a = __classPrivateFieldGet(this,
|
|
56
|
-
this.
|
|
55
|
+
(_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
56
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
for (let i = 0; i < this.
|
|
60
|
-
const item = this.
|
|
58
|
+
addItemMetadata(key, expirationTime) {
|
|
59
|
+
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
60
|
+
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
61
61
|
if (expirationTime < item.expirationTime) {
|
|
62
|
-
this.
|
|
62
|
+
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
63
63
|
if (i === 0) {
|
|
64
|
-
this.
|
|
64
|
+
this.rescheduleClearTimeout();
|
|
65
65
|
}
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
this.
|
|
70
|
-
if (this.
|
|
71
|
-
this.
|
|
69
|
+
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
70
|
+
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
71
|
+
this.rescheduleClearTimeout();
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
const index = this.
|
|
74
|
+
removeItemMetadata(key) {
|
|
75
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
76
76
|
if (index >= 0) {
|
|
77
|
-
this.
|
|
77
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
78
78
|
if (index === 0) {
|
|
79
|
-
this.
|
|
79
|
+
this.rescheduleClearTimeout();
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
clearExpiredItems(timestamp) {
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
? this.
|
|
87
|
-
: this.
|
|
88
|
-
|
|
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
89
|
}
|
|
90
|
-
|
|
90
|
+
rescheduleClearTimeout() {
|
|
91
91
|
var _a;
|
|
92
|
-
(_a = __classPrivateFieldGet(this,
|
|
93
|
-
if (this.
|
|
94
|
-
const item = this.
|
|
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
95
|
if (Number.isFinite(item.expirationTime)) {
|
|
96
96
|
const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
97
97
|
this.clearExpiredItems(Date.now());
|
|
98
|
-
this.
|
|
98
|
+
this.rescheduleClearTimeout();
|
|
99
99
|
});
|
|
100
|
-
__classPrivateFieldSet(this,
|
|
100
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, () => {
|
|
101
101
|
cancel();
|
|
102
|
-
__classPrivateFieldSet(this,
|
|
102
|
+
__classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, undefined, "f");
|
|
103
103
|
}, "f");
|
|
104
104
|
}
|
|
105
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA0C;AAE1C,MAAa,YAAY;IAAzB;QACE,4BAAO,IAAI,GAAG,EAAQ,EAAA;QACtB,
|
|
1
|
+
{"version":3,"file":"expirable-map.js","sourceRoot":"","sources":["../../src/expirable-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CustomError } from '@blackglory/errors';
|
|
2
|
+
export declare type IFiniteStateMachineSchema<State extends string, Event extends string> = Record<State, Partial<Record<Event, State>>>;
|
|
3
|
+
export declare class FiniteStateMachine<State extends string, Event extends string> {
|
|
4
|
+
#private;
|
|
5
|
+
protected schema: IFiniteStateMachineSchema<State, Event>;
|
|
6
|
+
get state(): State;
|
|
7
|
+
constructor(schema: IFiniteStateMachineSchema<State, Event>, initialState: State);
|
|
8
|
+
matches(state: State): boolean;
|
|
9
|
+
send(event: Event): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class BadEventError extends CustomError {
|
|
12
|
+
constructor(state: string, event: string);
|
|
13
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BadEventError = exports.FiniteStateMachine = void 0;
|
|
16
|
+
const errors_1 = require("@blackglory/errors");
|
|
17
|
+
class FiniteStateMachine {
|
|
18
|
+
constructor(schema, initialState) {
|
|
19
|
+
this.schema = schema;
|
|
20
|
+
_FiniteStateMachine_state.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _FiniteStateMachine_state, initialState, "f");
|
|
22
|
+
}
|
|
23
|
+
get state() {
|
|
24
|
+
return __classPrivateFieldGet(this, _FiniteStateMachine_state, "f");
|
|
25
|
+
}
|
|
26
|
+
matches(state) {
|
|
27
|
+
return __classPrivateFieldGet(this, _FiniteStateMachine_state, "f") === state;
|
|
28
|
+
}
|
|
29
|
+
send(event) {
|
|
30
|
+
if (event in this.schema[this.state]) {
|
|
31
|
+
__classPrivateFieldSet(this, _FiniteStateMachine_state, this.schema[this.state][event], "f");
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
throw new BadEventError(this.state, event);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.FiniteStateMachine = FiniteStateMachine;
|
|
39
|
+
_FiniteStateMachine_state = new WeakMap();
|
|
40
|
+
class BadEventError extends errors_1.CustomError {
|
|
41
|
+
constructor(state, event) {
|
|
42
|
+
super(`State ${state} cannot react to event ${event}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.BadEventError = BadEventError;
|
|
46
|
+
//# sourceMappingURL=finite-state-machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finite-state-machine.js","sourceRoot":"","sources":["../../src/finite-state-machine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAgD;AAKhD,MAAa,kBAAkB;IAM7B,YACY,MAA+C,EACzD,YAAmB;QADT,WAAM,GAAN,MAAM,CAAyC;QAN3D,4CAAa;QASX,uBAAA,IAAI,6BAAU,YAAY,MAAA,CAAA;IAC5B,CAAC;IATD,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,iCAAO,CAAA;IACpB,CAAC;IASD,OAAO,CAAC,KAAY;QAClB,OAAO,uBAAA,IAAI,iCAAO,KAAK,KAAK,CAAA;IAC9B,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpC,uBAAA,IAAI,6BAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAE,MAAA,CAAA;SAC9C;aAAM;YACL,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;SAC3C;IACH,CAAC;CACF;AA3BD,gDA2BC;;AAED,MAAa,aAAc,SAAQ,oBAAW;IAC5C,YAAY,KAAa,EAAE,KAAa;QACtC,KAAK,CAAC,SAAS,KAAK,0BAA0B,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;CACF;AAJD,sCAIC"}
|
package/lib/es2018/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './box';
|
|
1
2
|
export * from './cons';
|
|
2
3
|
export * from './emitter';
|
|
3
4
|
export * from './hash-map';
|
|
@@ -7,3 +8,5 @@ export * from './lru-map';
|
|
|
7
8
|
export * from './expirable-map';
|
|
8
9
|
export * from './tlru-map';
|
|
9
10
|
export * from './trie-map';
|
|
11
|
+
export * from './finite-state-machine';
|
|
12
|
+
export * from './observable-finite-state-machine';
|
package/lib/es2018/index.js
CHANGED
|
@@ -10,6 +10,7 @@ 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);
|
|
@@ -19,4 +20,6 @@ __exportStar(require("./lru-map"), exports);
|
|
|
19
20
|
__exportStar(require("./expirable-map"), exports);
|
|
20
21
|
__exportStar(require("./tlru-map"), exports);
|
|
21
22
|
__exportStar(require("./trie-map"), exports);
|
|
23
|
+
__exportStar(require("./finite-state-machine"), exports);
|
|
24
|
+
__exportStar(require("./observable-finite-state-machine"), exports);
|
|
22
25
|
//# sourceMappingURL=index.js.map
|
package/lib/es2018/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,kDAA+B;AAC/B,6CAA0B;AAC1B,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;AAC1B,yDAAsC;AACtC,oEAAiD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FiniteStateMachine } from './finite-state-machine';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export interface IFiniteStateMachineStateChange<State extends string, Event extends string> {
|
|
4
|
+
event: Event;
|
|
5
|
+
oldState: State;
|
|
6
|
+
newState: State;
|
|
7
|
+
}
|
|
8
|
+
export declare class ObservableFiniteStateMachine<State extends string, Event extends string> extends FiniteStateMachine<State, Event> {
|
|
9
|
+
private stateChanges;
|
|
10
|
+
observeStateChanges(): Observable<IFiniteStateMachineStateChange<State, Event>>;
|
|
11
|
+
send(event: Event): void;
|
|
12
|
+
}
|
|
13
|
+
export { BadEventError } from './finite-state-machine';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BadEventError = exports.ObservableFiniteStateMachine = void 0;
|
|
4
|
+
const finite_state_machine_1 = require("./finite-state-machine");
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
6
|
+
const types_1 = require("@blackglory/types");
|
|
7
|
+
class ObservableFiniteStateMachine extends finite_state_machine_1.FiniteStateMachine {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.stateChanges = new rxjs_1.Subject();
|
|
11
|
+
}
|
|
12
|
+
observeStateChanges() {
|
|
13
|
+
return this.stateChanges;
|
|
14
|
+
}
|
|
15
|
+
send(event) {
|
|
16
|
+
const oldState = this.state;
|
|
17
|
+
super.send(event);
|
|
18
|
+
const newState = this.state;
|
|
19
|
+
this.stateChanges.next({ event, oldState, newState });
|
|
20
|
+
if ((0, types_1.isEmptyObject)(this.schema[newState])) {
|
|
21
|
+
this.stateChanges.complete();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.ObservableFiniteStateMachine = ObservableFiniteStateMachine;
|
|
26
|
+
var finite_state_machine_2 = require("./finite-state-machine");
|
|
27
|
+
Object.defineProperty(exports, "BadEventError", { enumerable: true, get: function () { return finite_state_machine_2.BadEventError; } });
|
|
28
|
+
//# sourceMappingURL=observable-finite-state-machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observable-finite-state-machine.js","sourceRoot":"","sources":["../../src/observable-finite-state-machine.ts"],"names":[],"mappings":";;;AAAA,iEAA2D;AAC3D,+BAA0C;AAC1C,6CAAiD;AAWjD,MAAa,4BAGX,SAAQ,yCAAgC;IAH1C;;QAIU,iBAAY,GAAG,IAAI,cAAO,EAAgD,CAAA;IAmBpF,CAAC;IAjBC,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAKD,IAAI,CAAC,KAAY;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAE3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrD,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;SAC7B;IACH,CAAC;CACF;AAvBD,oEAuBC;AAED,+DAAsD;AAA7C,qHAAA,aAAa,OAAA"}
|
package/lib/es2018/tlru-map.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare class TLRUMap<K, V> {
|
|
2
2
|
#private;
|
|
3
|
-
|
|
3
|
+
itemMetadataSortedByExpirationTime: Array<{
|
|
4
4
|
key: K;
|
|
5
5
|
expirationTime: number;
|
|
6
6
|
}>;
|
|
@@ -13,9 +13,9 @@ export declare class TLRUMap<K, V> {
|
|
|
13
13
|
delete(key: K): boolean;
|
|
14
14
|
clear(): void;
|
|
15
15
|
private updateItem;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
16
|
+
private addItemMetadata;
|
|
17
|
+
private removeItemMetadata;
|
|
18
18
|
private clearExpiredItems;
|
|
19
|
-
private
|
|
19
|
+
private rescheduleClearTimeout;
|
|
20
20
|
private getColdestKey;
|
|
21
21
|
}
|
package/lib/es2018/tlru-map.js
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
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
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _TLRUMap_limit, _TLRUMap_map,
|
|
13
|
+
var _TLRUMap_limit, _TLRUMap_map, _TLRUMap_cancelClearTimeout;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TLRUMap = void 0;
|
|
16
16
|
const errors_1 = require("@blackglory/errors");
|
|
@@ -20,13 +20,13 @@ class TLRUMap {
|
|
|
20
20
|
constructor(limit) {
|
|
21
21
|
_TLRUMap_limit.set(this, void 0);
|
|
22
22
|
_TLRUMap_map.set(this, new Map());
|
|
23
|
-
|
|
24
|
-
this.
|
|
23
|
+
_TLRUMap_cancelClearTimeout.set(this, void 0);
|
|
24
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
25
25
|
(0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
|
|
26
26
|
(0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
|
|
27
27
|
__classPrivateFieldSet(this, _TLRUMap_limit, limit, "f");
|
|
28
28
|
}
|
|
29
|
-
get [(_TLRUMap_limit = new WeakMap(), _TLRUMap_map = new WeakMap(),
|
|
29
|
+
get [(_TLRUMap_limit = new WeakMap(), _TLRUMap_map = new WeakMap(), _TLRUMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
|
|
30
30
|
return this.constructor.name;
|
|
31
31
|
}
|
|
32
32
|
get size() {
|
|
@@ -35,15 +35,15 @@ class TLRUMap {
|
|
|
35
35
|
set(key, value, maxAge) {
|
|
36
36
|
if (__classPrivateFieldGet(this, _TLRUMap_map, "f").has(key)) {
|
|
37
37
|
this.updateItem(key, value);
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
38
|
+
this.removeItemMetadata(key);
|
|
39
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
if (__classPrivateFieldGet(this, _TLRUMap_map, "f").size === __classPrivateFieldGet(this, _TLRUMap_limit, "f")) {
|
|
43
43
|
__classPrivateFieldGet(this, _TLRUMap_map, "f").delete(this.getColdestKey());
|
|
44
44
|
}
|
|
45
45
|
__classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
|
|
46
|
-
this.
|
|
46
|
+
this.addItemMetadata(key, Date.now() + maxAge);
|
|
47
47
|
}
|
|
48
48
|
return this;
|
|
49
49
|
}
|
|
@@ -63,10 +63,10 @@ class TLRUMap {
|
|
|
63
63
|
delete(key) {
|
|
64
64
|
const result = __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
|
|
65
65
|
if (result) {
|
|
66
|
-
const index = this.
|
|
67
|
-
this.
|
|
66
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
67
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
68
68
|
if (index === 0) {
|
|
69
|
-
this.
|
|
69
|
+
this.rescheduleClearTimeout();
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
return result;
|
|
@@ -74,58 +74,58 @@ class TLRUMap {
|
|
|
74
74
|
clear() {
|
|
75
75
|
var _a;
|
|
76
76
|
__classPrivateFieldGet(this, _TLRUMap_map, "f").clear();
|
|
77
|
-
(_a = __classPrivateFieldGet(this,
|
|
78
|
-
this.
|
|
77
|
+
(_a = __classPrivateFieldGet(this, _TLRUMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
78
|
+
this.itemMetadataSortedByExpirationTime = [];
|
|
79
79
|
}
|
|
80
80
|
updateItem(key, value) {
|
|
81
81
|
__classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
|
|
82
82
|
__classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
|
|
83
83
|
}
|
|
84
|
-
|
|
85
|
-
for (let i = 0; i < this.
|
|
86
|
-
const item = this.
|
|
84
|
+
addItemMetadata(key, expirationTime) {
|
|
85
|
+
for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
|
|
86
|
+
const item = this.itemMetadataSortedByExpirationTime[i];
|
|
87
87
|
if (expirationTime < item.expirationTime) {
|
|
88
|
-
this.
|
|
88
|
+
this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
|
|
89
89
|
if (i === 0) {
|
|
90
|
-
this.
|
|
90
|
+
this.rescheduleClearTimeout();
|
|
91
91
|
}
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
this.
|
|
96
|
-
if (this.
|
|
97
|
-
this.
|
|
95
|
+
this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
|
|
96
|
+
if (this.itemMetadataSortedByExpirationTime.length === 1) {
|
|
97
|
+
this.rescheduleClearTimeout();
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
|
|
101
|
-
const index = this.
|
|
100
|
+
removeItemMetadata(key) {
|
|
101
|
+
const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
|
|
102
102
|
if (index >= 0) {
|
|
103
|
-
this.
|
|
103
|
+
this.itemMetadataSortedByExpirationTime.splice(index, 1);
|
|
104
104
|
if (index === 0) {
|
|
105
|
-
this.
|
|
105
|
+
this.rescheduleClearTimeout();
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
clearExpiredItems(timestamp) {
|
|
110
|
-
const indexOfFirstUnexpiredItem = this.
|
|
111
|
-
const
|
|
112
|
-
? this.
|
|
113
|
-
: this.
|
|
114
|
-
|
|
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
115
|
}
|
|
116
|
-
|
|
116
|
+
rescheduleClearTimeout() {
|
|
117
117
|
var _a;
|
|
118
|
-
(_a = __classPrivateFieldGet(this,
|
|
119
|
-
if (this.
|
|
120
|
-
const item = this.
|
|
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
121
|
if (Number.isFinite(item.expirationTime)) {
|
|
122
122
|
const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
|
|
123
123
|
this.clearExpiredItems(Date.now());
|
|
124
|
-
this.
|
|
124
|
+
this.rescheduleClearTimeout();
|
|
125
125
|
});
|
|
126
|
-
__classPrivateFieldSet(this,
|
|
126
|
+
__classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, () => {
|
|
127
127
|
cancel();
|
|
128
|
-
__classPrivateFieldSet(this,
|
|
128
|
+
__classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, undefined, "f");
|
|
129
129
|
}, "f");
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -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;IAiBlB,YAAY,KAAa;QAhBzB,iCAAc;QACd,uBAAO,IAAI,GAAG,EAAQ,EAAA;QACtB,
|
|
1
|
+
{"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.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.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"scripts": {
|
|
15
15
|
"lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src __tests__",
|
|
16
|
-
"test": "jest --config jest.config.js",
|
|
17
|
-
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
|
|
16
|
+
"test": "jest --runInBand --config jest.config.js",
|
|
17
|
+
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --config jest.config.js",
|
|
18
18
|
"test:coverage": "jest --coverage --config jest.config.js",
|
|
19
19
|
"prepublishOnly": "run-s clean build bundle",
|
|
20
20
|
"clean": "run-p clean:*",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"husky": {
|
|
34
34
|
"hooks": {
|
|
35
|
-
"pre-commit": "run-s lint test",
|
|
35
|
+
"pre-commit": "run-s lint build test",
|
|
36
36
|
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
37
37
|
}
|
|
38
38
|
},
|
|
@@ -40,37 +40,39 @@
|
|
|
40
40
|
"node": ">=12"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@blackglory/jest-matchers": "^0.1.
|
|
44
|
-
"@commitlint/cli": "^
|
|
45
|
-
"@commitlint/config-conventional": "^
|
|
46
|
-
"@rollup/plugin-commonjs": "^
|
|
43
|
+
"@blackglory/jest-matchers": "^0.1.21",
|
|
44
|
+
"@commitlint/cli": "^15.0.0",
|
|
45
|
+
"@commitlint/config-conventional": "^15.0.0",
|
|
46
|
+
"@rollup/plugin-commonjs": "^21.0.1",
|
|
47
47
|
"@rollup/plugin-json": "^4.1.0",
|
|
48
|
-
"@rollup/plugin-node-resolve": "^13.0.
|
|
48
|
+
"@rollup/plugin-node-resolve": "^13.0.6",
|
|
49
49
|
"@rollup/plugin-replace": "^3.0.0",
|
|
50
|
-
"@rollup/plugin-typescript": "^8.
|
|
51
|
-
"@types/jest": "^27.0.
|
|
52
|
-
"@types/node": "^16.
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
54
|
-
"@typescript-eslint/parser": "^
|
|
55
|
-
"eslint": "^
|
|
56
|
-
"extra-promise": "^0.
|
|
50
|
+
"@rollup/plugin-typescript": "^8.3.0",
|
|
51
|
+
"@types/jest": "^27.0.3",
|
|
52
|
+
"@types/node": "^16.11.12",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
|
54
|
+
"@typescript-eslint/parser": "^5.6.0",
|
|
55
|
+
"eslint": "^8.4.1",
|
|
56
|
+
"extra-promise": "^0.19.4",
|
|
57
57
|
"husky": "^4.3.8",
|
|
58
|
-
"iterable-operator": "^0.14.
|
|
59
|
-
"jest": "^27.
|
|
58
|
+
"iterable-operator": "^0.14.4",
|
|
59
|
+
"jest": "^27.4.4",
|
|
60
60
|
"npm-run-all": "^4.1.5",
|
|
61
|
+
"return-style": "^0.12.5",
|
|
61
62
|
"rimraf": "^3.0.2",
|
|
62
|
-
"rollup": "^2.
|
|
63
|
+
"rollup": "^2.61.1",
|
|
63
64
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
64
65
|
"rollup-plugin-terser": "^7.0.2",
|
|
65
|
-
"standard-version": "^9.3.
|
|
66
|
-
"ts-jest": "^27.
|
|
66
|
+
"standard-version": "^9.3.2",
|
|
67
|
+
"ts-jest": "^27.1.1",
|
|
67
68
|
"tscpaths": "^0.0.9",
|
|
68
69
|
"tslib": "^2.3.1",
|
|
69
|
-
"typescript": "^4.
|
|
70
|
+
"typescript": "^4.5.3"
|
|
70
71
|
},
|
|
71
72
|
"dependencies": {
|
|
72
73
|
"@blackglory/errors": "^1.1.2",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
74
|
+
"@blackglory/types": "^0.5.2",
|
|
75
|
+
"extra-timers": "^0.2.4",
|
|
76
|
+
"rxjs": "^7.4.0"
|
|
75
77
|
}
|
|
76
78
|
}
|