ddd-node 8.0.0 → 8.1.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.
@@ -20,8 +20,8 @@ export declare class Aggregate<Props extends object> extends AggregateBase<Props
20
20
  static newAggregate<T extends AnyAggregate>(this: AggregateClassWithTypedConstructor<T>, props: PropsOf<T>, id?: Id): T;
21
21
  get version(): number;
22
22
  get events(): AnyEvent[];
23
- recordEvent<E extends AnyEvent>(event: E): void;
24
- recordEvent<E extends AnyEvent>(eventClass: EventClass<E>, props: PropsOf<E>): void;
23
+ protected recordEvent<E extends AnyEvent>(event: E): void;
24
+ protected recordEvent<E extends AnyEvent>(eventClass: EventClass<E>, props: PropsOf<E>): void;
25
25
  clearEvents(): void;
26
26
  }
27
27
  export interface SnapshotMetadata extends AggregateBaseMetadata {
@@ -0,0 +1,4 @@
1
+ import { AnyModel } from "./model";
2
+ export declare class ModelError extends Error {
3
+ constructor(model: AnyModel, message: string);
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelError = void 0;
4
+ class ModelError extends Error {
5
+ constructor(model, message) {
6
+ super(`[${model.type}] ${message}`);
7
+ }
8
+ }
9
+ exports.ModelError = ModelError;
@@ -1,6 +1,7 @@
1
1
  export * from "./aggregate";
2
2
  export * from "./command";
3
3
  export * from "./entity";
4
+ export * from "./error";
4
5
  export * from "./event";
5
6
  export * from "./id";
6
7
  export * from "./message";
@@ -8,4 +9,5 @@ export * from "./metadata";
8
9
  export * from "./model";
9
10
  export * from "./model-type";
10
11
  export * from "./registry";
12
+ export * from "./repository";
11
13
  export * from "./value-object";
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./aggregate"), exports);
18
18
  __exportStar(require("./command"), exports);
19
19
  __exportStar(require("./entity"), exports);
20
+ __exportStar(require("./error"), exports);
20
21
  __exportStar(require("./event"), exports);
21
22
  __exportStar(require("./id"), exports);
22
23
  __exportStar(require("./message"), exports);
@@ -24,4 +25,5 @@ __exportStar(require("./metadata"), exports);
24
25
  __exportStar(require("./model"), exports);
25
26
  __exportStar(require("./model-type"), exports);
26
27
  __exportStar(require("./registry"), exports);
28
+ __exportStar(require("./repository"), exports);
27
29
  __exportStar(require("./value-object"), exports);
@@ -3,6 +3,7 @@ export declare class Model<Props extends object> {
3
3
  protected _props: Props;
4
4
  constructor(props?: Props);
5
5
  static isModel(obj: object): obj is AnyModel;
6
+ static type(): `${string}#${string}`;
6
7
  protected initializeProps(props: Props): void;
7
8
  validate(): void;
8
9
  get type(): `${string}#${string}`;
@@ -14,6 +14,9 @@ class Model {
14
14
  static isModel(obj) {
15
15
  return obj instanceof Model;
16
16
  }
17
+ static type() {
18
+ return (0, metadata_1.getModelType)(this.prototype);
19
+ }
17
20
  initializeProps(props) {
18
21
  if (!this._props) {
19
22
  this._props = props;
@@ -0,0 +1,6 @@
1
+ import { AnyAggregate, AnyAggregateES } from "./aggregate";
2
+ import { Id } from "./id";
3
+ export interface IRepository<T extends AnyAggregate | AnyAggregateES> {
4
+ findById(id: Id): Promise<T | null>;
5
+ save(instance: T): Promise<any>;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddd-node",
3
- "version": "8.0.0",
3
+ "version": "8.1.0",
4
4
  "description": "Domain Driven Design base for NodeJs",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {