node-cqrs 1.0.0-rc.2 → 1.0.0-rc.4

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # [1.0.0-rc.4](https://github.com/snatalenko/node-cqrs/compare/v1.0.0-rc.3...v1.0.0-rc.4) (2024-10-02)
2
+
3
+
4
+
5
+ # [1.0.0-rc.3](https://github.com/snatalenko/node-cqrs/compare/v1.0.0-rc.2...v1.0.0-rc.3) (2024-09-23)
6
+
7
+
8
+
1
9
  # [1.0.0-rc.2](https://github.com/snatalenko/node-cqrs/compare/v1.0.0-rc.1...v1.0.0-rc.2) (2024-08-03)
2
10
 
3
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractProjection.js","sourceRoot":"","sources":["../src/AbstractProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractProjection.js","sourceRoot":"","sources":["../src/AbstractProjection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommandBus = void 0;
4
+ const InMemoryMessageBus_1 = require("./infrastructure/InMemoryMessageBus");
4
5
  class CommandBus {
5
6
  #logger;
6
7
  #bus;
@@ -8,9 +9,7 @@ class CommandBus {
8
9
  * Creates an instance of CommandBus.
9
10
  */
10
11
  constructor({ messageBus, logger }) {
11
- if (!messageBus)
12
- throw new TypeError('messageBus argument required');
13
- this.#bus = messageBus;
12
+ this.#bus = messageBus ?? new InMemoryMessageBus_1.InMemoryMessageBus();
14
13
  this.#logger = logger && 'child' in logger ?
15
14
  logger.child({ service: 'CommandBus' }) :
16
15
  logger;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandBus.js","sourceRoot":"","sources":["../src/CommandBus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandBus.js","sourceRoot":"","sources":["../src/CommandBus.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,10 @@ const AggregateCommandHandler_1 = require("./AggregateCommandHandler");
6
6
  const CommandBus_1 = require("./CommandBus");
7
7
  const EventStore_1 = require("./EventStore");
8
8
  const SagaEventHandler_1 = require("./SagaEventHandler");
9
- const InMemoryMessageBus_1 = require("./infrastructure/InMemoryMessageBus");
10
9
  const utils_1 = require("./utils");
11
10
  class CqrsContainerBuilder extends di0_1.ContainerBuilder {
12
11
  constructor(options) {
13
12
  super(options);
14
- super.register(InMemoryMessageBus_1.InMemoryMessageBus).as('messageBus');
15
13
  super.register(EventStore_1.EventStore).as('eventStore');
16
14
  super.register(CommandBus_1.CommandBus).as('commandBus');
17
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,15 @@ const isIEventStorage = (storage) => storage
10
10
  && typeof storage.getAggregateEvents === 'function'
11
11
  && typeof storage.getSagaEvents === 'function';
12
12
  const isIObservable = (obj) => obj
13
+ && 'on' in obj
13
14
  && typeof obj.on === 'function'
15
+ && 'off' in obj
14
16
  && typeof obj.off === 'function';
15
17
  const isIMessageBus = (bus) => bus
16
18
  && isIObservable(bus)
19
+ && 'send' in bus
17
20
  && typeof bus.send === 'function'
21
+ && 'publish' in bus
18
22
  && typeof bus.publish === 'function';
19
23
  const SNAPSHOT_EVENT_TYPE = 'snapshot';
20
24
  class EventStore {
@@ -25,6 +29,7 @@ class EventStore {
25
29
  #messageBus;
26
30
  #snapshotStorage;
27
31
  #sagaStarters = [];
32
+ #defaultEventEmitter;
28
33
  /** Whether storage supports aggregate snapshots */
29
34
  get snapshotsSupported() {
30
35
  return Boolean(this.#snapshotStorage);
@@ -34,8 +39,13 @@ class EventStore {
34
39
  throw new TypeError('storage argument required');
35
40
  if (!isIEventStorage(storage))
36
41
  throw new TypeError('storage does not implement IEventStorage interface');
37
- if (!isIMessageBus(messageBus))
42
+ if (messageBus && !isIMessageBus(messageBus))
38
43
  throw new TypeError('messageBus does not implement IMessageBus interface');
44
+ if (messageBus && isIObservable(storage))
45
+ throw new TypeError('both storage and messageBus implement IObservable interface, it is not yet supported');
46
+ const defaultEventEmitter = isIObservable(storage) ? storage : messageBus;
47
+ if (!defaultEventEmitter)
48
+ throw new TypeError('storage must implement IObservable if messageBus is not injected');
39
49
  this.#publishAsync = eventStoreConfig?.publishAsync ?? true;
40
50
  this.#validator = eventValidator;
41
51
  this.#logger = logger && 'child' in logger ?
@@ -44,6 +54,7 @@ class EventStore {
44
54
  this.#storage = storage;
45
55
  this.#snapshotStorage = snapshotStorage;
46
56
  this.#messageBus = messageBus;
57
+ this.#defaultEventEmitter = defaultEventEmitter;
47
58
  }
48
59
  /** Retrieve new ID from the storage */
49
60
  async getNewId() {
@@ -118,7 +129,7 @@ class EventStore {
118
129
  // after events are saved to the persistent storage,
119
130
  // publish them to the event bus (i.e. RabbitMq)
120
131
  if (this.#messageBus)
121
- await this.publish(eventStreamWithoutSnapshots);
132
+ await this.#publish(eventStreamWithoutSnapshots);
122
133
  return eventStreamWithoutSnapshots;
123
134
  }
124
135
  /** Generate and attach sagaId to events that start new sagas */
@@ -160,10 +171,7 @@ class EventStore {
160
171
  ]);
161
172
  return eventsWithoutSnapshot;
162
173
  }
163
- /**
164
- * After events are
165
- */
166
- async publish(events) {
174
+ async #publish(events) {
167
175
  if (this.#publishAsync) {
168
176
  this.#logger?.debug(`publishing ${Event.describeMultiple(events)} asynchronously...`);
169
177
  setImmediate(() => this.#publishEvents(events));
@@ -174,8 +182,10 @@ class EventStore {
174
182
  }
175
183
  }
176
184
  async #publishEvents(events) {
185
+ if (!this.#messageBus)
186
+ return;
177
187
  try {
178
- await Promise.all(events.map(event => this.#messageBus.publish(event)));
188
+ await Promise.all(events.map(event => this.#messageBus?.publish(event)));
179
189
  this.#logger?.debug(`${Event.describeMultiple(events)} published`);
180
190
  }
181
191
  catch (error) {
@@ -193,22 +203,26 @@ class EventStore {
193
203
  throw new TypeError('handler argument must be a Function');
194
204
  if (arguments.length !== 2)
195
205
  throw new TypeError(`2 arguments are expected, but ${arguments.length} received`);
196
- this.#messageBus.on(messageType, handler);
206
+ if (isIObservable(this.#storage))
207
+ this.#storage.on(messageType, handler);
208
+ this.#messageBus?.on(messageType, handler);
197
209
  }
198
210
  /** Remove previously installed listener */
199
211
  off(messageType, handler) {
200
- this.#messageBus.off(messageType, handler);
212
+ if (isIObservable(this.#storage))
213
+ this.#storage.off(messageType, handler);
214
+ this.#messageBus?.off(messageType, handler);
201
215
  }
202
216
  /** Get or create a named queue, which delivers events to a single handler only */
203
217
  queue(name) {
204
- if (typeof this.#messageBus.queue !== 'function')
218
+ if (!this.#defaultEventEmitter.queue)
205
219
  throw new Error('Named queues are not supported by the underlying message bus');
206
- return this.#messageBus.queue(name);
220
+ return this.#defaultEventEmitter.queue(name);
207
221
  }
208
222
  /** Creates one-time subscription for one or multiple events that match a filter */
209
223
  once(messageTypes, handler, filter) {
210
224
  const subscribeTo = Array.isArray(messageTypes) ? messageTypes : [messageTypes];
211
- return (0, utils_1.setupOneTimeEmitterSubscription)(this.#messageBus, subscribeTo, filter, handler, this.#logger);
225
+ return (0, utils_1.setupOneTimeEmitterSubscription)(this.#defaultEventEmitter, subscribeTo, filter, handler, this.#logger);
212
226
  }
213
227
  }
214
228
  exports.EventStore = EventStore;
@@ -1 +1 @@
1
- {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../src/EventStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../src/EventStore.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ exports.nextCycle = void 0;
4
4
  /**
5
5
  * @returns Promise that resolves on next event loop cycle
6
6
  */
7
- const nextCycle = () => new Promise(rs => setTimeout(rs, 0));
7
+ const nextCycle = () => new Promise(rs => setImmediate(rs));
8
8
  exports.nextCycle = nextCycle;
9
9
  //# sourceMappingURL=nextCycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nextCycle.js","sourceRoot":"","sources":["../../../src/infrastructure/utils/nextCycle.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,SAAS,GAAG,GAAkB,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAAtE,QAAA,SAAS,aAA6D"}
1
+ {"version":3,"file":"nextCycle.js","sourceRoot":"","sources":["../../../src/infrastructure/utils/nextCycle.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,SAAS,GAAG,GAAkB,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAArE,QAAA,SAAS,aAA4D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-cqrs",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.4",
4
4
  "description": "Basic ES6 backbone for CQRS app development",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,13 +19,14 @@ import {
19
19
  subscribe
20
20
  } from './utils';
21
21
 
22
- const isProjectionView = (view: IProjectionView) =>
22
+ const isProjectionView = (view: IProjectionView): view is IProjectionView =>
23
23
  'ready' in view &&
24
24
  'lock' in view &&
25
25
  'unlock' in view &&
26
26
  'once' in view;
27
27
 
28
- const asProjectionView = (view: any): IProjectionView => (isProjectionView(view) ? view : undefined);
28
+ const asProjectionView = (view: any): IProjectionView | undefined =>
29
+ (isProjectionView(view) ? view : undefined);
29
30
 
30
31
  /**
31
32
  * Base class for Projection definition
package/src/CommandBus.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { InMemoryMessageBus } from "./infrastructure/InMemoryMessageBus";
1
2
  import {
2
3
  ICommand,
3
4
  ICommandBus,
@@ -17,13 +18,11 @@ export class CommandBus implements ICommandBus {
17
18
  * Creates an instance of CommandBus.
18
19
  */
19
20
  constructor({ messageBus, logger }: {
20
- messageBus: IMessageBus,
21
+ messageBus?: IMessageBus,
21
22
  logger?: ILogger | IExtendableLogger
22
23
  }) {
23
- if (!messageBus)
24
- throw new TypeError('messageBus argument required');
24
+ this.#bus = messageBus ?? new InMemoryMessageBus();
25
25
 
26
- this.#bus = messageBus;
27
26
  this.#logger = logger && 'child' in logger ?
28
27
  logger.child({ service: 'CommandBus' }) :
29
28
  logger;
@@ -34,7 +34,6 @@ export class CqrsContainerBuilder extends ContainerBuilder {
34
34
  singletones: object
35
35
  }) {
36
36
  super(options);
37
- super.register(InMemoryMessageBus).as('messageBus');
38
37
  super.register(EventStore).as('eventStore');
39
38
  super.register(CommandBus).as('commandBus');
40
39
  }
package/src/EventStore.ts CHANGED
@@ -16,20 +16,27 @@ import {
16
16
  import { getClassName, setupOneTimeEmitterSubscription } from "./utils";
17
17
  import * as Event from './Event';
18
18
 
19
- const isIEventStorage = (storage: IEventStorage) => storage
19
+ const isIEventStorage = (storage: IEventStorage): storage is IEventStorage =>
20
+ storage
20
21
  && typeof storage.getNewId === 'function'
21
22
  && typeof storage.commitEvents === 'function'
22
23
  && typeof storage.getEvents === 'function'
23
24
  && typeof storage.getAggregateEvents === 'function'
24
25
  && typeof storage.getSagaEvents === 'function';
25
26
 
26
- const isIObservable = (obj: IObservable | any) => obj
27
+ const isIObservable = (obj: IObservable | any): obj is IObservable =>
28
+ obj
29
+ && 'on' in obj
27
30
  && typeof obj.on === 'function'
31
+ && 'off' in obj
28
32
  && typeof obj.off === 'function';
29
33
 
30
- const isIMessageBus = (bus: IMessageBus | any): boolean => bus
34
+ const isIMessageBus = (bus: IMessageBus | any): bus is IMessageBus =>
35
+ bus
31
36
  && isIObservable(bus)
37
+ && 'send' in bus
32
38
  && typeof bus.send === 'function'
39
+ && 'publish' in bus
33
40
  && typeof bus.publish === 'function';
34
41
 
35
42
  const SNAPSHOT_EVENT_TYPE = 'snapshot';
@@ -40,9 +47,10 @@ export class EventStore implements IEventStore {
40
47
  #validator: (event: IEvent<any>) => void;
41
48
  #logger?: ILogger;
42
49
  #storage: IEventStorage;
43
- #messageBus: IMessageBus;
50
+ #messageBus?: IMessageBus;
44
51
  #snapshotStorage: IAggregateSnapshotStorage | undefined;
45
52
  #sagaStarters: string[] = [];
53
+ #defaultEventEmitter: IObservable;
46
54
 
47
55
  /** Whether storage supports aggregate snapshots */
48
56
  get snapshotsSupported(): boolean {
@@ -58,7 +66,7 @@ export class EventStore implements IEventStore {
58
66
  logger
59
67
  }: {
60
68
  storage: IEventStorage,
61
- messageBus: IMessageBus,
69
+ messageBus?: IMessageBus,
62
70
  snapshotStorage?: IAggregateSnapshotStorage,
63
71
  eventValidator?: IMessageHandler,
64
72
  eventStoreConfig?: {
@@ -70,8 +78,14 @@ export class EventStore implements IEventStore {
70
78
  throw new TypeError('storage argument required');
71
79
  if (!isIEventStorage(storage))
72
80
  throw new TypeError('storage does not implement IEventStorage interface');
73
- if (!isIMessageBus(messageBus))
81
+ if (messageBus && !isIMessageBus(messageBus))
74
82
  throw new TypeError('messageBus does not implement IMessageBus interface');
83
+ if (messageBus && isIObservable(storage))
84
+ throw new TypeError('both storage and messageBus implement IObservable interface, it is not yet supported');
85
+
86
+ const defaultEventEmitter = isIObservable(storage) ? storage : messageBus;
87
+ if (!defaultEventEmitter)
88
+ throw new TypeError('storage must implement IObservable if messageBus is not injected');
75
89
 
76
90
  this.#publishAsync = eventStoreConfig?.publishAsync ?? true;
77
91
  this.#validator = eventValidator;
@@ -81,6 +95,7 @@ export class EventStore implements IEventStore {
81
95
  this.#storage = storage;
82
96
  this.#snapshotStorage = snapshotStorage;
83
97
  this.#messageBus = messageBus;
98
+ this.#defaultEventEmitter = defaultEventEmitter;
84
99
  }
85
100
 
86
101
  /** Retrieve new ID from the storage */
@@ -178,7 +193,7 @@ export class EventStore implements IEventStore {
178
193
  // after events are saved to the persistent storage,
179
194
  // publish them to the event bus (i.e. RabbitMq)
180
195
  if (this.#messageBus)
181
- await this.publish(eventStreamWithoutSnapshots);
196
+ await this.#publish(eventStreamWithoutSnapshots);
182
197
 
183
198
  return eventStreamWithoutSnapshots;
184
199
  }
@@ -231,10 +246,7 @@ export class EventStore implements IEventStore {
231
246
  return eventsWithoutSnapshot;
232
247
  }
233
248
 
234
- /**
235
- * After events are
236
- */
237
- async publish(events: IEventSet) {
249
+ async #publish(events: IEventSet) {
238
250
  if (this.#publishAsync) {
239
251
  this.#logger?.debug(`publishing ${Event.describeMultiple(events)} asynchronously...`);
240
252
  setImmediate(() => this.#publishEvents(events));
@@ -246,9 +258,12 @@ export class EventStore implements IEventStore {
246
258
  }
247
259
 
248
260
  async #publishEvents(events: IEventSet) {
261
+ if (!this.#messageBus)
262
+ return;
263
+
249
264
  try {
250
265
  await Promise.all(events.map(event =>
251
- this.#messageBus.publish(event)));
266
+ this.#messageBus?.publish(event)));
252
267
 
253
268
  this.#logger?.debug(`${Event.describeMultiple(events)} published`);
254
269
  }
@@ -269,26 +284,32 @@ export class EventStore implements IEventStore {
269
284
  if (arguments.length !== 2)
270
285
  throw new TypeError(`2 arguments are expected, but ${arguments.length} received`);
271
286
 
272
- this.#messageBus.on(messageType, handler);
287
+ if (isIObservable(this.#storage))
288
+ this.#storage.on(messageType, handler);
289
+
290
+ this.#messageBus?.on(messageType, handler);
273
291
  }
274
292
 
275
293
  /** Remove previously installed listener */
276
294
  off(messageType: string, handler: IMessageHandler) {
277
- this.#messageBus.off(messageType, handler);
295
+ if (isIObservable(this.#storage))
296
+ this.#storage.off(messageType, handler);
297
+
298
+ this.#messageBus?.off(messageType, handler);
278
299
  }
279
300
 
280
301
  /** Get or create a named queue, which delivers events to a single handler only */
281
302
  queue(name: string): IObservable {
282
- if (typeof this.#messageBus.queue !== 'function')
303
+ if (!this.#defaultEventEmitter.queue)
283
304
  throw new Error('Named queues are not supported by the underlying message bus');
284
305
 
285
- return this.#messageBus.queue(name);
306
+ return this.#defaultEventEmitter.queue(name);
286
307
  }
287
308
 
288
309
  /** Creates one-time subscription for one or multiple events that match a filter */
289
310
  once(messageTypes: string | string[], handler: IMessageHandler, filter: (e: IEvent) => boolean): Promise<IEvent> {
290
311
  const subscribeTo = Array.isArray(messageTypes) ? messageTypes : [messageTypes];
291
312
 
292
- return setupOneTimeEmitterSubscription(this.#messageBus, subscribeTo, filter, handler, this.#logger);
313
+ return setupOneTimeEmitterSubscription(this.#defaultEventEmitter, subscribeTo, filter, handler, this.#logger);
293
314
  }
294
315
  }
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * @returns Promise that resolves on next event loop cycle
3
3
  */
4
- export const nextCycle = (): Promise<void> => new Promise(rs => setTimeout(rs, 0));
4
+ export const nextCycle = (): Promise<void> => new Promise(rs => setImmediate(rs));