@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
package/README.md CHANGED
@@ -32,14 +32,17 @@ function convertArrayToCons<T>([value, ...next]: T[]): Cons<T>
32
32
 
33
33
  ### Emitter
34
34
  ```ts
35
- type Handler<T> = (vale: T) => void
35
+ type Handler<Args extends unknown[]> = (...args: Args) => void
36
36
 
37
- class Emitter<T> {
37
+ class Emitter<EventToArgs extends Record<string, unknown[]>> {
38
38
  get [Symbol.toStringTag](): string
39
39
 
40
- on(event: string, handler: Handler<T>): void
41
- off(event: string, handler: Handler<T>): void
42
- emit(event: string, vale: T): void
40
+ /**
41
+ * The same handler will only be registered once.
42
+ */
43
+ on<T extends keyof EventToArgs>(event: T, handler: Handler<EventToArgs[T]>): void
44
+ off<T extends keyof EventToArgs>(event: T, handler: Handler<EventToArgs[T]>): void
45
+ emit<T extends keyof EventToArgs>(event: T, ...args: EventToArgs[T]): void
43
46
  }
44
47
  ```
45
48
 
@@ -190,19 +193,3 @@ class ObservableFiniteStateMachine<
190
193
  observeStateChanges(): Observable<IFiniteStateMachineStateChange<State, Event>>
191
194
  }
192
195
  ```
193
-
194
- ### InstanceManager
195
- ```ts
196
- class InstanceManager<T> {
197
- constructor(
198
- construct: () => Awaitable<T>
199
- , destruct: (instance: T) => Awaitable<void>
200
- )
201
-
202
- getInstances(): T[]
203
- getCurrentQuantity(): number
204
- getTargetQuantity(): number
205
- setTargetQuantity(target: number): void
206
- scale(): Promise<void>
207
- }
208
- ```