@ddd-ts/event-sourcing-inmemory 0.0.3-25 → 0.0.3-27

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,11 +1,13 @@
1
- import { Serializer } from "@ddd-ts/model";
2
1
  import { Snapshotter, EsAggregate } from "@ddd-ts/event-sourcing";
2
+ import { Model } from "@ddd-ts/model";
3
+ import { ISerializer } from "@ddd-ts/serialization";
3
4
  import { InMemoryDatabase } from "@ddd-ts/store-inmemory";
4
- export declare class InMemorySnapshotter<S extends Serializer<EsAggregate<any, any>>> extends Snapshotter<S extends Serializer<infer A> ? A : never> {
5
+ export declare class InMemorySnapshotter<S extends ISerializer<EsAggregate<any, any>>> extends Snapshotter<S extends ISerializer<infer A> ? A : never> {
5
6
  private readonly db;
6
7
  readonly serializer: S;
7
8
  constructor(db: InMemoryDatabase, serializer: S);
8
- load(id: ReturnType<S["getIdFromModel"]>): Promise<any>;
9
- save(aggregate: S extends Serializer<infer A> ? A : never): Promise<void>;
9
+ private getIdFromModel;
10
+ load(id: S extends ISerializer<infer T extends Model> ? T['id'] : never): Promise<any>;
11
+ save(aggregate: S extends ISerializer<infer A extends Model> ? A : never): Promise<void>;
10
12
  }
11
13
  //# sourceMappingURL=in-memory.snapshotter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.snapshotter.d.ts","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC3C,SAAQ,WAAW,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,EAAE;aACH,UAAU,EAAE,CAAC;gBADZ,EAAE,EAAE,gBAAgB,EACrB,UAAU,EAAE,CAAC;IAKzB,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUvD,IAAI,CACR,SAAS,EAAE,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GACnD,OAAO,CAAC,IAAI,CAAC;CAQjB"}
1
+ {"version":3,"file":"in-memory.snapshotter.d.ts","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,mBAAmB,CAC9B,CAAC,SAAS,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC5C,SAAQ,WAAW,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAE7D,OAAO,CAAC,QAAQ,CAAC,EAAE;aACH,UAAU,EAAE,CAAC;gBADZ,EAAE,EAAE,gBAAgB,EACrB,UAAU,EAAE,CAAC;IAK/B,OAAO,CAAC,cAAc;IAShB,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;IAUtF,IAAI,CACR,SAAS,EAAE,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,GAClE,OAAO,CAAC,IAAI,CAAC;CAQjB"}
@@ -10,6 +10,14 @@ class InMemorySnapshotter extends event_sourcing_1.Snapshotter {
10
10
  this.db = db;
11
11
  this.serializer = serializer;
12
12
  }
13
+ getIdFromModel(model) {
14
+ if (Object.getOwnPropertyNames(model.id).includes('serialize')) {
15
+ if ('serialize' in model.id) {
16
+ return model.id.serialize();
17
+ }
18
+ }
19
+ return model.id.toString();
20
+ }
13
21
  async load(id) {
14
22
  const snapshot = await this.db.loadLatestSnapshot(id.toString());
15
23
  if (!snapshot) {
@@ -18,7 +26,7 @@ class InMemorySnapshotter extends event_sourcing_1.Snapshotter {
18
26
  return this.serializer.deserialize(snapshot.serialized);
19
27
  }
20
28
  async save(aggregate) {
21
- const id = this.serializer.getIdFromModel(aggregate);
29
+ const id = this.getIdFromModel(aggregate);
22
30
  this.db.save("snapshots", id.toString(), {
23
31
  id: id.toString(),
24
32
  revision: Number(aggregate.acknowledgedRevision),
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.snapshotter.js","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":";;;AACA,2DAAkE;AAGlE,MAAa,mBAEX,SAAQ,4BAAsD;IAE3C;IACD;IAFlB,YACmB,EAAoB,EACrB,UAAa;QAE7B,KAAK,EAAE,CAAC;QAHS,OAAE,GAAF,EAAE,CAAkB;QACrB,eAAU,GAAV,UAAU,CAAG;IAG/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAmC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAoD;QAEpD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;YACjB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;YAChD,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,kDA8BC"}
1
+ {"version":3,"file":"in-memory.snapshotter.js","sourceRoot":"","sources":["../src/in-memory.snapshotter.ts"],"names":[],"mappings":";;;AAAA,2DAAkE;AAKlE,MAAa,mBAEX,SAAQ,4BAAuD;IAE5C;IACD;IAFlB,YACmB,EAAoB,EACrB,UAAa;QAE7B,KAAK,EAAE,CAAC;QAHS,OAAE,GAAF,EAAE,CAAkB;QACrB,eAAU,GAAV,UAAU,CAAG;IAG/B,CAAC;IAEO,cAAc,CAAC,KAA+D;QACpF,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC9D,IAAI,WAAW,IAAI,KAAK,CAAC,EAAE,EAAE;gBAC3B,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAA;aAC5B;SACF;QACD,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAkE;QAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAmE;QAEnE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;YACjB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;YAChD,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;CACF;AAvCD,kDAuCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ddd-ts/event-sourcing-inmemory",
3
- "version": "0.0.3-25",
3
+ "version": "0.0.3-27",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -11,6 +11,7 @@
11
11
  "peerDependencies": {
12
12
  "@ddd-ts/event-sourcing": "*",
13
13
  "@ddd-ts/model": "*",
14
+ "@ddd-ts/serialization": "*",
14
15
  "@ddd-ts/store-inmemory": "*"
15
16
  },
16
17
  "devDependencies": {