@hg-ts/events 0.7.12 → 0.7.14

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.
@@ -1,5 +1,6 @@
1
1
  import type { BaseEvent } from '../base.event.js';
2
2
  export declare abstract class BaseEventTransport {
3
+ abstract getEvents(): Class<BaseEvent>[];
3
4
  abstract publish(event: BaseEvent | BaseEvent[]): Promise<void>;
4
5
  }
5
6
  //# sourceMappingURL=base.event-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.event-transport.d.ts","sourceRoot":"","sources":["../../src/event-handling/base.event-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,8BAAsB,kBAAkB;aACvB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CACtE"}
1
+ {"version":3,"file":"base.event-transport.d.ts","sourceRoot":"","sources":["../../src/event-handling/base.event-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,8BAAsB,kBAAkB;aACvB,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;aAC/B,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CACtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.event-transport.js","sourceRoot":"","sources":["../../src/event-handling/base.event-transport.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,kBAAkB;CAEvC"}
1
+ {"version":3,"file":"base.event-transport.js","sourceRoot":"","sources":["../../src/event-handling/base.event-transport.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,kBAAkB;CAGvC"}
@@ -4,5 +4,6 @@ export declare class EventEmitter {
4
4
  private readonly transports;
5
5
  constructor(eventPublisher: EventPublisher);
6
6
  emit(event: BaseEvent | BaseEvent[]): Promise<void>;
7
+ getAllEvents(): Promise<Class<BaseEvent, any[]>[]>;
7
8
  }
8
9
  //# sourceMappingURL=event-emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/event-handling/event-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBACa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAE/B,cAAc,EAAE,cAAc;IAIpC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/event-handling/event-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBACa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAE/B,cAAc,EAAE,cAAc;IAIpC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;CAG/D"}
@@ -9,6 +9,9 @@ let EventEmitter = class EventEmitter {
9
9
  async emit(event) {
10
10
  await Promise.all(this.transports.map(async (transport) => transport.publish(event)));
11
11
  }
12
+ async getAllEvents() {
13
+ return this.transports.flatMap(event => event.getEvents());
14
+ }
12
15
  };
13
16
  EventEmitter = __decorate([
14
17
  Injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/event-handling/event-emitter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG/C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACP,UAAU,CAAuB;IAElD,YAAmB,cAA8B;QAChD,IAAI,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAA8B;QAC/C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;CACD,CAAA;AAVY,YAAY;IADxB,UAAU,EAAE;qCAIuB,cAAc;GAHrC,YAAY,CAUxB"}
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../src/event-handling/event-emitter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG/C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACP,UAAU,CAAuB;IAElD,YAAmB,cAA8B;QAChD,IAAI,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAA8B;QAC/C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAEM,KAAK,CAAC,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;CACD,CAAA;AAdY,YAAY;IADxB,UAAU,EAAE;qCAIuB,cAAc;GAHrC,YAAY,CAcxB"}
@@ -3,6 +3,7 @@ import type { EventHandler } from '../decorators/index.js';
3
3
  import type { BaseEventTransport } from './base.event-transport.js';
4
4
  export declare class EventPublisher implements BaseEventTransport {
5
5
  private readonly listeners;
6
+ getEvents(): Class<BaseEvent, any[]>[];
6
7
  publish(event: BaseEvent | BaseEvent[]): Promise<void>;
7
8
  protected publishOne(event: BaseEvent): Promise<void>;
8
9
  protected addListener<Event extends BaseEvent>(eventCtor: Class<Event>, listener: EventHandler<Event>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"event-publisher.d.ts","sourceRoot":"","sources":["../../src/event-handling/event-publisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,cAAe,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAEjE,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMnD,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI;IAQ5G,OAAO,CAAC,aAAa;CASrB"}
1
+ {"version":3,"file":"event-publisher.d.ts","sourceRoot":"","sources":["../../src/event-handling/event-publisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,cAAe,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAEvE,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;IAIhC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAMnD,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI;IAQ5G,OAAO,CAAC,aAAa;CASrB"}
@@ -2,6 +2,9 @@ import assert from 'node:assert/strict';
2
2
  import { BaseEvent } from '../base.event.js';
3
3
  export class EventPublisher {
4
4
  listeners = new Map();
5
+ getEvents() {
6
+ return [...this.listeners.keys()];
7
+ }
5
8
  async publish(event) {
6
9
  const events = Array.isArray(event) ? event : [event];
7
10
  await Promise.all(events.map(async (event) => this.publishOne(event)));
@@ -1 +1 @@
1
- {"version":3,"file":"event-publisher.js","sourceRoot":"","sources":["../../src/event-handling/event-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,OAAO,cAAc;IACT,SAAS,GAA0C,IAAI,GAAG,EAAE,CAAC;IAEvE,KAAK,CAAC,OAAO,CAAC,KAA8B;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAES,WAAW,CAA0B,SAAuB,EAAE,QAA6B;QACpG,MAAM,SAAS,GAA0B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7E,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAA2B,CAAC,CAAC;IAC5D,CAAC;IAEO,aAAa,CAAC,KAAgB;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAE,CAAC,WAAW,CAAC;QAC5D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,YAAY;aACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,YAAY,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;aACzE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;CACD"}
1
+ {"version":3,"file":"event-publisher.js","sourceRoot":"","sources":["../../src/event-handling/event-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,OAAO,cAAc;IACT,SAAS,GAA0C,IAAI,GAAG,EAAE,CAAC;IAEvE,SAAS;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAA8B;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAES,WAAW,CAA0B,SAAuB,EAAE,QAA6B;QACpG,MAAM,SAAS,GAA0B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7E,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAA2B,CAAC,CAAC;IAC5D,CAAC;IAEO,aAAa,CAAC,KAAgB;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAE,CAAC,WAAW,CAAC;QAC5D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,YAAY;aACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,YAAY,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;aACzE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/events",
3
- "version": "0.7.12",
3
+ "version": "0.7.14",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -18,10 +18,10 @@
18
18
  "test:dev": "vitest watch"
19
19
  },
20
20
  "devDependencies": {
21
- "@hg-ts-config/typescript": "0.7.12",
22
- "@hg-ts/linter": "0.7.12",
23
- "@hg-ts/tests": "0.7.12",
24
- "@hg-ts/types": "0.7.12",
21
+ "@hg-ts-config/typescript": "0.7.14",
22
+ "@hg-ts/linter": "0.7.14",
23
+ "@hg-ts/tests": "0.7.14",
24
+ "@hg-ts/types": "0.7.14",
25
25
  "@nestjs/common": "11.1.0",
26
26
  "@nestjs/core": "11.1.0",
27
27
  "@types/node": "22.19.1",
@@ -1,5 +1,6 @@
1
1
  import type { BaseEvent } from '../base.event.js';
2
2
 
3
3
  export abstract class BaseEventTransport {
4
+ public abstract getEvents(): Class<BaseEvent>[];
4
5
  public abstract publish(event: BaseEvent | BaseEvent[]): Promise<void>;
5
6
  }
@@ -14,4 +14,8 @@ export class EventEmitter {
14
14
  public async emit(event: BaseEvent | BaseEvent[]): Promise<void> {
15
15
  await Promise.all(this.transports.map(async transport => transport.publish(event)));
16
16
  }
17
+
18
+ public async getAllEvents(): Promise<Class<BaseEvent, any[]>[]> {
19
+ return this.transports.flatMap(event => event.getEvents());
20
+ }
17
21
  }
@@ -7,6 +7,10 @@ import type { BaseEventTransport } from './base.event-transport.js';
7
7
  export class EventPublisher implements BaseEventTransport {
8
8
  private readonly listeners: Map<Class<BaseEvent>, EventHandler[]> = new Map();
9
9
 
10
+ public getEvents(): Class<BaseEvent, any[]>[] {
11
+ return [...this.listeners.keys()];
12
+ }
13
+
10
14
  public async publish(event: BaseEvent | BaseEvent[]): Promise<void> {
11
15
  const events = Array.isArray(event) ? event : [event];
12
16