@daiso-tech/core 0.24.0 → 0.25.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 (79) hide show
  1. package/README.md +3 -2
  2. package/dist/async/utilities/lazy-promise/lazy-promise.js +2 -2
  3. package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  4. package/dist/cache/contracts/cache.contract.d.ts +4 -4
  5. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +2 -2
  6. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  7. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +4 -4
  8. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  9. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +2 -2
  10. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  11. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -5
  12. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  13. package/dist/cache/implementations/derivables/cache/cache.d.ts +69 -183
  14. package/dist/cache/implementations/derivables/cache/cache.js +68 -185
  15. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  16. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +11 -15
  17. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +0 -11
  18. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  19. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +5 -5
  20. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  21. package/dist/collection/implementations/iterable-collection/iterable-collection.js +5 -5
  22. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  23. package/dist/collection/implementations/list-collection/list-collection.js +5 -5
  24. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  25. package/dist/event-bus/contracts/_shared.d.ts +1 -1
  26. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +5 -5
  27. package/dist/event-bus/contracts/event-bus.contract.d.ts +36 -16
  28. package/dist/event-bus/contracts/event-bus.contract.js +1 -0
  29. package/dist/event-bus/contracts/event-bus.contract.js.map +1 -1
  30. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +3 -3
  31. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +3 -3
  32. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  33. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +3 -3
  34. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  35. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +3 -3
  36. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +3 -3
  37. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  38. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +63 -32
  39. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +92 -33
  40. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  41. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +957 -201
  42. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  43. package/dist/lock/contracts/lock-provider.contract.d.ts +2 -2
  44. package/dist/lock/contracts/lock.contract.d.ts +24 -6
  45. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +2 -2
  46. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  47. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +4 -4
  48. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  49. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +2 -2
  50. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  51. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +4 -4
  52. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  53. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +89 -47
  54. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +67 -43
  55. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  56. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +4 -23
  57. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +8 -2
  58. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  59. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +743 -10
  60. package/dist/lock/implementations/derivables/lock-provider/lock.js +770 -3
  61. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  62. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +36 -5
  63. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +10 -4
  64. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  65. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +1 -0
  66. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +417 -0
  67. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  68. package/dist/serde/implementations/derivables/serde.js +4 -4
  69. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  70. package/dist/utilities/contracts/_module.d.ts +0 -1
  71. package/dist/utilities/contracts/_module.js +0 -1
  72. package/dist/utilities/contracts/_module.js.map +1 -1
  73. package/dist/utilities/functions.d.ts +3 -7
  74. package/dist/utilities/functions.js +3 -10
  75. package/dist/utilities/functions.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/utilities/contracts/buildable.contract.d.ts +0 -11
  78. package/dist/utilities/contracts/buildable.contract.js +0 -5
  79. package/dist/utilities/contracts/buildable.contract.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"list-collection.js","sourceRoot":"","sources":["../../../../src/collection/implementations/list-collection/list-collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-collection.js","sourceRoot":"","sources":["../../../../src/collection/implementations/list-collection/list-collection.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import type { Promisable } from "../../utilities/_module-exports.js";
7
7
  * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
8
8
  * @group Contracts
9
9
  */
10
- export type Listener<TEvent> = (event: TEvent) => Promisable<void>;
10
+ export type EventListenerFn<TEvent> = (event: TEvent) => Promisable<void>;
11
11
  /**
12
12
  *
13
13
  * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { Listener, BaseEvent } from "../../event-bus/contracts/_shared.js";
4
+ import type { EventListenerFn, BaseEvent } from "../../event-bus/contracts/_shared.js";
5
5
  /**
6
6
  * The <i>IEventBusAdapter</i> contract defines a way for dispatching and listening to events independent of underlying technology.
7
7
  * This contract is not meant to be used directly, instead you should use <i>IEventBus</i>
@@ -11,13 +11,13 @@ import type { Listener, BaseEvent } from "../../event-bus/contracts/_shared.js";
11
11
  */
12
12
  export type IEventBusAdapter = {
13
13
  /**
14
- * The <i>addListener</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>eventName</i>.
14
+ * The <i>addListener</i> method is used for adding <i>{@link EventListenerFn | listener}</i> for certain <i>eventName</i>.
15
15
  */
16
- addListener(eventName: string, listener: Listener<BaseEvent>): PromiseLike<void>;
16
+ addListener(eventName: string, listener: EventListenerFn<BaseEvent>): PromiseLike<void>;
17
17
  /**
18
- * The <i>removeListener</i> method is used for removing <i>{@link Listener | listener}</i> for certain <i>eventName</i>.
18
+ * The <i>removeListener</i> method is used for removing <i>{@link EventListenerFn | listener}</i> for certain <i>eventName</i>.
19
19
  */
20
- removeListener(eventName: string, listener: Listener<BaseEvent>): PromiseLike<void>;
20
+ removeListener(eventName: string, listener: EventListenerFn<BaseEvent>): PromiseLike<void>;
21
21
  /**
22
22
  * The <i>dispatch</i> method is used for dispatching one or multiple <i>events</i>.
23
23
  */
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { OneOrMore } from "../../utilities/_module-exports.js";
4
+ import type { OneOrMore, Promisable } from "../../utilities/_module-exports.js";
5
5
  import type { LazyPromise } from "../../async/_module-exports.js";
6
- import type { BaseEvent, Listener } from "../../event-bus/contracts/_shared.js";
6
+ import type { BaseEvent } from "../../event-bus/contracts/_shared.js";
7
+ import { type EventListenerFn } from "../../event-bus/contracts/_shared.js";
7
8
  /**
8
9
  *
9
10
  * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
@@ -27,51 +28,70 @@ export type EventInstance<TEventClass extends EventClass<BaseEvent>> = TEventCla
27
28
  */
28
29
  export type Unsubscribe = () => LazyPromise<void>;
29
30
  /**
30
- * The <i>IEventListener</i> contract defines a way listening to events independent of underlying technology
31
31
  *
32
32
  * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
33
33
  * @group Contracts
34
34
  */
35
- export type IEventListener<TEvents extends BaseEvent = BaseEvent> = {
35
+ export type IEventListenerObject<TEvent> = {
36
+ handler(event: TEvent): Promisable<void>;
37
+ };
38
+ /**
39
+ *
40
+ * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
41
+ * @group Contracts
42
+ */
43
+ export type EventListener<TEvent> = EventListenerFn<TEvent> | IEventListenerObject<TEvent>;
44
+ /**
45
+ * The <i>IEventListenable</i> contract defines a way listening to events independent of underlying technology
46
+ *
47
+ * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
48
+ * @group Contracts
49
+ */
50
+ export type IEventListenable<TEvents extends BaseEvent = BaseEvent> = {
36
51
  /**
37
- * The <i>addListener</i> method is used for listening to <i>{@link BaseEvent}</i>.
52
+ * The <i>addListener</i> method is used for listening to a <i>{@link BaseEvent}</i>.
38
53
  * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
39
54
  * @throws {UnableToAddListenerEventBusError} {@link UnableToAddListenerEventBusError}
40
55
  */
41
- addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
56
+ addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: EventListener<EventInstance<TEventClass>>): LazyPromise<void>;
42
57
  /**
43
58
  * The <i>addListenerMany</i> method is used for listening to multiple <i>{@link BaseEvent}</i>.
44
59
  * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
45
60
  * @throws {UnableToAddListenerEventBusError} {@link UnableToAddListenerEventBusError}
46
61
  */
47
- addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
62
+ addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: EventListener<EventInstance<TEventClass>>): LazyPromise<void>;
48
63
  /**
49
- * The <i>removeListener</i> method is used for stop listening to <i>{@link BaseEvent}</i>.
64
+ * The <i>removeListener</i> method is used for stop listening to a <i>{@link BaseEvent}</i>.
50
65
  * Removing unadded listener will have no effect and nothing will occur.
51
66
  * @throws {UnableToRemoveListenerEventBusError} {@link UnableToRemoveListenerEventBusError}
52
67
  */
53
- removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
68
+ removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: EventListener<EventInstance<TEventClass>>): LazyPromise<void>;
54
69
  /**
55
70
  * The <i>removeListener</i> method is used for stop listening to multiple <i>{@link BaseEvent}</i>.
56
71
  * Removing unadded listener will have no effect and nothing will occur.
57
72
  * @throws {UnableToRemoveListenerEventBusError} {@link UnableToRemoveListenerEventBusError}
58
73
  */
59
- removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
74
+ removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: EventListener<EventInstance<TEventClass>>): LazyPromise<void>;
75
+ /**
76
+ * The <i>listenOnce</i> method is used for listening to a <i>{@link BaseEvent}</i> once.
77
+ * @throws {UnableToAddListenerEventBusError} {@link UnableToAddListenerEventBusError}
78
+ */
79
+ listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: EventListener<EventInstance<TEventClass>>): LazyPromise<void>;
60
80
  /**
61
- * The <i>listenOnce</i> method is used for listening to <i>{@link BaseEvent}</i> once.
81
+ * The <i>asPromise</i> method returns <i>{@link LazyPromise}</i> objecet that resolves once the <i>{@link BaseEvent}</i> is dispatched.
62
82
  * @throws {UnableToAddListenerEventBusError} {@link UnableToAddListenerEventBusError}
63
83
  */
64
- listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
84
+ asPromise<TEventClass extends EventClass<TEvents>>(event: TEventClass): LazyPromise<EventInstance<TEventClass>>;
65
85
  /**
66
- * The <i>subscribe</i> method is used for listening to <i>{@link BaseEvent}</i> and it returns a cleanup function that removes listener when called.
86
+ * The <i>subscribe</i> method is used for listening to a <i>{@link BaseEvent}</i> and it returns a cleanup function that removes listener when called.
67
87
  * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
68
88
  */
69
- subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
89
+ subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: EventListener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
70
90
  /**
71
91
  * The <i>subscribeMany</i> method is used for listening to multiple <i>{@link BaseEvent}</i> and it returns a cleanup function that removes listener when called.
72
92
  * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
73
93
  */
74
- subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
94
+ subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: EventListener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
75
95
  };
76
96
  /**
77
97
  * The <i>IEventDispatcher</i> contract defines a way for dispatching to events independent of underlying technology.
@@ -100,7 +120,7 @@ export type IEventDispatcher<TEvents extends BaseEvent = BaseEvent> = {
100
120
  * IMPORT_PATH: ```"@daiso-tech/core/event-bus/contracts"```
101
121
  * @group Contracts
102
122
  */
103
- export type IEventBus<TEvents extends BaseEvent = BaseEvent> = IEventListener<TEvents> & IEventDispatcher<TEvents> & {
123
+ export type IEventBus<TEvents extends BaseEvent = BaseEvent> = IEventListenable<TEvents> & IEventDispatcher<TEvents> & {
104
124
  /**
105
125
  * The <i>getGroup</i> method returns the group name.
106
126
  */
@@ -8,4 +8,5 @@ UnableToDispatchEventBusError,
8
8
  UnableToAddListenerEventBusError,
9
9
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
10
  UnableToRemoveListenerEventBusError, } from "../../event-bus/contracts/event-bus.errors.js";
11
+ import {} from "../../event-bus/contracts/_shared.js";
11
12
  //# sourceMappingURL=event-bus.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.contract.js","sourceRoot":"","sources":["../../../src/event-bus/contracts/event-bus.contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO;AACH,6DAA6D;AAC7D,6BAA6B;AAC7B,6DAA6D;AAC7D,gCAAgC;AAChC,6DAA6D;AAC7D,mCAAmC,GACtC,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"event-bus.contract.js","sourceRoot":"","sources":["../../../src/event-bus/contracts/event-bus.contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO;AACH,6DAA6D;AAC7D,6BAA6B;AAC7B,6DAA6D;AAC7D,gCAAgC;AAChC,6DAA6D;AAC7D,mCAAmC,GACtC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAwB,MAAM,kCAAkC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { BaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module-exports.js";
4
+ import type { BaseEvent, IEventBusAdapter, EventListenerFn } from "../../../../event-bus/contracts/_module-exports.js";
5
5
  import { EventEmitter } from "node:events";
6
6
  /**
7
7
  *
@@ -49,7 +49,7 @@ export declare class MemoryEventBusAdapter implements IEventBusAdapter {
49
49
  getGroup(): string;
50
50
  withGroup(group: string): IEventBusAdapter;
51
51
  private withPrefix;
52
- addListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
53
- removeListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
52
+ addListener(eventName: string, listener: EventListenerFn<BaseEvent>): Promise<void>;
53
+ removeListener(eventName: string, listener: EventListenerFn<BaseEvent>): Promise<void>;
54
54
  dispatch(eventName: string, eventData: BaseEvent): Promise<void>;
55
55
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import { simplifyOneOrMoreStr } from "../../../../utilities/_module-exports.js";
4
+ import { resolveOneOrMoreStr } from "../../../../utilities/_module-exports.js";
5
5
  import { EventEmitter } from "node:events";
6
6
  /**
7
7
  * To utilize the <i>MemoryEventBusAdapter</i>, you must create instance of it.
@@ -46,12 +46,12 @@ export class MemoryEventBusAdapter {
46
46
  }
47
47
  withGroup(group) {
48
48
  return new MemoryEventBusAdapter({
49
- rootGroup: simplifyOneOrMoreStr([this.group, group]),
49
+ rootGroup: resolveOneOrMoreStr([this.group, group]),
50
50
  eventEmitter: this.eventEmitter,
51
51
  });
52
52
  }
53
53
  withPrefix(event) {
54
- return simplifyOneOrMoreStr([this.group, event]);
54
+ return resolveOneOrMoreStr([this.group, event]);
55
55
  }
56
56
  // eslint-disable-next-line @typescript-eslint/require-await
57
57
  async addListener(eventName, listener) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAMtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IACb,KAAK,CAAS;IACd,YAAY,CAAe;IAE5C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,QAAuC;QAC/C,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI,YAAY,EAAE,EAAE,GAAG,QAAQ,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,IAAI,qBAAqB,CAAC;YAC7B,SAAS,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpD,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,KAAa;QAC5B,OAAO,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,WAAW,CACb,SAAiB,EACjB,QAA6B;QAE7B,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,cAAc,CAChB,SAAiB,EACjB,QAA6B;QAE7B,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAoB;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;CACJ"}
1
+ {"version":3,"file":"memory-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAMrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IACb,KAAK,CAAS;IACd,YAAY,CAAe;IAE5C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,YAAY,QAAuC;QAC/C,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI,YAAY,EAAE,EAAE,GAAG,QAAQ,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,IAAI,qBAAqB,CAAC;YAC7B,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,KAAa;QAC5B,OAAO,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,WAAW,CACb,SAAiB,EACjB,QAAoC;QAEpC,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,cAAc,CAChB,SAAiB,EACjB,QAAoC;QAEpC,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAoB;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;CACJ"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { BaseEvent, Listener } from "../../../../event-bus/contracts/_module-exports.js";
4
+ import type { BaseEvent, EventListenerFn } from "../../../../event-bus/contracts/_module-exports.js";
5
5
  import type { IEventBusAdapter } from "../../../../event-bus/contracts/_module-exports.js";
6
6
  /**
7
7
  * This <i>NoOpEventBusAdapter</i> will do nothing and is used for easily mocking {@link IEventBus} for testing.
@@ -12,7 +12,7 @@ import type { IEventBusAdapter } from "../../../../event-bus/contracts/_module-e
12
12
  export declare class NoOpEventBusAdapter implements IEventBusAdapter {
13
13
  getGroup(): string;
14
14
  withGroup(_group: string): IEventBusAdapter;
15
- addListener(_eventName: string, _listener: Listener<BaseEvent>): PromiseLike<void>;
16
- removeListener(_eventName: string, _listener: Listener<BaseEvent>): PromiseLike<void>;
15
+ addListener(_eventName: string, _listener: EventListenerFn<BaseEvent>): PromiseLike<void>;
16
+ removeListener(_eventName: string, _listener: EventListenerFn<BaseEvent>): PromiseLike<void>;
17
17
  dispatch(_eventName: string, _eventData: BaseEvent): PromiseLike<void>;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-op-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAC5B,QAAQ;QACJ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED,WAAW,CACP,UAAkB,EAClB,SAA8B;QAE9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,cAAc,CACV,UAAkB,EAClB,SAA8B;QAE9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,UAAqB;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"no-op-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAC5B,QAAQ;QACJ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACrC,CAAC;IAED,WAAW,CACP,UAAkB,EAClB,SAAqC;QAErC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,cAAc,CACV,UAAkB,EAClB,SAAqC;QAErC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,UAAqB;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
@@ -2,7 +2,7 @@
2
2
  * @module EventBus
3
3
  */
4
4
  import { type ISerde } from "../../../../serde/contracts/_module-exports.js";
5
- import type { BaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module-exports.js";
5
+ import type { BaseEvent, IEventBusAdapter, EventListenerFn } from "../../../../event-bus/contracts/_module-exports.js";
6
6
  import type { Redis } from "ioredis";
7
7
  /**
8
8
  *
@@ -52,7 +52,7 @@ export declare class RedisPubSubEventBusAdapter implements IEventBusAdapter {
52
52
  withGroup(group: string): IEventBusAdapter;
53
53
  private withPrefix;
54
54
  private redisListener;
55
- addListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
56
- removeListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
55
+ addListener(eventName: string, listener: EventListenerFn<BaseEvent>): Promise<void>;
56
+ removeListener(eventName: string, listener: EventListenerFn<BaseEvent>): Promise<void>;
57
57
  dispatch(eventName: string, eventData: BaseEvent): Promise<void>;
58
58
  }
@@ -6,7 +6,7 @@ import { RedisSerde,
6
6
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
7
  SuperJsonSerdeAdapter, } from "../../../../serde/implementations/adapters/_module-exports.js";
8
8
  import { EventEmitter } from "node:events";
9
- import { simplifyOneOrMoreStr } from "../../../../utilities/_module-exports.js";
9
+ import { resolveOneOrMoreStr } from "../../../../utilities/_module-exports.js";
10
10
  /**
11
11
  * To utilize the <i>RedisPubSubEventBusAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, with a <i>{@link SuperJsonSerdeAdapter}</i>.
12
12
  *
@@ -54,11 +54,11 @@ export class RedisPubSubEventBusAdapter {
54
54
  listenerClient: this.listenerClient,
55
55
  dispatcherClient: this.dispatcherClient,
56
56
  serde: this.baseSerde,
57
- rootGroup: simplifyOneOrMoreStr([this.group, group]),
57
+ rootGroup: resolveOneOrMoreStr([this.group, group]),
58
58
  });
59
59
  }
60
60
  withPrefix(eventName) {
61
- return simplifyOneOrMoreStr([this.group, eventName]);
61
+ return resolveOneOrMoreStr([this.group, eventName]);
62
62
  }
63
63
  redisListener = (channel, message) => {
64
64
  this.eventEmitter.emit(channel, this.redisSerde.deserialize(message));
@@ -1 +1 @@
1
- {"version":3,"file":"redis-pub-sub-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,EACH,UAAU;AACV,6DAA6D;AAC7D,qBAAqB,GACxB,MAAM,qDAAqD,CAAC;AAO7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AActE;;;;;GAKG;AACH,MAAM,OAAO,0BAA0B;IAClB,KAAK,CAAS;IACd,SAAS,CAAiB;IAC1B,UAAU,CAAiB;IAC3B,gBAAgB,CAAQ;IACxB,cAAc,CAAQ;IACtB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnD;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EACR,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,GACwB;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,IAAI,0BAA0B,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,SAAS,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,SAAiB;QAChC,OAAO,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,aAAa,GAAG,CAAC,OAAe,EAAE,OAAe,EAAQ,EAAE;QAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,KAAK,CAAC,WAAW,CACb,SAAiB,EACjB,QAA6B;QAE7B,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE3D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhE,kEAAkE;QAClE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,SAAiB,EACjB,QAA6B;QAE7B,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAoB;QAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CACvC,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"redis-pub-sub-event-bus-adapter.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,EACH,UAAU;AACV,6DAA6D;AAC7D,qBAAqB,GACxB,MAAM,qDAAqD,CAAC;AAO7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAcrE;;;;;GAKG;AACH,MAAM,OAAO,0BAA0B;IAClB,KAAK,CAAS;IACd,SAAS,CAAiB;IAC1B,UAAU,CAAiB;IAC3B,gBAAgB,CAAQ;IACxB,cAAc,CAAQ;IACtB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnD;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EACR,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,GACwB;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,IAAI,0BAA0B,CAAC;YAClC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACtD,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,SAAiB;QAChC,OAAO,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,aAAa,GAAG,CAAC,OAAe,EAAE,OAAe,EAAQ,EAAE;QAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,KAAK,CAAC,WAAW,CACb,SAAiB,EACjB,QAAoC;QAEpC,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE3D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhE,kEAAkE;QAClE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,SAAiB,EACjB,QAAoC;QAEpC,kEAAkE;QAClE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAoB;QAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CACvC,CAAC;IACN,CAAC;CACJ"}