ddd-node 21.0.2 → 22.0.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.
- package/dist/core/aggregate/aggregate-base/aggregate.builder.d.ts +1 -2
- package/dist/core/aggregate/aggregate-base/aggregate.builder.js +4 -7
- package/dist/core/aggregate/aggregate-base/aggregate.d.ts +2 -2
- package/dist/core/aggregate/aggregate-base/aggregate.js +6 -1
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-metadata.d.ts +9 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +4 -3
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +10 -12
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +8 -10
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +31 -18
- package/dist/core/aggregate/event-sourced-aggregate/index.d.ts +0 -1
- package/dist/core/aggregate/event-sourced-aggregate/index.js +0 -1
- package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +8 -0
- package/dist/core/aggregate/event-sourced-aggregate/snapshot.js +2 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.builder.js +4 -4
- package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +2 -2
- package/dist/core/aggregate/state-aggregate/state-aggregate.js +1 -2
- package/dist/core/entity/entity.builder.d.ts +2 -2
- package/dist/core/entity/entity.builder.js +2 -2
- package/dist/core/entity/entity.d.ts +3 -5
- package/dist/core/entity/entity.js +3 -3
- package/dist/core/enum/enum.d.ts +3 -5
- package/dist/core/enum/enum.js +10 -17
- package/dist/core/enum/index.d.ts +0 -1
- package/dist/core/enum/index.js +0 -1
- package/dist/core/id/id.d.ts +6 -4
- package/dist/core/id/id.js +17 -8
- package/dist/core/id/index.d.ts +0 -2
- package/dist/core/id/index.js +0 -2
- package/dist/core/identifiable-model/identifiable-model.builder.d.ts +9 -0
- package/dist/core/identifiable-model/identifiable-model.builder.js +23 -0
- package/dist/core/identifiable-model/identifiable-model.d.ts +13 -0
- package/dist/core/identifiable-model/identifiable-model.js +23 -0
- package/dist/core/identifiable-model/index.d.ts +2 -0
- package/dist/core/{id/services → identifiable-model}/index.js +2 -2
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js +3 -3
- package/dist/core/message/command/command-model.metadata.d.ts +6 -0
- package/dist/core/message/command/command-model.metadata.js +2 -0
- package/dist/core/message/command/command.builder.js +5 -5
- package/dist/core/message/command/command.d.ts +4 -9
- package/dist/core/message/command/command.js +11 -17
- package/dist/core/message/command/index.d.ts +1 -0
- package/dist/core/message/command/index.js +1 -0
- package/dist/core/message/event/event-model.metadata.d.ts +5 -0
- package/dist/core/message/event/event-model.metadata.js +2 -0
- package/dist/core/message/event/event.builder.d.ts +1 -1
- package/dist/core/message/event/event.builder.js +8 -8
- package/dist/core/message/event/event.d.ts +7 -12
- package/dist/core/message/event/event.js +16 -16
- package/dist/core/message/event/index.d.ts +1 -0
- package/dist/core/message/event/index.js +1 -0
- package/dist/core/message/message-base/message.builder.d.ts +5 -7
- package/dist/core/message/message-base/message.builder.js +15 -22
- package/dist/core/message/message-base/message.d.ts +5 -9
- package/dist/core/message/message-base/message.js +9 -6
- package/dist/core/value-object/value-object.builder.js +2 -2
- package/dist/core/value-object/value-object.d.ts +1 -1
- package/dist/decorators/aggregate-es/handle.js +1 -1
- package/dist/decorators/aggregate-es/when.js +1 -1
- package/dist/meta/index.d.ts +0 -1
- package/dist/meta/index.js +0 -1
- package/dist/model/core/index.d.ts +1 -0
- package/dist/model/core/index.js +1 -0
- package/dist/model/core/model-metadata.d.ts +13 -0
- package/dist/model/core/model-metadata.js +2 -0
- package/dist/model/core/model.builder.d.ts +1 -1
- package/dist/model/core/model.builder.js +1 -1
- package/dist/model/core/model.d.ts +12 -15
- package/dist/model/core/model.js +37 -32
- package/dist/model/domain.d.ts +4 -0
- package/dist/model/domain.js +10 -2
- package/dist/model/meta/model-domain.d.ts +0 -1
- package/dist/model/meta/model-domain.js +3 -3
- package/dist/model/model-registry.js +4 -4
- package/dist/package.json +1 -1
- package/package.json +1 -2
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.model-metadata.d.ts +0 -9
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.model-metadata.js +0 -22
- package/dist/core/enum/enum.builder.d.ts +0 -9
- package/dist/core/enum/enum.builder.js +0 -20
- package/dist/core/id/interface.d.ts +0 -4
- package/dist/core/id/services/index.d.ts +0 -2
- package/dist/core/id/services/snowflake.d.ts +0 -8
- package/dist/core/id/services/snowflake.js +0 -14
- package/dist/core/id/services/uuid4.d.ts +0 -5
- package/dist/core/id/services/uuid4.js +0 -18
- package/dist/core/model-with-id/index.d.ts +0 -2
- package/dist/core/model-with-id/index.js +0 -18
- package/dist/core/model-with-id/model-with-id.builder.d.ts +0 -11
- package/dist/core/model-with-id/model-with-id.builder.js +0 -22
- package/dist/core/model-with-id/model-with-id.d.ts +0 -9
- package/dist/core/model-with-id/model-with-id.js +0 -17
- package/dist/meta/id.metadata.d.ts +0 -4
- package/dist/meta/id.metadata.js +0 -16
- /package/dist/core/{id/interface.js → aggregate/event-sourced-aggregate/event-sourced-aggregate-model-metadata.js} +0 -0
package/dist/core/index.js
CHANGED
|
@@ -14,12 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./value-object"), exports);
|
|
18
|
+
__exportStar(require("./enum"), exports);
|
|
17
19
|
__exportStar(require("./id"), exports);
|
|
18
|
-
__exportStar(require("./model
|
|
20
|
+
__exportStar(require("./identifiable-model"), exports);
|
|
19
21
|
__exportStar(require("./entity"), exports);
|
|
20
22
|
__exportStar(require("./aggregate"), exports);
|
|
21
23
|
__exportStar(require("./message"), exports);
|
|
22
|
-
__exportStar(require("./enum"), exports);
|
|
23
|
-
__exportStar(require("./value-object"), exports);
|
|
24
24
|
__exportStar(require("./repository"), exports);
|
|
25
25
|
__exportStar(require("./event-pubsub"), exports);
|
|
@@ -8,13 +8,13 @@ class CommandBuilder extends message_base_1.MessageBuilderBase {
|
|
|
8
8
|
this.commandClass = commandClass;
|
|
9
9
|
}
|
|
10
10
|
build() {
|
|
11
|
-
if (!this.
|
|
11
|
+
if (!this.props)
|
|
12
12
|
throw new Error();
|
|
13
13
|
return new this.commandClass({
|
|
14
|
-
id: this.
|
|
15
|
-
timestamp: this.
|
|
16
|
-
context: this.
|
|
17
|
-
}, this.
|
|
14
|
+
id: this.id,
|
|
15
|
+
timestamp: this.timestamp,
|
|
16
|
+
context: this.context,
|
|
17
|
+
}, this.props);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.CommandBuilder = CommandBuilder;
|
|
@@ -2,18 +2,13 @@ import { Class } from "type-fest";
|
|
|
2
2
|
import { Props, PropsOf } from "../../../model";
|
|
3
3
|
import { ClassStatic } from "../../../types";
|
|
4
4
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(commandClass: CommandClass);
|
|
8
|
-
get commandType(): string;
|
|
9
|
-
}
|
|
10
|
-
export interface CommandMetadata extends Omit<MessageMetadata, "messageType"> {
|
|
5
|
+
import { ICommandModelMetadata } from "./command-model.metadata";
|
|
6
|
+
export interface CommandMetadata extends MessageMetadata {
|
|
11
7
|
}
|
|
12
8
|
export declare class CommandBase<P extends Props> extends MessageBase<P> {
|
|
13
|
-
static
|
|
9
|
+
static commandType(): string;
|
|
14
10
|
constructor(metadata: CommandMetadata, props: P);
|
|
15
|
-
|
|
16
|
-
commandModelMetadata(): CommandModelMetadata;
|
|
11
|
+
modelMetadata(): ICommandModelMetadata<typeof this>;
|
|
17
12
|
}
|
|
18
13
|
export type AnyCommand = CommandBase<Props>;
|
|
19
14
|
export interface CommandClass<T extends AnyCommand = AnyCommand, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof CommandBase<PropsOf<T>>> {
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CommandBase =
|
|
3
|
+
exports.CommandBase = void 0;
|
|
4
4
|
const meta_1 = require("../../../meta");
|
|
5
5
|
const message_base_1 = require("../message-base");
|
|
6
|
-
class CommandModelMetadata {
|
|
7
|
-
constructor(commandClass) {
|
|
8
|
-
this.commandClass = commandClass;
|
|
9
|
-
}
|
|
10
|
-
get commandType() {
|
|
11
|
-
return (0, meta_1.getCommandType)(this.commandClass);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.CommandModelMetadata = CommandModelMetadata;
|
|
15
6
|
class CommandBase extends message_base_1.MessageBase {
|
|
16
|
-
|
|
17
|
-
|
|
7
|
+
static commandType() {
|
|
8
|
+
return (0, meta_1.getCommandType)(this);
|
|
18
9
|
}
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
constructor(metadata, props) {
|
|
11
|
+
super(metadata, props);
|
|
21
12
|
}
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
modelMetadata() {
|
|
14
|
+
const commandClass = this.constructor;
|
|
15
|
+
return {
|
|
16
|
+
...super.modelMetadata(),
|
|
17
|
+
commandType: commandClass.commandType(),
|
|
18
|
+
};
|
|
24
19
|
}
|
|
25
20
|
}
|
|
26
21
|
exports.CommandBase = CommandBase;
|
|
27
|
-
CommandBase.COMMAND_MESSAGE_TYPE = "command";
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./command-model.metadata"), exports);
|
|
17
18
|
__exportStar(require("./command"), exports);
|
|
18
19
|
__exportStar(require("./command.builder"), exports);
|
|
@@ -2,7 +2,7 @@ import { AnyEvent, EventClassWithTypedConstructor, EventSource } from "./event";
|
|
|
2
2
|
import { MessageBuilderBase } from "../message-base";
|
|
3
3
|
export declare class EventBuilder<T extends AnyEvent> extends MessageBuilderBase<T> {
|
|
4
4
|
private eventClass;
|
|
5
|
-
protected
|
|
5
|
+
protected source?: EventSource;
|
|
6
6
|
constructor(eventClass: EventClassWithTypedConstructor<T>);
|
|
7
7
|
withSource(source: EventSource): this;
|
|
8
8
|
build(): T;
|
|
@@ -8,20 +8,20 @@ class EventBuilder extends message_base_1.MessageBuilderBase {
|
|
|
8
8
|
this.eventClass = eventClass;
|
|
9
9
|
}
|
|
10
10
|
withSource(source) {
|
|
11
|
-
this.
|
|
11
|
+
this.source = source;
|
|
12
12
|
return this;
|
|
13
13
|
}
|
|
14
14
|
build() {
|
|
15
|
-
if (!this.
|
|
15
|
+
if (!this.source)
|
|
16
16
|
throw new Error("The event source must be set before build");
|
|
17
|
-
if (!this.
|
|
17
|
+
if (!this.props)
|
|
18
18
|
throw new Error("The props must be set before build");
|
|
19
19
|
return new this.eventClass({
|
|
20
|
-
id: this.
|
|
21
|
-
timestamp: this.
|
|
22
|
-
source: this.
|
|
23
|
-
context: this.
|
|
24
|
-
}, this.
|
|
20
|
+
id: this.id,
|
|
21
|
+
timestamp: this.timestamp,
|
|
22
|
+
source: this.source,
|
|
23
|
+
context: this.context,
|
|
24
|
+
}, this.props);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.EventBuilder = EventBuilder;
|
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import {
|
|
2
|
+
import { EventType } from "../../../meta";
|
|
3
|
+
import { Props, PropsOf } from "../../../model";
|
|
3
4
|
import { ClassStatic } from "../../../types";
|
|
4
5
|
import { Id } from "../../id";
|
|
5
6
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
6
|
-
|
|
7
|
-
private eventClass;
|
|
8
|
-
constructor(eventClass: EventClass);
|
|
9
|
-
get eventType(): string;
|
|
10
|
-
}
|
|
7
|
+
import { IEventModelMetadata } from "./event-model.metadata";
|
|
11
8
|
export type EventSource = Readonly<{
|
|
12
|
-
aggregateModelId: ModelId;
|
|
13
9
|
aggregateId: Id;
|
|
14
10
|
aggregateVersion: number;
|
|
15
11
|
}>;
|
|
16
|
-
export interface EventMetadata extends
|
|
12
|
+
export interface EventMetadata extends MessageMetadata {
|
|
17
13
|
source: EventSource;
|
|
18
14
|
}
|
|
19
15
|
export declare class EventBase<P extends Props> extends MessageBase<P> {
|
|
20
|
-
static readonly EVENT_MESSAGE_TYPE = "event";
|
|
21
16
|
private readonly _source;
|
|
22
17
|
constructor(metadata: EventMetadata, props: P);
|
|
23
|
-
static
|
|
24
|
-
|
|
18
|
+
static eventType(): EventType;
|
|
19
|
+
modelMetadata(): IEventModelMetadata<typeof this>;
|
|
20
|
+
metadata(): EventMetadata;
|
|
25
21
|
source(): Readonly<{
|
|
26
|
-
aggregateModelId: string;
|
|
27
22
|
aggregateId: Id;
|
|
28
23
|
aggregateVersion: number;
|
|
29
24
|
}>;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventBase =
|
|
3
|
+
exports.EventBase = void 0;
|
|
4
4
|
const meta_1 = require("../../../meta");
|
|
5
5
|
const message_base_1 = require("../message-base");
|
|
6
|
-
class EventModelMetadata {
|
|
7
|
-
constructor(eventClass) {
|
|
8
|
-
this.eventClass = eventClass;
|
|
9
|
-
}
|
|
10
|
-
get eventType() {
|
|
11
|
-
return (0, meta_1.getEventType)(this.eventClass);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.EventModelMetadata = EventModelMetadata;
|
|
15
6
|
class EventBase extends message_base_1.MessageBase {
|
|
16
7
|
constructor(metadata, props) {
|
|
17
|
-
super(
|
|
8
|
+
super(metadata, props);
|
|
18
9
|
this._source = metadata.source;
|
|
19
10
|
}
|
|
20
|
-
static
|
|
21
|
-
return
|
|
11
|
+
static eventType() {
|
|
12
|
+
return (0, meta_1.getEventType)(this);
|
|
13
|
+
}
|
|
14
|
+
modelMetadata() {
|
|
15
|
+
const eventClass = this.constructor;
|
|
16
|
+
return {
|
|
17
|
+
...super.modelMetadata(),
|
|
18
|
+
eventType: eventClass.eventType(),
|
|
19
|
+
};
|
|
22
20
|
}
|
|
23
|
-
|
|
24
|
-
return
|
|
21
|
+
metadata() {
|
|
22
|
+
return {
|
|
23
|
+
...super.metadata(),
|
|
24
|
+
source: this._source,
|
|
25
|
+
};
|
|
25
26
|
}
|
|
26
27
|
source() {
|
|
27
28
|
return this._source;
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
exports.EventBase = EventBase;
|
|
31
|
-
EventBase.EVENT_MESSAGE_TYPE = "event";
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./event"), exports);
|
|
18
|
+
__exportStar(require("./event-model.metadata"), exports);
|
|
18
19
|
__exportStar(require("./event.builder"), exports);
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IdentifiableModelBuilder } from "../../identifiable-model";
|
|
2
2
|
import { AnyMessage, MessageClassWithTypedConstructor, MessageContext } from "./message";
|
|
3
|
-
export declare abstract class MessageBuilderBase<T extends AnyMessage> extends
|
|
4
|
-
protected
|
|
5
|
-
protected
|
|
6
|
-
protected _timestamp?: number;
|
|
7
|
-
getTimestamp(): number;
|
|
8
|
-
withMessageType(messageType: string): this;
|
|
3
|
+
export declare abstract class MessageBuilderBase<T extends AnyMessage> extends IdentifiableModelBuilder<T> {
|
|
4
|
+
protected timestamp: number;
|
|
5
|
+
protected context?: MessageContext;
|
|
9
6
|
withContext(context: MessageContext): this;
|
|
10
7
|
withTimestamp(timestamp: number): this;
|
|
8
|
+
withTimestampNow(): this;
|
|
11
9
|
}
|
|
12
10
|
export declare class MessageBuilder<T extends AnyMessage> extends MessageBuilderBase<T> {
|
|
13
11
|
private messageClass;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.MessageBuilder = exports.MessageBuilderBase = void 0;
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
withMessageType(messageType) {
|
|
14
|
-
this._messageType = messageType;
|
|
15
|
-
return this;
|
|
4
|
+
const identifiable_model_1 = require("../../identifiable-model");
|
|
5
|
+
class MessageBuilderBase extends identifiable_model_1.IdentifiableModelBuilder {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.timestamp = Date.now();
|
|
16
9
|
}
|
|
17
10
|
withContext(context) {
|
|
18
|
-
this.
|
|
11
|
+
this.context = context;
|
|
19
12
|
return this;
|
|
20
13
|
}
|
|
21
14
|
withTimestamp(timestamp) {
|
|
22
|
-
this.
|
|
15
|
+
this.timestamp = timestamp;
|
|
23
16
|
return this;
|
|
24
17
|
}
|
|
18
|
+
withTimestampNow() {
|
|
19
|
+
return this.withTimestamp(Date.now());
|
|
20
|
+
}
|
|
25
21
|
}
|
|
26
22
|
exports.MessageBuilderBase = MessageBuilderBase;
|
|
27
23
|
class MessageBuilder extends MessageBuilderBase {
|
|
@@ -30,16 +26,13 @@ class MessageBuilder extends MessageBuilderBase {
|
|
|
30
26
|
this.messageClass = messageClass;
|
|
31
27
|
}
|
|
32
28
|
build() {
|
|
33
|
-
if (!this.
|
|
34
|
-
throw new Error("The message type must be set before build");
|
|
35
|
-
if (!this._props)
|
|
29
|
+
if (!this.props)
|
|
36
30
|
throw new Error("The props must be set before build");
|
|
37
31
|
return new this.messageClass({
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}, this._props);
|
|
32
|
+
id: this.id,
|
|
33
|
+
context: this.context,
|
|
34
|
+
timestamp: this.timestamp,
|
|
35
|
+
}, this.props);
|
|
43
36
|
}
|
|
44
37
|
}
|
|
45
38
|
exports.MessageBuilder = MessageBuilder;
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
2
|
import { Props, PropsOf } from "../../../model";
|
|
3
3
|
import { ClassStatic } from "../../../types";
|
|
4
|
-
import {
|
|
5
|
-
import { ModelWithId } from "../../model-with-id";
|
|
4
|
+
import { IdentifiableModel, IdentifiableModelMetadata } from "../../identifiable-model";
|
|
6
5
|
export interface MessageContext {
|
|
7
6
|
correlationId?: string;
|
|
8
7
|
causationId?: string;
|
|
9
8
|
}
|
|
10
|
-
export interface MessageMetadata {
|
|
11
|
-
|
|
12
|
-
readonly messageType: string;
|
|
13
|
-
readonly timestamp: number;
|
|
9
|
+
export interface MessageMetadata extends IdentifiableModelMetadata {
|
|
10
|
+
timestamp: number;
|
|
14
11
|
context?: MessageContext;
|
|
15
12
|
}
|
|
16
|
-
export declare class MessageBase<P extends Props> extends
|
|
17
|
-
private readonly _messageType;
|
|
13
|
+
export declare class MessageBase<P extends Props> extends IdentifiableModel<P> {
|
|
18
14
|
private readonly _timestamp;
|
|
19
15
|
private _context?;
|
|
20
16
|
constructor(metadata: MessageMetadata, props: P);
|
|
21
17
|
props(): P;
|
|
22
|
-
|
|
18
|
+
metadata(): MessageMetadata;
|
|
23
19
|
timestamp(): number;
|
|
24
20
|
context(): MessageContext | undefined;
|
|
25
21
|
setContext(context: Partial<MessageContext>): void;
|
|
@@ -15,11 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.MessageBase = void 0;
|
|
16
16
|
const lodash_1 = __importDefault(require("lodash"));
|
|
17
17
|
const model_1 = require("../../../model");
|
|
18
|
-
const
|
|
19
|
-
let MessageBase = class MessageBase extends
|
|
18
|
+
const identifiable_model_1 = require("../../identifiable-model");
|
|
19
|
+
let MessageBase = class MessageBase extends identifiable_model_1.IdentifiableModel {
|
|
20
20
|
constructor(metadata, props) {
|
|
21
|
-
super(metadata
|
|
22
|
-
this._messageType = metadata.messageType;
|
|
21
|
+
super(metadata);
|
|
23
22
|
this._context = metadata?.context ?? {};
|
|
24
23
|
this._timestamp = metadata.timestamp;
|
|
25
24
|
this.initializeProps(props);
|
|
@@ -27,8 +26,12 @@ let MessageBase = class MessageBase extends model_with_id_1.ModelWithId {
|
|
|
27
26
|
props() {
|
|
28
27
|
return super.props();
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
return
|
|
29
|
+
metadata() {
|
|
30
|
+
return {
|
|
31
|
+
...super.metadata(),
|
|
32
|
+
timestamp: this._timestamp,
|
|
33
|
+
context: this._context,
|
|
34
|
+
};
|
|
32
35
|
}
|
|
33
36
|
timestamp() {
|
|
34
37
|
return this._timestamp;
|
|
@@ -8,9 +8,9 @@ class ValueObjectBuilder extends model_1.ModelBuilder {
|
|
|
8
8
|
this.valueObjectClass = valueObjectClass;
|
|
9
9
|
}
|
|
10
10
|
build() {
|
|
11
|
-
if (!this.
|
|
11
|
+
if (!this.props)
|
|
12
12
|
throw new Error("The props must be set before build");
|
|
13
|
-
return new this.valueObjectClass(this.
|
|
13
|
+
return new this.valueObjectClass(this.props);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
exports.ValueObjectBuilder = ValueObjectBuilder;
|
|
@@ -5,7 +5,7 @@ export declare class ValueObjectBase<P extends Props> extends ModelBase<P> {
|
|
|
5
5
|
constructor(props: P);
|
|
6
6
|
props(): P;
|
|
7
7
|
equals<V extends AnyValueObject>(vo: V): boolean;
|
|
8
|
-
with(props: Partial<P>): this;
|
|
8
|
+
with(props: Partial<P>): typeof this;
|
|
9
9
|
}
|
|
10
10
|
export type AnyValueObject = ValueObjectBase<Props>;
|
|
11
11
|
export interface ValueObjectClass<T extends AnyValueObject = AnyValueObject> extends Class<T>, ClassStatic<typeof ValueObjectBase<PropsOf<T>>> {
|
|
@@ -5,7 +5,7 @@ const meta_1 = require("../../meta");
|
|
|
5
5
|
const Handle = (commandClass) => {
|
|
6
6
|
return (target, propertyKey, descriptor) => {
|
|
7
7
|
if (typeof descriptor.value === "function") {
|
|
8
|
-
const
|
|
8
|
+
const commandType = commandClass.commandType();
|
|
9
9
|
(0, meta_1.defineCommandHandler)(target, commandType, descriptor.value);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
@@ -5,7 +5,7 @@ const meta_1 = require("../../meta");
|
|
|
5
5
|
const When = (eventClass) => {
|
|
6
6
|
return (target, propertyKey, descriptor) => {
|
|
7
7
|
if (typeof descriptor.value === "function") {
|
|
8
|
-
const
|
|
8
|
+
const eventType = eventClass.eventType();
|
|
9
9
|
(0, meta_1.defineEventApplier)(target, eventType, descriptor.value);
|
|
10
10
|
}
|
|
11
11
|
};
|
package/dist/meta/index.d.ts
CHANGED
package/dist/meta/index.js
CHANGED
|
@@ -15,6 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./aggregate-es"), exports);
|
|
18
|
-
__exportStar(require("./id.metadata"), exports);
|
|
19
18
|
__exportStar(require("./event.metadata"), exports);
|
|
20
19
|
__exportStar(require("./command.metadata"), exports);
|
package/dist/model/core/index.js
CHANGED
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./model"), exports);
|
|
18
|
+
__exportStar(require("./model-metadata"), exports);
|
|
18
19
|
__exportStar(require("./model.builder"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnyModel } from "./model";
|
|
2
|
+
import { ModelId, ModelName, ModelVersion, PropsMap, PropsValidator, StaticValuesMap } from "../meta";
|
|
3
|
+
export interface IModelMetadata<T extends AnyModel = AnyModel> {
|
|
4
|
+
modelMutable: boolean;
|
|
5
|
+
modelId: ModelId;
|
|
6
|
+
modelName: ModelName;
|
|
7
|
+
modelVersion: ModelVersion;
|
|
8
|
+
ownPropsValidator?: PropsValidator<T>;
|
|
9
|
+
propsValidators: PropsValidator[];
|
|
10
|
+
ownStaticValues: StaticValuesMap<T>;
|
|
11
|
+
ownPropsMap: PropsMap<T>;
|
|
12
|
+
propsMap: PropsMap<T>;
|
|
13
|
+
}
|
|
@@ -4,7 +4,7 @@ export interface IModelBuilder<T extends AnyModel = AnyModel> {
|
|
|
4
4
|
build(): T;
|
|
5
5
|
}
|
|
6
6
|
export declare abstract class ModelBuilder<T extends AnyModel = AnyModel> implements IModelBuilder<T> {
|
|
7
|
-
protected
|
|
7
|
+
protected props?: PropsOf<T>;
|
|
8
8
|
withProps(props: PropsOf<T>): this;
|
|
9
9
|
abstract build(): T;
|
|
10
10
|
buildSafe(): T | null;
|
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
2
|
import { ModelId, ModelName, ModelVersion, PropsMap, PropsValidator, StaticValuesMap } from "../meta";
|
|
3
3
|
import { ClassStatic } from "../../types";
|
|
4
|
+
import { IModelMetadata } from "./model-metadata";
|
|
4
5
|
export interface Props {
|
|
5
6
|
[key: PropertyKey]: any;
|
|
6
7
|
}
|
|
7
8
|
export type EmptyProps = {
|
|
8
9
|
[key: PropertyKey]: never;
|
|
9
10
|
};
|
|
10
|
-
export declare class ModelMetadata<T extends AnyModel = AnyModel> {
|
|
11
|
-
private modelClass;
|
|
12
|
-
constructor(modelClass: ModelClass<T>);
|
|
13
|
-
get modelMutable(): boolean;
|
|
14
|
-
get modelName(): ModelName;
|
|
15
|
-
get modelVersion(): ModelVersion;
|
|
16
|
-
get modelId(): ModelId;
|
|
17
|
-
get ownPropsValidator(): PropsValidator<T> | undefined;
|
|
18
|
-
get propsValidators(): PropsValidator[];
|
|
19
|
-
get ownStaticValues(): StaticValuesMap<T>;
|
|
20
|
-
get ownPropsMap(): PropsMap<T>;
|
|
21
|
-
get propsMap(): PropsMap<T>;
|
|
22
|
-
}
|
|
23
11
|
export declare class ModelBase<P extends Props> {
|
|
24
12
|
static readonly EMPTY_PROPS: EmptyProps;
|
|
25
13
|
protected _props: P;
|
|
26
14
|
static isModel(model: any): model is AnyModel;
|
|
27
|
-
static
|
|
15
|
+
static modelMutable<T extends AnyModel>(this: ModelClass<T>): boolean;
|
|
16
|
+
static modelName<T extends AnyModel>(this: ModelClass<T>): ModelName;
|
|
17
|
+
static modelVersion<T extends AnyModel>(this: ModelClass<T>): ModelVersion;
|
|
18
|
+
static modelId<T extends AnyModel>(this: ModelClass<T>): ModelId;
|
|
19
|
+
static ownPropsValidator<T extends AnyModel>(this: ModelClass<T>): PropsValidator<T> | undefined;
|
|
20
|
+
static propsValidators<T extends AnyModel>(this: ModelClass<T>): PropsValidator[];
|
|
21
|
+
static ownStaticValues<T extends AnyModel>(this: ModelClass<T>): StaticValuesMap<T>;
|
|
22
|
+
static ownPropsMap<T extends AnyModel>(this: ModelClass<T>): PropsMap<T>;
|
|
23
|
+
static propsMap<T extends AnyModel>(this: ModelClass<T>): PropsMap<T>;
|
|
28
24
|
constructor();
|
|
29
25
|
redefineModel(): void;
|
|
30
26
|
protected redefineProp(key: keyof this, propTargetKey: keyof P): void;
|
|
31
|
-
modelMetadata():
|
|
27
|
+
modelMetadata(): IModelMetadata<typeof this>;
|
|
32
28
|
validateProps(props: P): void;
|
|
33
29
|
validate(): void;
|
|
34
30
|
propsIsEmpty(): boolean;
|
|
35
31
|
props(): P | null;
|
|
32
|
+
metadata(): {};
|
|
36
33
|
protected initializeProps(props: P): void;
|
|
37
34
|
}
|
|
38
35
|
export type AnyModel = ModelBase<Props>;
|