@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.
Files changed (55) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +50 -13
  3. package/dist/es2015/index.min.mjs +16 -2
  4. package/dist/es2015/index.min.mjs.map +1 -1
  5. package/dist/es2015/index.mjs +1661 -488
  6. package/dist/es2015/index.mjs.map +1 -1
  7. package/dist/es2015/index.umd.js +1666 -489
  8. package/dist/es2015/index.umd.js.map +1 -1
  9. package/dist/es2015/index.umd.min.js +15 -2
  10. package/dist/es2015/index.umd.min.js.map +1 -1
  11. package/dist/es2018/index.min.mjs +16 -2
  12. package/dist/es2018/index.min.mjs.map +1 -1
  13. package/dist/es2018/index.mjs +1661 -488
  14. package/dist/es2018/index.mjs.map +1 -1
  15. package/dist/es2018/index.umd.js +1666 -489
  16. package/dist/es2018/index.umd.js.map +1 -1
  17. package/dist/es2018/index.umd.min.js +15 -2
  18. package/dist/es2018/index.umd.min.js.map +1 -1
  19. package/lib/es2015/box.d.ts +6 -0
  20. package/lib/es2015/box.js +30 -0
  21. package/lib/es2015/box.js.map +1 -0
  22. package/lib/es2015/expirable-map.d.ts +4 -4
  23. package/lib/es2015/expirable-map.js +38 -38
  24. package/lib/es2015/expirable-map.js.map +1 -1
  25. package/lib/es2015/finite-state-machine.d.ts +13 -0
  26. package/lib/es2015/finite-state-machine.js +46 -0
  27. package/lib/es2015/finite-state-machine.js.map +1 -0
  28. package/lib/es2015/index.d.ts +3 -0
  29. package/lib/es2015/index.js +3 -0
  30. package/lib/es2015/index.js.map +1 -1
  31. package/lib/es2015/observable-finite-state-machine.d.ts +13 -0
  32. package/lib/es2015/observable-finite-state-machine.js +28 -0
  33. package/lib/es2015/observable-finite-state-machine.js.map +1 -0
  34. package/lib/es2015/tlru-map.d.ts +4 -4
  35. package/lib/es2015/tlru-map.js +36 -36
  36. package/lib/es2015/tlru-map.js.map +1 -1
  37. package/lib/es2018/box.d.ts +6 -0
  38. package/lib/es2018/box.js +30 -0
  39. package/lib/es2018/box.js.map +1 -0
  40. package/lib/es2018/expirable-map.d.ts +4 -4
  41. package/lib/es2018/expirable-map.js +38 -38
  42. package/lib/es2018/expirable-map.js.map +1 -1
  43. package/lib/es2018/finite-state-machine.d.ts +13 -0
  44. package/lib/es2018/finite-state-machine.js +46 -0
  45. package/lib/es2018/finite-state-machine.js.map +1 -0
  46. package/lib/es2018/index.d.ts +3 -0
  47. package/lib/es2018/index.js +3 -0
  48. package/lib/es2018/index.js.map +1 -1
  49. package/lib/es2018/observable-finite-state-machine.d.ts +13 -0
  50. package/lib/es2018/observable-finite-state-machine.js +28 -0
  51. package/lib/es2018/observable-finite-state-machine.js.map +1 -0
  52. package/lib/es2018/tlru-map.d.ts +4 -4
  53. package/lib/es2018/tlru-map.js +36 -36
  54. package/lib/es2018/tlru-map.js.map +1 -1
  55. 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, _ExpirableMap_cancelNextTimeout;
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
- _ExpirableMap_cancelNextTimeout.set(this, void 0);
21
- this.itemsSortedByExpirationTime = [];
20
+ _ExpirableMap_cancelClearTimeout.set(this, void 0);
21
+ this.itemMetadataSortedByExpirationTime = [];
22
22
  }
23
- get [(_ExpirableMap_map = new WeakMap(), _ExpirableMap_cancelNextTimeout = new WeakMap(), Symbol.toStringTag)]() {
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.removeItem(key);
32
- this.addItem(key, Date.now() + maxAge);
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 result = __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(key);
43
- if (result) {
44
- const index = this.itemsSortedByExpirationTime.findIndex(x => x.key === key);
45
- this.itemsSortedByExpirationTime.splice(index, 1);
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.rescheduleTimeout();
47
+ this.rescheduleClearTimeout();
48
48
  }
49
49
  }
50
- return result;
50
+ return exists;
51
51
  }
52
52
  clear() {
53
53
  var _a;
54
54
  __classPrivateFieldGet(this, _ExpirableMap_map, "f").clear();
55
- (_a = __classPrivateFieldGet(this, _ExpirableMap_cancelNextTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
56
- this.itemsSortedByExpirationTime = [];
55
+ (_a = __classPrivateFieldGet(this, _ExpirableMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
56
+ this.itemMetadataSortedByExpirationTime = [];
57
57
  }
58
- addItem(key, expirationTime) {
59
- for (let i = 0; i < this.itemsSortedByExpirationTime.length; i++) {
60
- const item = this.itemsSortedByExpirationTime[i];
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.itemsSortedByExpirationTime.splice(i, 0, { key, expirationTime });
62
+ this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
63
63
  if (i === 0) {
64
- this.rescheduleTimeout();
64
+ this.rescheduleClearTimeout();
65
65
  }
66
66
  return;
67
67
  }
68
68
  }
69
- this.itemsSortedByExpirationTime.push({ key, expirationTime });
70
- if (this.itemsSortedByExpirationTime.length === 1) {
71
- this.rescheduleTimeout();
69
+ this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
70
+ if (this.itemMetadataSortedByExpirationTime.length === 1) {
71
+ this.rescheduleClearTimeout();
72
72
  }
73
73
  }
74
- removeItem(key) {
75
- const index = this.itemsSortedByExpirationTime.findIndex(x => x.key === key);
74
+ removeItemMetadata(key) {
75
+ const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
76
76
  if (index >= 0) {
77
- this.itemsSortedByExpirationTime.splice(index, 1);
77
+ this.itemMetadataSortedByExpirationTime.splice(index, 1);
78
78
  if (index === 0) {
79
- this.rescheduleTimeout();
79
+ this.rescheduleClearTimeout();
80
80
  }
81
81
  }
82
82
  }
83
83
  clearExpiredItems(timestamp) {
84
- const indexOfFirstUnexpiredItem = this.itemsSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
85
- const expiredItems = indexOfFirstUnexpiredItem >= 0
86
- ? this.itemsSortedByExpirationTime.splice(0, indexOfFirstUnexpiredItem)
87
- : this.itemsSortedByExpirationTime.splice(0, this.itemsSortedByExpirationTime.length);
88
- expiredItems.forEach(x => __classPrivateFieldGet(this, _ExpirableMap_map, "f").delete(x.key));
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
- rescheduleTimeout() {
90
+ rescheduleClearTimeout() {
91
91
  var _a;
92
- (_a = __classPrivateFieldGet(this, _ExpirableMap_cancelNextTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
93
- if (this.itemsSortedByExpirationTime.length > 0) {
94
- const item = this.itemsSortedByExpirationTime[0];
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.rescheduleTimeout();
98
+ this.rescheduleClearTimeout();
99
99
  });
100
- __classPrivateFieldSet(this, _ExpirableMap_cancelNextTimeout, () => {
100
+ __classPrivateFieldSet(this, _ExpirableMap_cancelClearTimeout, () => {
101
101
  cancel();
102
- __classPrivateFieldSet(this, _ExpirableMap_cancelNextTimeout, undefined, "f");
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":"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"}
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"}
@@ -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';
@@ -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
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  export declare class TLRUMap<K, V> {
2
2
  #private;
3
- itemsSortedByExpirationTime: Array<{
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 addItem;
17
- private removeItem;
16
+ private addItemMetadata;
17
+ private removeItemMetadata;
18
18
  private clearExpiredItems;
19
- private rescheduleTimeout;
19
+ private rescheduleClearTimeout;
20
20
  private getColdestKey;
21
21
  }
@@ -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, _TLRUMap_cancelNextTimeout;
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
- _TLRUMap_cancelNextTimeout.set(this, void 0);
24
- this.itemsSortedByExpirationTime = [];
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(), _TLRUMap_cancelNextTimeout = new WeakMap(), Symbol.toStringTag)]() {
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.removeItem(key);
39
- this.addItem(key, Date.now() + maxAge);
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.addItem(key, Date.now() + maxAge);
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.itemsSortedByExpirationTime.findIndex(x => x.key === key);
67
- this.itemsSortedByExpirationTime.splice(index, 1);
66
+ const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
67
+ this.itemMetadataSortedByExpirationTime.splice(index, 1);
68
68
  if (index === 0) {
69
- this.rescheduleTimeout();
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, _TLRUMap_cancelNextTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
78
- this.itemsSortedByExpirationTime = [];
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
- addItem(key, expirationTime) {
85
- for (let i = 0; i < this.itemsSortedByExpirationTime.length; i++) {
86
- const item = this.itemsSortedByExpirationTime[i];
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.itemsSortedByExpirationTime.splice(i, 0, { key, expirationTime });
88
+ this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
89
89
  if (i === 0) {
90
- this.rescheduleTimeout();
90
+ this.rescheduleClearTimeout();
91
91
  }
92
92
  return;
93
93
  }
94
94
  }
95
- this.itemsSortedByExpirationTime.push({ key, expirationTime });
96
- if (this.itemsSortedByExpirationTime.length === 1) {
97
- this.rescheduleTimeout();
95
+ this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
96
+ if (this.itemMetadataSortedByExpirationTime.length === 1) {
97
+ this.rescheduleClearTimeout();
98
98
  }
99
99
  }
100
- removeItem(key) {
101
- const index = this.itemsSortedByExpirationTime.findIndex(x => x.key === key);
100
+ removeItemMetadata(key) {
101
+ const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
102
102
  if (index >= 0) {
103
- this.itemsSortedByExpirationTime.splice(index, 1);
103
+ this.itemMetadataSortedByExpirationTime.splice(index, 1);
104
104
  if (index === 0) {
105
- this.rescheduleTimeout();
105
+ this.rescheduleClearTimeout();
106
106
  }
107
107
  }
108
108
  }
109
109
  clearExpiredItems(timestamp) {
110
- const indexOfFirstUnexpiredItem = this.itemsSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
111
- const expiredItems = indexOfFirstUnexpiredItem >= 0
112
- ? this.itemsSortedByExpirationTime.splice(0, indexOfFirstUnexpiredItem)
113
- : this.itemsSortedByExpirationTime.splice(0, this.itemsSortedByExpirationTime.length);
114
- expiredItems.forEach(x => __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(x.key));
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
- rescheduleTimeout() {
116
+ rescheduleClearTimeout() {
117
117
  var _a;
118
- (_a = __classPrivateFieldGet(this, _TLRUMap_cancelNextTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
119
- if (this.itemsSortedByExpirationTime.length > 0) {
120
- const item = this.itemsSortedByExpirationTime[0];
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.rescheduleTimeout();
124
+ this.rescheduleClearTimeout();
125
125
  });
126
- __classPrivateFieldSet(this, _TLRUMap_cancelNextTimeout, () => {
126
+ __classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, () => {
127
127
  cancel();
128
- __classPrivateFieldSet(this, _TLRUMap_cancelNextTimeout, undefined, "f");
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":"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"}
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.2.5",
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.20",
44
- "@commitlint/cli": "^13.1.0",
45
- "@commitlint/config-conventional": "^13.1.0",
46
- "@rollup/plugin-commonjs": "^20.0.0",
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.4",
48
+ "@rollup/plugin-node-resolve": "^13.0.6",
49
49
  "@rollup/plugin-replace": "^3.0.0",
50
- "@rollup/plugin-typescript": "^8.2.5",
51
- "@types/jest": "^27.0.1",
52
- "@types/node": "^16.9.1",
53
- "@typescript-eslint/eslint-plugin": "^4.31.1",
54
- "@typescript-eslint/parser": "^4.31.1",
55
- "eslint": "^7.32.0",
56
- "extra-promise": "^0.18.5",
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.3",
59
- "jest": "^27.2.0",
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.56.3",
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.1",
66
- "ts-jest": "^27.0.5",
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.4.3"
70
+ "typescript": "^4.5.3"
70
71
  },
71
72
  "dependencies": {
72
73
  "@blackglory/errors": "^1.1.2",
73
- "extra-timers": "^0.2.2",
74
- "justypes": "^0.1.5"
74
+ "@blackglory/types": "^0.5.2",
75
+ "extra-timers": "^0.2.4",
76
+ "rxjs": "^7.4.0"
75
77
  }
76
78
  }