@woltz/rich-domain 1.6.0 → 1.7.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 (87) hide show
  1. package/dist/cjs/base-entity.d.ts.map +1 -1
  2. package/dist/cjs/base-entity.js +3 -0
  3. package/dist/cjs/base-entity.js.map +1 -1
  4. package/dist/cjs/change-tracker.d.ts +1 -3
  5. package/dist/cjs/change-tracker.d.ts.map +1 -1
  6. package/dist/cjs/change-tracker.js +24 -24
  7. package/dist/cjs/change-tracker.js.map +1 -1
  8. package/dist/cjs/entity-schema-registry.d.ts.map +1 -1
  9. package/dist/cjs/entity-schema-registry.js +12 -10
  10. package/dist/cjs/entity-schema-registry.js.map +1 -1
  11. package/dist/cjs/exceptions.d.ts.map +1 -1
  12. package/dist/cjs/exceptions.js +0 -25
  13. package/dist/cjs/exceptions.js.map +1 -1
  14. package/dist/cjs/id.d.ts +17 -10
  15. package/dist/cjs/id.d.ts.map +1 -1
  16. package/dist/cjs/id.js +15 -3
  17. package/dist/cjs/id.js.map +1 -1
  18. package/dist/cjs/paginated-result.d.ts +4 -12
  19. package/dist/cjs/paginated-result.d.ts.map +1 -1
  20. package/dist/cjs/paginated-result.js +4 -1
  21. package/dist/cjs/paginated-result.js.map +1 -1
  22. package/dist/cjs/types/domain.d.ts +3 -4
  23. package/dist/cjs/types/domain.d.ts.map +1 -1
  24. package/dist/cjs/types/utils.d.ts +8 -7
  25. package/dist/cjs/types/utils.d.ts.map +1 -1
  26. package/dist/cjs/value-object.d.ts +7 -54
  27. package/dist/cjs/value-object.d.ts.map +1 -1
  28. package/dist/cjs/value-object.js +12 -75
  29. package/dist/cjs/value-object.js.map +1 -1
  30. package/dist/esm/base-entity.d.ts.map +1 -1
  31. package/dist/esm/base-entity.js +3 -0
  32. package/dist/esm/base-entity.js.map +1 -1
  33. package/dist/esm/change-tracker.d.ts +1 -3
  34. package/dist/esm/change-tracker.d.ts.map +1 -1
  35. package/dist/esm/change-tracker.js +24 -24
  36. package/dist/esm/change-tracker.js.map +1 -1
  37. package/dist/esm/entity-schema-registry.d.ts.map +1 -1
  38. package/dist/esm/entity-schema-registry.js +12 -10
  39. package/dist/esm/entity-schema-registry.js.map +1 -1
  40. package/dist/esm/exceptions.d.ts.map +1 -1
  41. package/dist/esm/exceptions.js +0 -25
  42. package/dist/esm/exceptions.js.map +1 -1
  43. package/dist/esm/id.d.ts +17 -10
  44. package/dist/esm/id.d.ts.map +1 -1
  45. package/dist/esm/id.js +15 -3
  46. package/dist/esm/id.js.map +1 -1
  47. package/dist/esm/paginated-result.d.ts +4 -12
  48. package/dist/esm/paginated-result.d.ts.map +1 -1
  49. package/dist/esm/paginated-result.js +4 -1
  50. package/dist/esm/paginated-result.js.map +1 -1
  51. package/dist/esm/types/domain.d.ts +3 -4
  52. package/dist/esm/types/domain.d.ts.map +1 -1
  53. package/dist/esm/types/utils.d.ts +8 -7
  54. package/dist/esm/types/utils.d.ts.map +1 -1
  55. package/dist/esm/value-object.d.ts +7 -54
  56. package/dist/esm/value-object.d.ts.map +1 -1
  57. package/dist/esm/value-object.js +12 -75
  58. package/dist/esm/value-object.js.map +1 -1
  59. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  60. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  61. package/dist/tsconfig.types.tsbuildinfo +1 -1
  62. package/dist/types/base-entity.d.ts.map +1 -1
  63. package/dist/types/change-tracker.d.ts +1 -3
  64. package/dist/types/change-tracker.d.ts.map +1 -1
  65. package/dist/types/entity-schema-registry.d.ts.map +1 -1
  66. package/dist/types/exceptions.d.ts.map +1 -1
  67. package/dist/types/id.d.ts +17 -10
  68. package/dist/types/id.d.ts.map +1 -1
  69. package/dist/types/paginated-result.d.ts +4 -12
  70. package/dist/types/paginated-result.d.ts.map +1 -1
  71. package/dist/types/types/domain.d.ts +3 -4
  72. package/dist/types/types/domain.d.ts.map +1 -1
  73. package/dist/types/types/utils.d.ts +8 -7
  74. package/dist/types/types/utils.d.ts.map +1 -1
  75. package/dist/types/value-object.d.ts +7 -54
  76. package/dist/types/value-object.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/cjs/domain-event-bus.d.ts +0 -56
  79. package/dist/cjs/domain-event-bus.d.ts.map +0 -1
  80. package/dist/cjs/domain-event-bus.js +0 -108
  81. package/dist/cjs/domain-event-bus.js.map +0 -1
  82. package/dist/esm/domain-event-bus.d.ts +0 -56
  83. package/dist/esm/domain-event-bus.d.ts.map +0 -1
  84. package/dist/esm/domain-event-bus.js +0 -104
  85. package/dist/esm/domain-event-bus.js.map +0 -1
  86. package/dist/types/domain-event-bus.d.ts +0 -56
  87. package/dist/types/domain-event-bus.d.ts.map +0 -1
@@ -1,38 +1,16 @@
1
1
  import { ValidationError } from "./validation-error.js";
2
2
  import { IDomainEvent } from ".";
3
- import { VOHooks, EntityValidation } from "./types/index.js";
4
- /**
5
- * Identity key type for a Value Object. Can be a single key or an array of keys (composite key).
6
- */
7
- export type IdentityKeyDefinition<T> = (keyof T)[] | keyof T;
8
- export declare abstract class ValueObject<T> {
9
- protected readonly props: T;
3
+ import { VOHooks, EntityValidation, Primitive } from "./types/index.js";
4
+ export declare abstract class ValueObject<T extends Primitive> {
5
+ readonly value: T;
10
6
  private validationConfig;
11
7
  private domainHooks?;
12
8
  private domainSchema?;
13
9
  private domainEvents;
14
10
  protected static validation?: EntityValidation<any>;
15
11
  protected static hooks?: VOHooks<any, any>;
16
- /**
17
- * Identity key for identification in collections.
18
- * Used by ChangeTracker to track changes in arrays of Value Objects.
19
- *
20
- * @example
21
- * ```typescript
22
- * // Simple key
23
- * class TagReference extends ValueObject<{ tagId: string }> {
24
- * static readonly identityKey = 'tagId';
25
- * }
26
- *
27
- * // Composite key
28
- * class Like extends ValueObject<{ postId: string; userId: string }> {
29
- * static readonly identityKey = ['postId', 'userId'];
30
- * }
31
- * ```
32
- */
33
- protected static identityKey?: IdentityKeyDefinition<any>;
34
- constructor(props: T);
35
- private validateProps;
12
+ constructor(value: T);
13
+ private validateValue;
36
14
  private extractPathKey;
37
15
  /**
38
16
  * Returns true if the value object has validation errors (when throwOnError is false).
@@ -46,30 +24,6 @@ export declare abstract class ValueObject<T> {
46
24
  * Compare this ValueObject with another for equality based on their properties.
47
25
  */
48
26
  equals(other: ValueObject<T>): boolean;
49
- /**
50
- * Returns the identity key for this Value Object.
51
- * Used for identification in collections when identityKey is set.
52
- *
53
- * @returns String with the identity key or null if not defined
54
- *
55
- * @example
56
- * ```typescript
57
- * const like = new Like({ postId: 'p1', userId: 'u1' });
58
- * like.getIdentityKey(); // 'p1:u1'
59
- *
60
- * const tag = new TagReference({ tagId: 'tag-123' });
61
- * tag.getIdentityKey(); // 'tag-123'
62
- * ```
63
- */
64
- getIdentityKey(): string | null;
65
- /**
66
- * Returns true if this Value Object has an identity key defined.
67
- */
68
- hasIdentityKey(): boolean;
69
- /**
70
- * Returns the identity key definition (if any).
71
- */
72
- static getIdentityKeyDefinition<P>(): IdentityKeyDefinition<P> | undefined;
73
27
  /**
74
28
  * Adds a domain event to this value object.
75
29
  */
@@ -86,11 +40,10 @@ export declare abstract class ValueObject<T> {
86
40
  * Returns true if the value object has uncommitted events.
87
41
  */
88
42
  hasUncommittedEvents(): boolean;
89
- toJSON(): T;
90
43
  /**
91
- * Creates a new ValueObject with updated properties.
44
+ * Creates a new ValueObject with updated value.
92
45
  * ValueObjects are immutable, so this returns a new instance.
93
46
  */
94
- protected clone(updates: Partial<T>): this;
47
+ protected clone(value: T): this;
95
48
  }
96
49
  //# sourceMappingURL=value-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../src/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,OAAO,EAGP,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAW1B;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AAE7D,8BAAsB,WAAW,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAE9C,KAAK,EAAE,CAAC;IAyCpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAKtC;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAiB/B;;OAEG;IACH,cAAc,IAAI,OAAO;IAOzB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1E;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B,MAAM,IAAI,CAAC;IAIX;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;CAI3C"}
1
+ {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../src/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,OAAO,EAGP,gBAAgB,EAChB,SAAS,EACV,MAAM,kBAAkB,CAAC;AAW1B,8BAAsB,WAAW,CAAC,CAAC,SAAS,SAAS;IACnD,SAAgB,KAAK,EAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE/B,KAAK,EAAE,CAAC;IAmCpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAKtC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAIhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@woltz/rich-domain",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Rich Domain Library with Standard Schema validation support",
5
5
  "homepage": "https://woltz.mintlify.app",
6
6
  "main": "./dist/cjs/index.js",
@@ -1,56 +0,0 @@
1
- import { IDomainEvent, DomainEventHandler, IDomainEventHandler } from ".";
2
- type EventConstructor<T extends IDomainEvent = IDomainEvent> = new (...args: any[]) => T;
3
- /**
4
- * Domain Event Bus - Singleton pattern for event pub/sub
5
- */
6
- export declare class DomainEventBus {
7
- private static instance;
8
- private handlers;
9
- private wildcardHandlers;
10
- private constructor();
11
- /**
12
- * Get the singleton instance
13
- */
14
- static getInstance(): DomainEventBus;
15
- /**
16
- * Subscribe to a specific event type
17
- */
18
- subscribe<T extends IDomainEvent>(props: {
19
- event: EventConstructor<T> | string;
20
- handler: DomainEventHandler<T> | IDomainEventHandler<T>;
21
- }): void;
22
- /**
23
- * Subscribe to all events (wildcard)
24
- */
25
- subscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
26
- /**
27
- * Unsubscribe from a specific event type
28
- */
29
- unsubscribe<T extends IDomainEvent>(eventType: EventConstructor<T> | string, handler: DomainEventHandler<T> | IDomainEventHandler<T>): void;
30
- /**
31
- * Unsubscribe from all events
32
- */
33
- unsubscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
34
- /**
35
- * Publish a single event
36
- */
37
- publish<T extends IDomainEvent>(event: T): Promise<void>;
38
- /**
39
- * Publish multiple events
40
- */
41
- publishAll(events: IDomainEvent[]): Promise<void>;
42
- /**
43
- * Clear all handlers (useful for testing)
44
- */
45
- clearAllHandlers(): void;
46
- /**
47
- * Get count of handlers for an event type
48
- */
49
- getHandlerCount(eventType: EventConstructor | string): number;
50
- /**
51
- * Execute a handler (function or class)
52
- */
53
- private executeHandler;
54
- }
55
- export {};
56
- //# sourceMappingURL=domain-event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-event-bus.d.ts","sourceRoot":"","sources":["../../src/domain-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAE1E,KAAK,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,KAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,CAAC,CAAC;AAEP;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAGF;IACd,OAAO,CAAC,gBAAgB,CAEV;IAEd,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE;QACvC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACzD,GAAG,IAAI;IAWR;;OAEG;IACH,YAAY,CACV,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,YAAY,EAChC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,EACvC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACtD,IAAI;IAaP;;OAEG;IACH,cAAc,CACZ,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAKxB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAM7D;;OAEG;YACW,cAAc;CAe7B"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DomainEventBus = void 0;
4
- /**
5
- * Domain Event Bus - Singleton pattern for event pub/sub
6
- */
7
- class DomainEventBus {
8
- static instance;
9
- handlers = new Map();
10
- wildcardHandlers = new Set();
11
- constructor() { }
12
- /**
13
- * Get the singleton instance
14
- */
15
- static getInstance() {
16
- if (!DomainEventBus.instance) {
17
- DomainEventBus.instance = new DomainEventBus();
18
- }
19
- return DomainEventBus.instance;
20
- }
21
- /**
22
- * Subscribe to a specific event type
23
- */
24
- subscribe(props) {
25
- const { event, handler } = props;
26
- const eventName = typeof event === "string" ? event : event.name;
27
- if (!this.handlers.has(eventName)) {
28
- this.handlers.set(eventName, new Set());
29
- }
30
- this.handlers.get(eventName).add(handler);
31
- }
32
- /**
33
- * Subscribe to all events (wildcard)
34
- */
35
- subscribeAll(handler) {
36
- this.wildcardHandlers.add(handler);
37
- }
38
- /**
39
- * Unsubscribe from a specific event type
40
- */
41
- unsubscribe(eventType, handler) {
42
- const eventName = typeof eventType === "string" ? eventType : eventType.name;
43
- const handlers = this.handlers.get(eventName);
44
- if (handlers) {
45
- handlers.delete(handler);
46
- if (handlers.size === 0) {
47
- this.handlers.delete(eventName);
48
- }
49
- }
50
- }
51
- /**
52
- * Unsubscribe from all events
53
- */
54
- unsubscribeAll(handler) {
55
- this.wildcardHandlers.delete(handler);
56
- }
57
- /**
58
- * Publish a single event
59
- */
60
- async publish(event) {
61
- const eventName = event.eventName;
62
- const handlers = this.handlers.get(eventName) || new Set();
63
- // Execute specific handlers
64
- const specificPromises = Array.from(handlers).map((handler) => this.executeHandler(handler, event));
65
- // Execute wildcard handlers
66
- const wildcardPromises = Array.from(this.wildcardHandlers).map((handler) => this.executeHandler(handler, event));
67
- await Promise.all([...specificPromises, ...wildcardPromises]);
68
- }
69
- /**
70
- * Publish multiple events
71
- */
72
- async publishAll(events) {
73
- await Promise.all(events.map((event) => this.publish(event)));
74
- }
75
- /**
76
- * Clear all handlers (useful for testing)
77
- */
78
- clearAllHandlers() {
79
- this.handlers.clear();
80
- this.wildcardHandlers.clear();
81
- }
82
- /**
83
- * Get count of handlers for an event type
84
- */
85
- getHandlerCount(eventType) {
86
- const eventName = typeof eventType === "string" ? eventType : eventType.name;
87
- return this.handlers.get(eventName)?.size || 0;
88
- }
89
- /**
90
- * Execute a handler (function or class)
91
- */
92
- async executeHandler(handler, event) {
93
- try {
94
- if (typeof handler === "function") {
95
- await handler(event);
96
- }
97
- else {
98
- await handler.handle(event);
99
- }
100
- }
101
- catch (error) {
102
- console.error(`Error handling event ${event.eventName}:`, error);
103
- // Don't throw - we don't want one handler failure to break others
104
- }
105
- }
106
- }
107
- exports.DomainEventBus = DomainEventBus;
108
- //# sourceMappingURL=domain-event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-event-bus.js","sourceRoot":"","sources":["../../src/domain-event-bus.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { IDomainEvent, DomainEventHandler, IDomainEventHandler } from ".";
2
- type EventConstructor<T extends IDomainEvent = IDomainEvent> = new (...args: any[]) => T;
3
- /**
4
- * Domain Event Bus - Singleton pattern for event pub/sub
5
- */
6
- export declare class DomainEventBus {
7
- private static instance;
8
- private handlers;
9
- private wildcardHandlers;
10
- private constructor();
11
- /**
12
- * Get the singleton instance
13
- */
14
- static getInstance(): DomainEventBus;
15
- /**
16
- * Subscribe to a specific event type
17
- */
18
- subscribe<T extends IDomainEvent>(props: {
19
- event: EventConstructor<T> | string;
20
- handler: DomainEventHandler<T> | IDomainEventHandler<T>;
21
- }): void;
22
- /**
23
- * Subscribe to all events (wildcard)
24
- */
25
- subscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
26
- /**
27
- * Unsubscribe from a specific event type
28
- */
29
- unsubscribe<T extends IDomainEvent>(eventType: EventConstructor<T> | string, handler: DomainEventHandler<T> | IDomainEventHandler<T>): void;
30
- /**
31
- * Unsubscribe from all events
32
- */
33
- unsubscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
34
- /**
35
- * Publish a single event
36
- */
37
- publish<T extends IDomainEvent>(event: T): Promise<void>;
38
- /**
39
- * Publish multiple events
40
- */
41
- publishAll(events: IDomainEvent[]): Promise<void>;
42
- /**
43
- * Clear all handlers (useful for testing)
44
- */
45
- clearAllHandlers(): void;
46
- /**
47
- * Get count of handlers for an event type
48
- */
49
- getHandlerCount(eventType: EventConstructor | string): number;
50
- /**
51
- * Execute a handler (function or class)
52
- */
53
- private executeHandler;
54
- }
55
- export {};
56
- //# sourceMappingURL=domain-event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-event-bus.d.ts","sourceRoot":"","sources":["../../src/domain-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAE1E,KAAK,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,KAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,CAAC,CAAC;AAEP;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAGF;IACd,OAAO,CAAC,gBAAgB,CAEV;IAEd,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE;QACvC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACzD,GAAG,IAAI;IAWR;;OAEG;IACH,YAAY,CACV,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,YAAY,EAChC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,EACvC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACtD,IAAI;IAaP;;OAEG;IACH,cAAc,CACZ,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAKxB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAM7D;;OAEG;YACW,cAAc;CAe7B"}
@@ -1,104 +0,0 @@
1
- /**
2
- * Domain Event Bus - Singleton pattern for event pub/sub
3
- */
4
- export class DomainEventBus {
5
- static instance;
6
- handlers = new Map();
7
- wildcardHandlers = new Set();
8
- constructor() { }
9
- /**
10
- * Get the singleton instance
11
- */
12
- static getInstance() {
13
- if (!DomainEventBus.instance) {
14
- DomainEventBus.instance = new DomainEventBus();
15
- }
16
- return DomainEventBus.instance;
17
- }
18
- /**
19
- * Subscribe to a specific event type
20
- */
21
- subscribe(props) {
22
- const { event, handler } = props;
23
- const eventName = typeof event === "string" ? event : event.name;
24
- if (!this.handlers.has(eventName)) {
25
- this.handlers.set(eventName, new Set());
26
- }
27
- this.handlers.get(eventName).add(handler);
28
- }
29
- /**
30
- * Subscribe to all events (wildcard)
31
- */
32
- subscribeAll(handler) {
33
- this.wildcardHandlers.add(handler);
34
- }
35
- /**
36
- * Unsubscribe from a specific event type
37
- */
38
- unsubscribe(eventType, handler) {
39
- const eventName = typeof eventType === "string" ? eventType : eventType.name;
40
- const handlers = this.handlers.get(eventName);
41
- if (handlers) {
42
- handlers.delete(handler);
43
- if (handlers.size === 0) {
44
- this.handlers.delete(eventName);
45
- }
46
- }
47
- }
48
- /**
49
- * Unsubscribe from all events
50
- */
51
- unsubscribeAll(handler) {
52
- this.wildcardHandlers.delete(handler);
53
- }
54
- /**
55
- * Publish a single event
56
- */
57
- async publish(event) {
58
- const eventName = event.eventName;
59
- const handlers = this.handlers.get(eventName) || new Set();
60
- // Execute specific handlers
61
- const specificPromises = Array.from(handlers).map((handler) => this.executeHandler(handler, event));
62
- // Execute wildcard handlers
63
- const wildcardPromises = Array.from(this.wildcardHandlers).map((handler) => this.executeHandler(handler, event));
64
- await Promise.all([...specificPromises, ...wildcardPromises]);
65
- }
66
- /**
67
- * Publish multiple events
68
- */
69
- async publishAll(events) {
70
- await Promise.all(events.map((event) => this.publish(event)));
71
- }
72
- /**
73
- * Clear all handlers (useful for testing)
74
- */
75
- clearAllHandlers() {
76
- this.handlers.clear();
77
- this.wildcardHandlers.clear();
78
- }
79
- /**
80
- * Get count of handlers for an event type
81
- */
82
- getHandlerCount(eventType) {
83
- const eventName = typeof eventType === "string" ? eventType : eventType.name;
84
- return this.handlers.get(eventName)?.size || 0;
85
- }
86
- /**
87
- * Execute a handler (function or class)
88
- */
89
- async executeHandler(handler, event) {
90
- try {
91
- if (typeof handler === "function") {
92
- await handler(event);
93
- }
94
- else {
95
- await handler.handle(event);
96
- }
97
- }
98
- catch (error) {
99
- console.error(`Error handling event ${event.eventName}:`, error);
100
- // Don't throw - we don't want one handler failure to break others
101
- }
102
- }
103
- }
104
- //# sourceMappingURL=domain-event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-event-bus.js","sourceRoot":"","sources":["../../src/domain-event-bus.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { IDomainEvent, DomainEventHandler, IDomainEventHandler } from ".";
2
- type EventConstructor<T extends IDomainEvent = IDomainEvent> = new (...args: any[]) => T;
3
- /**
4
- * Domain Event Bus - Singleton pattern for event pub/sub
5
- */
6
- export declare class DomainEventBus {
7
- private static instance;
8
- private handlers;
9
- private wildcardHandlers;
10
- private constructor();
11
- /**
12
- * Get the singleton instance
13
- */
14
- static getInstance(): DomainEventBus;
15
- /**
16
- * Subscribe to a specific event type
17
- */
18
- subscribe<T extends IDomainEvent>(props: {
19
- event: EventConstructor<T> | string;
20
- handler: DomainEventHandler<T> | IDomainEventHandler<T>;
21
- }): void;
22
- /**
23
- * Subscribe to all events (wildcard)
24
- */
25
- subscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
26
- /**
27
- * Unsubscribe from a specific event type
28
- */
29
- unsubscribe<T extends IDomainEvent>(eventType: EventConstructor<T> | string, handler: DomainEventHandler<T> | IDomainEventHandler<T>): void;
30
- /**
31
- * Unsubscribe from all events
32
- */
33
- unsubscribeAll(handler: DomainEventHandler<IDomainEvent> | IDomainEventHandler<IDomainEvent>): void;
34
- /**
35
- * Publish a single event
36
- */
37
- publish<T extends IDomainEvent>(event: T): Promise<void>;
38
- /**
39
- * Publish multiple events
40
- */
41
- publishAll(events: IDomainEvent[]): Promise<void>;
42
- /**
43
- * Clear all handlers (useful for testing)
44
- */
45
- clearAllHandlers(): void;
46
- /**
47
- * Get count of handlers for an event type
48
- */
49
- getHandlerCount(eventType: EventConstructor | string): number;
50
- /**
51
- * Execute a handler (function or class)
52
- */
53
- private executeHandler;
54
- }
55
- export {};
56
- //# sourceMappingURL=domain-event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domain-event-bus.d.ts","sourceRoot":"","sources":["../../src/domain-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAE1E,KAAK,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,KAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,CAAC,CAAC;AAEP;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAGF;IACd,OAAO,CAAC,gBAAgB,CAEV;IAEd,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE;QACvC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACzD,GAAG,IAAI;IAWR;;OAEG;IACH,YAAY,CACV,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,YAAY,EAChC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,EACvC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACtD,IAAI;IAaP;;OAEG;IACH,cAAc,CACZ,OAAO,EACH,kBAAkB,CAAC,YAAY,CAAC,GAChC,mBAAmB,CAAC,YAAY,CAAC,GACpC,IAAI;IAIP;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAKxB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM;IAM7D;;OAEG;YACW,cAAc;CAe7B"}