@rkrkdldkd/example-event-sourcing 0.0.6 → 0.0.8

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.
@@ -8,8 +8,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.AppModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
- const event_sourcing_module_1 = require("src/event-sourcing.module");
12
- const temp_repository_1 = require("src/model/temp.repository");
11
+ const event_sourcing_module_1 = require("./event-sourcing.module");
12
+ const temp_repository_1 = require("./model/temp.repository");
13
13
  const app_controller_1 = require("./app.controller");
14
14
  const app_service_1 = require("./app.service");
15
15
  let AppModule = class AppModule {
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qEAAgE;AAChE,+DAAwD;AACxD,qDAAiD;AACjD,+CAA2C;AAepC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAbrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,2CAAmB,CAAC,YAAY,CAAC;gBAC/B,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;aACrB,CAAC;SACH;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,6BAAW,CAAC;KACrC,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAAgE;AAChE,6DAAwD;AACxD,qDAAiD;AACjD,+CAA2C;AAepC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAbrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,2CAAmB,CAAC,YAAY,CAAC;gBAC/B,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;aACrB,CAAC;SACH;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,EAAE,6BAAW,CAAC;KACrC,CAAC;GACW,SAAS,CAAG"}
@@ -1,13 +1,13 @@
1
- import { EventMap, EventStream } from '@ocoda/event-sourcing';
2
1
  import { IEvent } from 'src/interface/event/event.interface';
2
+ import { AggregateRoot } from './aggregate.root';
3
3
  import { DbClient } from './db/db.client';
4
4
  import { EventEnvelope } from './event-envelope';
5
5
  export declare class AbstractRepository {
6
6
  private readonly dbClient;
7
- private readonly eventMap;
8
- constructor(dbClient: DbClient, eventMap: EventMap);
7
+ constructor(dbClient: DbClient);
9
8
  private readonly columns;
10
9
  getById(): Promise<import("pg").QueryResult<any>>;
11
10
  getEnvelope(aggregate: string, version: number): Promise<EventEnvelope>;
12
- appendEvents(aggregate: string, stream: EventStream, aggregateVersion: number, events: IEvent[] | EventEnvelope[]): Promise<EventEnvelope[]>;
11
+ appendEvents(aggregate: AggregateRoot, events: IEvent[] | EventEnvelope[]): Promise<EventEnvelope[]>;
12
+ save(aggregate: AggregateRoot): Promise<void>;
13
13
  }
@@ -16,14 +16,13 @@ exports.AbstractRepository = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const event_sourcing_1 = require("@ocoda/event-sourcing");
18
18
  const time_uuid_1 = require("@smiledragon-corp/time-uuid");
19
+ const get_event_metadata_1 = require("../helper/metadata/get-event-metadata");
19
20
  const db_client_1 = require("./db/db.client");
20
21
  const event_envelope_1 = require("./event-envelope");
21
22
  let AbstractRepository = class AbstractRepository {
22
23
  dbClient;
23
- eventMap;
24
- constructor(dbClient, eventMap) {
24
+ constructor(dbClient) {
25
25
  this.dbClient = dbClient;
26
- this.eventMap = eventMap;
27
26
  }
28
27
  columns = [
29
28
  'stream_id',
@@ -56,12 +55,14 @@ let AbstractRepository = class AbstractRepository {
56
55
  causationId: entity.causation_id ?? undefined,
57
56
  });
58
57
  }
59
- async appendEvents(aggregate, stream, aggregateVersion, events) {
58
+ async appendEvents(aggregate, events) {
60
59
  try {
61
- const { rows: currentVersionRows } = await this.dbClient.query(`SELECT MAX(version) as version FROM "${aggregate}" WHERE stream_id = $1`, [stream.streamId]);
60
+ const streamId = `${aggregate.name}-${aggregate.getRawId()}`;
61
+ const aggregateVersion = aggregate.version;
62
+ const { rows: currentVersionRows } = await this.dbClient.query(`SELECT MAX(version) as version FROM "${aggregate.name}_event" WHERE stream_id = $1`, [streamId]);
62
63
  const currentVersion = currentVersionRows[0]?.version || 0;
63
64
  if (aggregateVersion <= currentVersion) {
64
- throw new event_sourcing_1.EventStoreVersionConflictException(stream, aggregateVersion, currentVersion);
65
+ throw new Error('Version conflict');
65
66
  }
66
67
  let version = aggregateVersion - events.length + 1;
67
68
  const envelopes = [];
@@ -70,10 +71,11 @@ let AbstractRepository = class AbstractRepository {
70
71
  envelopes.push(event);
71
72
  continue;
72
73
  }
73
- const name = this.eventMap.getName(event);
74
- const payload = this.eventMap.serializeEvent(event);
74
+ const eventMetadata = (0, get_event_metadata_1.getEventMetadata)(event);
75
+ const name = eventMetadata.name;
76
+ const payload = JSON.stringify(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,15 +96,18 @@ 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([
104
110
  __param(0, (0, common_1.Inject)(db_client_1.DbClient)),
105
- __metadata("design:paramtypes", [db_client_1.DbClient,
106
- event_sourcing_1.EventMap])
111
+ __metadata("design:paramtypes", [db_client_1.DbClient])
107
112
  ], AbstractRepository);
108
113
  //# sourceMappingURL=abstract.repository.js.map
@@ -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[];
@@ -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,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,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"}
@@ -7,8 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ARepository = void 0;
10
- const aggregate_event_repository_decorator_1 = require("src/decorator/aggregate-event-repository.decorator");
11
- const abstract_repository_1 = require("src/model/abstract.repository");
10
+ const aggregate_event_repository_decorator_1 = require("../decorator/aggregate-event-repository.decorator");
11
+ const abstract_repository_1 = require("./abstract.repository");
12
12
  let ARepository = class ARepository extends abstract_repository_1.AbstractRepository {
13
13
  };
14
14
  exports.ARepository = ARepository;
@@ -1 +1 @@
1
- {"version":3,"file":"temp.repository.js","sourceRoot":"","sources":["../../src/model/temp.repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6GAA8F;AAC9F,uEAAmE;AAG5D,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wCAAkB;CAAG,CAAA;AAAzC,kCAAW;sBAAX,WAAW;IADvB,IAAA,+DAAwB,EAAC,OAAO,CAAC;GACrB,WAAW,CAA8B"}
1
+ {"version":3,"file":"temp.repository.js","sourceRoot":"","sources":["../../src/model/temp.repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4GAA8F;AAC9F,+DAAmE;AAG5D,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wCAAkB;CAAG,CAAA;AAAzC,kCAAW;sBAAX,WAAW;IADvB,IAAA,+DAAwB,EAAC,OAAO,CAAC;GACrB,WAAW,CAA8B"}