@rkrkdldkd/example-event-sourcing 0.0.6 → 0.0.7

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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AggregateEventRepository = void 0;
4
- const constants_1 = require("../common/constants");
4
+ const constants_1 = require("src/common/constants");
5
5
  const AggregateEventRepository = (name2) => {
6
6
  return (target) => {
7
7
  console.log(name2);
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-event-repository.decorator.js","sourceRoot":"","sources":["../../src/decorator/aggregate-event-repository.decorator.ts"],"names":[],"mappings":";;;AAAA,mDAA2E;AAIpE,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAkB,EAAE;IACxE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAyC,CAAC;QAE3D,OAAO,CAAC,cAAc,CAAC,+CAAmC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC"}
1
+ {"version":3,"file":"aggregate-event-repository.decorator.js","sourceRoot":"","sources":["../../src/decorator/aggregate-event-repository.decorator.ts"],"names":[],"mappings":";;;AAAA,oDAA2E;AAIpE,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAkB,EAAE;IACxE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAyC,CAAC;QAE3D,OAAO,CAAC,cAAc,CAAC,+CAAmC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Aggregate = void 0;
4
4
  require("reflect-metadata");
5
- const constants_1 = require("../common/constants");
5
+ const constants_1 = require("src/common/constants");
6
6
  const Aggregate = (options) => {
7
7
  return (target) => {
8
8
  const { name } = target;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.decorator.js","sourceRoot":"","sources":["../../src/decorator/aggregate.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,mDAA0D;AAanD,MAAM,SAAS,GAAG,CAAC,OAA2B,EAAkB,EAAE;IACvE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAyC,CAAC;QAC3D,MAAM,QAAQ,GAAsB;YAClC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;YAC9B,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,UAAU,gDAAgD,CAC9F,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,8BAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
1
+ {"version":3,"file":"aggregate.decorator.js","sourceRoot":"","sources":["../../src/decorator/aggregate.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,oDAA0D;AAanD,MAAM,SAAS,GAAG,CAAC,OAA2B,EAAkB,EAAE;IACvE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAyC,CAAC;QAC3D,MAAM,QAAQ,GAAsB;YAClC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;YAC9B,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,UAAU,gDAAgD,CAC9F,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,8BAAkB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAggregateMetadata = void 0;
4
- const constants_1 = require("../../common/constants");
5
- const assume_metadata_type_1 = require("./assume-metadata-type");
4
+ const constants_1 = require("src/common/constants");
5
+ const assume_metadata_type_1 = require("src/helper/metadata/assume-metadata-type");
6
6
  const getAggregateMetadata = (cls) => {
7
7
  return (0, assume_metadata_type_1.ensureMetadata)(Reflect.getMetadata(constants_1.AGGREGATE_METADATA, cls));
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-aggregate-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-aggregate-metadata.ts"],"names":[],"mappings":";;;AACA,sDAA0D;AAC1D,iEAA0E;AAInE,MAAM,oBAAoB,GAAG,CAClC,GAAwB,EACO,EAAE;IACjC,OAAO,IAAA,qCAAc,EAAC,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
1
+ {"version":3,"file":"get-aggregate-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-aggregate-metadata.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAC1D,mFAA0E;AAInE,MAAM,oBAAoB,GAAG,CAClC,GAAwB,EACO,EAAE;IACjC,OAAO,IAAA,qCAAc,EAAC,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEventHandlerMetadata = void 0;
4
- const constants_1 = require("../../common/constants");
5
- const assume_metadata_type_1 = require("./assume-metadata-type");
6
- const get_event_metadata_1 = require("./get-event-metadata");
4
+ const constants_1 = require("src/common/constants");
5
+ const assume_metadata_type_1 = require("src/helper/metadata/assume-metadata-type");
6
+ const get_event_metadata_1 = require("src/helper/metadata/get-event-metadata");
7
7
  const getEventHandlerMetadata = (aggregate, eventClass) => {
8
8
  const { name } = (0, get_event_metadata_1.getEventMetadata)(eventClass);
9
9
  return (0, assume_metadata_type_1.ensureMetadata)(Reflect.getMetadata(`${constants_1.EVENT_HANDLER_METADATA}-${name}`, aggregate));
@@ -1 +1 @@
1
- {"version":3,"file":"get-event-handler-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-event-handler-metadata.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAC9D,iEAA0E;AAC1E,6DAA0E;AAMnE,MAAM,uBAAuB,GAAG,CACrC,SAAwB,EACxB,UAAoC,EACF,EAAE;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAgB,EAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,IAAA,qCAAc,EACnB,OAAO,CAAC,WAAW,CAAC,GAAG,kCAAsB,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC"}
1
+ {"version":3,"file":"get-event-handler-metadata.js","sourceRoot":"","sources":["../../../src/helper/metadata/get-event-handler-metadata.ts"],"names":[],"mappings":";;;AAAA,oDAA8D;AAC9D,mFAA0E;AAC1E,+EAA0E;AAMnE,MAAM,uBAAuB,GAAG,CACrC,SAAwB,EACxB,UAAoC,EACF,EAAE;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAgB,EAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,IAAA,qCAAc,EACnB,OAAO,CAAC,WAAW,CAAC,GAAG,kCAAsB,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC"}
@@ -1,5 +1,6 @@
1
- import { EventMap, EventStream } from '@ocoda/event-sourcing';
1
+ import { EventMap } from '@ocoda/event-sourcing';
2
2
  import { IEvent } from 'src/interface/event/event.interface';
3
+ import { AggregateRoot } from './aggregate.root';
3
4
  import { DbClient } from './db/db.client';
4
5
  import { EventEnvelope } from './event-envelope';
5
6
  export declare class AbstractRepository {
@@ -9,5 +10,6 @@ export declare class AbstractRepository {
9
10
  private readonly columns;
10
11
  getById(): Promise<import("pg").QueryResult<any>>;
11
12
  getEnvelope(aggregate: string, version: number): Promise<EventEnvelope>;
12
- appendEvents(aggregate: string, stream: EventStream, aggregateVersion: number, events: IEvent[] | EventEnvelope[]): Promise<EventEnvelope[]>;
13
+ appendEvents(aggregate: AggregateRoot, events: IEvent[] | EventEnvelope[]): Promise<EventEnvelope[]>;
14
+ save(aggregate: AggregateRoot): Promise<void>;
13
15
  }
@@ -56,12 +56,14 @@ let AbstractRepository = class AbstractRepository {
56
56
  causationId: entity.causation_id ?? undefined,
57
57
  });
58
58
  }
59
- async appendEvents(aggregate, stream, aggregateVersion, events) {
59
+ async appendEvents(aggregate, events) {
60
60
  try {
61
- const { rows: currentVersionRows } = await this.dbClient.query(`SELECT MAX(version) as version FROM "${aggregate}" WHERE stream_id = $1`, [stream.streamId]);
61
+ const streamId = `${aggregate.name}-${aggregate.getRawId()}`;
62
+ const aggregateVersion = aggregate.version;
63
+ const { rows: currentVersionRows } = await this.dbClient.query(`SELECT MAX(version) as version FROM "${aggregate.name}_event" WHERE stream_id = $1`, [streamId]);
62
64
  const currentVersion = currentVersionRows[0]?.version || 0;
63
65
  if (aggregateVersion <= currentVersion) {
64
- throw new event_sourcing_1.EventStoreVersionConflictException(stream, aggregateVersion, currentVersion);
66
+ throw new Error('Version conflict');
65
67
  }
66
68
  let version = aggregateVersion - events.length + 1;
67
69
  const envelopes = [];
@@ -73,7 +75,7 @@ let AbstractRepository = class AbstractRepository {
73
75
  const name = this.eventMap.getName(event);
74
76
  const payload = this.eventMap.serializeEvent(event);
75
77
  const envelope = event_envelope_1.EventEnvelope.create(name, payload, {
76
- aggregateId: stream.aggregateId,
78
+ aggregateId: aggregate.getRawId(),
77
79
  eventId: new time_uuid_1.TimeUUID(),
78
80
  version: version++,
79
81
  });
@@ -84,9 +86,9 @@ let AbstractRepository = class AbstractRepository {
84
86
  let paramIndex = 1;
85
87
  for (const envelope of envelopes) {
86
88
  values.push(`(${this.columns.map(() => `$${paramIndex++}`).join(', ')})`);
87
- params.push(stream.streamId, envelope.metadata.version, envelope.event, envelope.payload, envelope.metadata.eventId.timestamp, envelope.metadata.eventId.toString(), envelope.metadata.aggregateId, envelope.metadata.occurredOn.toISOString(), envelope.metadata.correlationId ?? null, envelope.metadata.causationId ?? null);
89
+ params.push(streamId, envelope.metadata.version, envelope.event, envelope.payload, envelope.metadata.eventId.timestamp, envelope.metadata.eventId.toString(), envelope.metadata.aggregateId, envelope.metadata.occurredOn.toISOString(), envelope.metadata.correlationId ?? null, envelope.metadata.causationId ?? null);
88
90
  }
89
- await this.dbClient.query(`INSERT INTO "${aggregate}" (${this.columns.join(', ')}) VALUES ${values.join(',')}`, params);
91
+ await this.dbClient.query(`INSERT INTO "${aggregate.name}_event" (${this.columns.join(', ')}) VALUES ${values.join(',')}`, params);
90
92
  return envelopes;
91
93
  }
92
94
  catch (error) {
@@ -94,10 +96,14 @@ let AbstractRepository = class AbstractRepository {
94
96
  case event_sourcing_1.EventStoreVersionConflictException:
95
97
  throw error;
96
98
  default:
97
- throw new event_sourcing_1.EventStorePersistenceException(aggregate, error);
99
+ throw new Error('Failed to append events to event store');
98
100
  }
99
101
  }
100
102
  }
103
+ async save(aggregate) {
104
+ const events = aggregate.commit();
105
+ await this.appendEvents(aggregate, events);
106
+ }
101
107
  };
102
108
  exports.AbstractRepository = AbstractRepository;
103
109
  exports.AbstractRepository = AbstractRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../src/model/abstract.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../src/model/abstract.repository.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { TimeUUID } from '@smiledragon-corp/time-uuid';
1
2
  import { IEvent } from 'src/interface/event/event.interface';
2
3
  declare const VERSION: unique symbol;
3
4
  declare const EVENTS: unique symbol;
@@ -6,6 +7,9 @@ export declare abstract class AggregateRoot {
6
7
  private readonly [EVENTS];
7
8
  set version(version: number);
8
9
  get version(): number;
10
+ get name(): string;
11
+ abstract getId(): TimeUUID;
12
+ getRawId(): string;
9
13
  applyEvent<T extends IEvent = IEvent>(event: T, fromHistory?: boolean): void;
10
14
  private getEventHandler;
11
15
  commit(): IEvent[];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AggregateRoot = void 0;
4
- const get_event_handler_metadata_1 = require("../helper/metadata/get-event-handler-metadata");
4
+ const get_event_handler_metadata_1 = require("src/helper/metadata/get-event-handler-metadata");
5
5
  const VERSION = Symbol();
6
6
  const EVENTS = Symbol();
7
7
  class AggregateRoot {
@@ -13,6 +13,12 @@ class AggregateRoot {
13
13
  get version() {
14
14
  return this[VERSION];
15
15
  }
16
+ get name() {
17
+ return this.constructor.name;
18
+ }
19
+ getRawId() {
20
+ return this.getId().toString();
21
+ }
16
22
  applyEvent(event, fromHistory = false) {
17
23
  this[VERSION]++;
18
24
  if (!fromHistory) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.root.js","sourceRoot":"","sources":["../../src/model/aggregate.root.ts"],"names":[],"mappings":";;;AAAA,8FAAyF;AAKzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAExB,MAAsB,aAAa;IACzB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACL,CAAC,MAAM,CAAC,GAAa,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,UAAU,CAA4B,KAAQ,EAAE,WAAW,GAAG,KAAK;QACjE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAIhB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAClC,KAAK,CAAC,WAAkC,CACzC,CAAC;QAEF,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,eAAe,CACrB,UAA+B;QAE/B,MAAM,oBAAoB,GAAG,IAAA,oDAAuB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEvE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,CAAC,IAAI,mBAAmB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CACjG,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAqC;QACzD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxDD,sCAwDC"}
1
+ {"version":3,"file":"aggregate.root.js","sourceRoot":"","sources":["../../src/model/aggregate.root.ts"],"names":[],"mappings":";;;AACA,+FAAyF;AAKzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAExB,MAAsB,aAAa;IACzB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACL,CAAC,MAAM,CAAC,GAAa,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAID,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,UAAU,CAA4B,KAAQ,EAAE,WAAW,GAAG,KAAK;QACjE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAIhB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAClC,KAAK,CAAC,WAAkC,CACzC,CAAC;QAEF,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,eAAe,CACrB,UAA+B;QAE/B,MAAM,oBAAoB,GAAG,IAAA,oDAAuB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAEvE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,CAAC,IAAI,mBAAmB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CACjG,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAqC;QACzD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlED,sCAkEC"}