@blackglory/structures 0.3.7 → 0.5.1

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 (90) hide show
  1. package/README.md +8 -21
  2. package/dist/es2015/index.min.mjs +2 -16
  3. package/dist/es2015/index.min.mjs.map +1 -1
  4. package/dist/es2015/index.mjs +2679 -25690
  5. package/dist/es2015/index.mjs.map +1 -1
  6. package/dist/es2015/index.umd.js +2691 -25703
  7. package/dist/es2015/index.umd.js.map +1 -1
  8. package/dist/es2015/index.umd.min.js +2 -16
  9. package/dist/es2015/index.umd.min.js.map +1 -1
  10. package/dist/es2018/index.min.mjs +2 -16
  11. package/dist/es2018/index.min.mjs.map +1 -1
  12. package/dist/es2018/index.mjs +2680 -25681
  13. package/dist/es2018/index.mjs.map +1 -1
  14. package/dist/es2018/index.umd.js +2692 -25694
  15. package/dist/es2018/index.umd.js.map +1 -1
  16. package/dist/es2018/index.umd.min.js +2 -16
  17. package/dist/es2018/index.umd.min.js.map +1 -1
  18. package/lib/es2015/box.d.ts +1 -1
  19. package/lib/es2015/box.js +3 -17
  20. package/lib/es2015/box.js.map +1 -1
  21. package/lib/es2015/emitter.d.ts +6 -6
  22. package/lib/es2015/emitter.js +11 -18
  23. package/lib/es2015/emitter.js.map +1 -1
  24. package/lib/es2015/expirable-map.d.ts +2 -1
  25. package/lib/es2015/expirable-map.js +14 -27
  26. package/lib/es2015/expirable-map.js.map +1 -1
  27. package/lib/es2015/finite-state-machine.d.ts +1 -1
  28. package/lib/es2015/finite-state-machine.js +4 -18
  29. package/lib/es2015/finite-state-machine.js.map +1 -1
  30. package/lib/es2015/hash-map.d.ts +1 -1
  31. package/lib/es2015/hash-map.js +8 -14
  32. package/lib/es2015/hash-map.js.map +1 -1
  33. package/lib/es2015/hash-set.d.ts +1 -1
  34. package/lib/es2015/hash-set.js +9 -15
  35. package/lib/es2015/hash-set.js.map +1 -1
  36. package/lib/es2015/index.d.ts +0 -1
  37. package/lib/es2015/index.js +0 -1
  38. package/lib/es2015/index.js.map +1 -1
  39. package/lib/es2015/lru-map.d.ts +2 -1
  40. package/lib/es2015/lru-map.js +15 -28
  41. package/lib/es2015/lru-map.js.map +1 -1
  42. package/lib/es2015/queue.d.ts +1 -1
  43. package/lib/es2015/queue.js +8 -14
  44. package/lib/es2015/queue.js.map +1 -1
  45. package/lib/es2015/tlru-map.d.ts +4 -2
  46. package/lib/es2015/tlru-map.js +21 -35
  47. package/lib/es2015/tlru-map.js.map +1 -1
  48. package/lib/es2015/trie-map.d.ts +1 -1
  49. package/lib/es2015/trie-map.js +6 -12
  50. package/lib/es2015/trie-map.js.map +1 -1
  51. package/lib/es2018/box.d.ts +1 -1
  52. package/lib/es2018/box.js +3 -17
  53. package/lib/es2018/box.js.map +1 -1
  54. package/lib/es2018/emitter.d.ts +6 -6
  55. package/lib/es2018/emitter.js +11 -18
  56. package/lib/es2018/emitter.js.map +1 -1
  57. package/lib/es2018/expirable-map.d.ts +2 -1
  58. package/lib/es2018/expirable-map.js +14 -27
  59. package/lib/es2018/expirable-map.js.map +1 -1
  60. package/lib/es2018/finite-state-machine.d.ts +1 -1
  61. package/lib/es2018/finite-state-machine.js +4 -18
  62. package/lib/es2018/finite-state-machine.js.map +1 -1
  63. package/lib/es2018/hash-map.d.ts +1 -1
  64. package/lib/es2018/hash-map.js +8 -14
  65. package/lib/es2018/hash-map.js.map +1 -1
  66. package/lib/es2018/hash-set.d.ts +1 -1
  67. package/lib/es2018/hash-set.js +9 -15
  68. package/lib/es2018/hash-set.js.map +1 -1
  69. package/lib/es2018/index.d.ts +0 -1
  70. package/lib/es2018/index.js +0 -1
  71. package/lib/es2018/index.js.map +1 -1
  72. package/lib/es2018/lru-map.d.ts +2 -1
  73. package/lib/es2018/lru-map.js +15 -28
  74. package/lib/es2018/lru-map.js.map +1 -1
  75. package/lib/es2018/queue.d.ts +1 -1
  76. package/lib/es2018/queue.js +8 -14
  77. package/lib/es2018/queue.js.map +1 -1
  78. package/lib/es2018/tlru-map.d.ts +4 -2
  79. package/lib/es2018/tlru-map.js +21 -35
  80. package/lib/es2018/tlru-map.js.map +1 -1
  81. package/lib/es2018/trie-map.d.ts +1 -1
  82. package/lib/es2018/trie-map.js +6 -12
  83. package/lib/es2018/trie-map.js.map +1 -1
  84. package/package.json +6 -7
  85. package/lib/es2015/instance-manager.d.ts +0 -14
  86. package/lib/es2015/instance-manager.js +0 -52
  87. package/lib/es2015/instance-manager.js.map +0 -1
  88. package/lib/es2018/instance-manager.d.ts +0 -14
  89. package/lib/es2018/instance-manager.js +0 -43
  90. package/lib/es2018/instance-manager.js.map +0 -1
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.InstanceManager = void 0;
13
- const errors_1 = require("@blackglory/errors");
14
- const extra_promise_1 = require("extra-promise");
15
- class InstanceManager {
16
- constructor(construct, destruct) {
17
- this.construct = construct;
18
- this.destruct = destruct;
19
- this.instances = [];
20
- this.targetQuantity = 0;
21
- this.lock = new extra_promise_1.Mutex();
22
- }
23
- getInstances() {
24
- return [...this.instances];
25
- }
26
- getCurrentQuantity() {
27
- return this.instances.length;
28
- }
29
- getTargetQuantity() {
30
- return this.targetQuantity;
31
- }
32
- setTargetQuantity(target) {
33
- (0, errors_1.assert)(target >= 0, 'target quantity must be greater than or equal to 0');
34
- (0, errors_1.assert)(Number.isInteger(target), 'target quantity must be integer');
35
- this.targetQuantity = target;
36
- }
37
- scale() {
38
- return this.lock.acquire(() => __awaiter(this, void 0, void 0, function* () {
39
- while (this.instances.length !== this.targetQuantity) {
40
- while (this.instances.length < this.targetQuantity) {
41
- this.instances.push(yield this.construct());
42
- }
43
- while (this.instances.length > this.targetQuantity) {
44
- const instance = this.instances.pop();
45
- yield this.destruct(instance);
46
- }
47
- }
48
- }));
49
- }
50
- }
51
- exports.InstanceManager = InstanceManager;
52
- //# sourceMappingURL=instance-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance-manager.js","sourceRoot":"","sources":["../../src/instance-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA2C;AAE3C,iDAAqC;AAErC,MAAa,eAAe;IAK1B,YACU,SAA6B,EAC7B,QAA0C;QAD1C,cAAS,GAAT,SAAS,CAAoB;QAC7B,aAAQ,GAAR,QAAQ,CAAkC;QAN5C,cAAS,GAAQ,EAAE,CAAA;QACnB,mBAAc,GAAW,CAAC,CAAA;QAC1B,SAAI,GAAU,IAAI,qBAAK,EAAE,CAAA;IAK9B,CAAC;IAEJ,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,IAAA,eAAM,EAAC,MAAM,IAAI,CAAC,EAAE,oDAAoD,CAAC,CAAA;QACzE,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC,CAAA;QAEnE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAS,EAAE;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;gBACpD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;oBAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;iBAC5C;gBAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;oBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAG,CAAA;oBACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;iBAC9B;aACF;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;CACF;AA3CD,0CA2CC"}
@@ -1,14 +0,0 @@
1
- import { Awaitable } from 'justypes';
2
- export declare class InstanceManager<T> {
3
- private construct;
4
- private destruct;
5
- private instances;
6
- private targetQuantity;
7
- private lock;
8
- constructor(construct: () => Awaitable<T>, destruct: (instance: T) => Awaitable<void>);
9
- getInstances(): T[];
10
- getCurrentQuantity(): number;
11
- getTargetQuantity(): number;
12
- setTargetQuantity(target: number): void;
13
- scale(): Promise<void>;
14
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstanceManager = void 0;
4
- const errors_1 = require("@blackglory/errors");
5
- const extra_promise_1 = require("extra-promise");
6
- class InstanceManager {
7
- constructor(construct, destruct) {
8
- this.construct = construct;
9
- this.destruct = destruct;
10
- this.instances = [];
11
- this.targetQuantity = 0;
12
- this.lock = new extra_promise_1.Mutex();
13
- }
14
- getInstances() {
15
- return [...this.instances];
16
- }
17
- getCurrentQuantity() {
18
- return this.instances.length;
19
- }
20
- getTargetQuantity() {
21
- return this.targetQuantity;
22
- }
23
- setTargetQuantity(target) {
24
- (0, errors_1.assert)(target >= 0, 'target quantity must be greater than or equal to 0');
25
- (0, errors_1.assert)(Number.isInteger(target), 'target quantity must be integer');
26
- this.targetQuantity = target;
27
- }
28
- scale() {
29
- return this.lock.acquire(async () => {
30
- while (this.instances.length !== this.targetQuantity) {
31
- while (this.instances.length < this.targetQuantity) {
32
- this.instances.push(await this.construct());
33
- }
34
- while (this.instances.length > this.targetQuantity) {
35
- const instance = this.instances.pop();
36
- await this.destruct(instance);
37
- }
38
- }
39
- });
40
- }
41
- }
42
- exports.InstanceManager = InstanceManager;
43
- //# sourceMappingURL=instance-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"instance-manager.js","sourceRoot":"","sources":["../../src/instance-manager.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,iDAAqC;AAErC,MAAa,eAAe;IAK1B,YACU,SAA6B,EAC7B,QAA0C;QAD1C,cAAS,GAAT,SAAS,CAAoB;QAC7B,aAAQ,GAAR,QAAQ,CAAkC;QAN5C,cAAS,GAAQ,EAAE,CAAA;QACnB,mBAAc,GAAW,CAAC,CAAA;QAC1B,SAAI,GAAU,IAAI,qBAAK,EAAE,CAAA;IAK9B,CAAC;IAEJ,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,IAAA,eAAM,EAAC,MAAM,IAAI,CAAC,EAAE,oDAAoD,CAAC,CAAA;QACzE,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC,CAAA;QAEnE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAClC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;gBACpD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;oBAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;iBAC5C;gBAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;oBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAG,CAAA;oBACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;iBAC9B;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA3CD,0CA2CC"}