ddd-node 22.0.2 → 23.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/event-sourced-aggregate/{event-sourced-aggregate-model-metadata.d.ts → event-sourced-aggregate-model-descriptor.d.ts} +2 -2
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +2 -2
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +6 -6
- package/dist/core/message/command/command-model-descriptor.d.ts +6 -0
- package/dist/core/message/command/command.d.ts +2 -2
- package/dist/core/message/command/command.js +2 -2
- package/dist/core/message/command/index.d.ts +1 -1
- package/dist/core/message/command/index.js +1 -1
- package/dist/core/message/event/event-model-descriptor.d.ts +5 -0
- package/dist/core/message/event/event.d.ts +3 -3
- package/dist/core/message/event/event.js +2 -2
- package/dist/core/message/event/index.d.ts +1 -1
- package/dist/core/message/event/index.js +1 -1
- package/dist/meta/command.metadata.d.ts +1 -1
- package/dist/meta/command.metadata.js +5 -5
- package/dist/meta/event.metadata.d.ts +1 -1
- package/dist/meta/event.metadata.js +5 -5
- package/dist/model/core/index.d.ts +1 -1
- package/dist/model/core/index.js +1 -1
- package/dist/model/core/{model-metadata.d.ts → model-descriptor.d.ts} +2 -2
- package/dist/model/core/model.d.ts +2 -2
- package/dist/model/core/model.js +4 -4
- package/dist/model/meta/model-id.d.ts +4 -4
- package/dist/model/meta/model-id.js +9 -9
- package/dist/model/meta/model-name.d.ts +1 -1
- package/dist/model/meta/model-name.js +5 -5
- package/dist/model/meta/model-version.d.ts +1 -1
- package/dist/model/meta/model-version.js +5 -5
- package/dist/model/model-registry.js +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/core/message/command/command-model.metadata.d.ts +0 -6
- package/dist/core/message/event/event-model.metadata.d.ts +0 -5
- /package/dist/core/aggregate/event-sourced-aggregate/{event-sourced-aggregate-model-metadata.js → event-sourced-aggregate-model-descriptor.js} +0 -0
- /package/dist/core/message/command/{command-model.metadata.js → command-model-descriptor.js} +0 -0
- /package/dist/core/message/event/{event-model.metadata.js → event-model-descriptor.js} +0 -0
- /package/dist/model/core/{model-metadata.js → model-descriptor.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyEventSourcedAggregate } from ".";
|
|
2
2
|
import { CommandHandlerMap, EventApplierMap } from "../../../meta";
|
|
3
|
-
import {
|
|
4
|
-
export interface
|
|
3
|
+
import { ModelDescriptor } from "../../../model";
|
|
4
|
+
export interface EventSourcedAggregateModelDescriptor<T extends AnyEventSourcedAggregate> extends ModelDescriptor<T> {
|
|
5
5
|
ownEventApplierMap: EventApplierMap;
|
|
6
6
|
eventApplierMap: EventApplierMap;
|
|
7
7
|
ownCommandHandlerMap: CommandHandlerMap;
|
|
@@ -4,7 +4,7 @@ import { ClassStatic } from "../../../types";
|
|
|
4
4
|
import { AnyCommand, AnyEvent, EventClassWithTypedConstructor } from "../../message";
|
|
5
5
|
import { AggregateBase, AggregateMetadata } from "../aggregate-base";
|
|
6
6
|
import { IEventDispatcher } from "../event-dispatcher.interface";
|
|
7
|
-
import {
|
|
7
|
+
import { EventSourcedAggregateModelDescriptor } from "./event-sourced-aggregate-model-descriptor";
|
|
8
8
|
import { Snapshot, SnapshotMetadata } from "./snapshot";
|
|
9
9
|
export interface EventSourceAggregateMetadata extends AggregateMetadata {
|
|
10
10
|
}
|
|
@@ -17,7 +17,7 @@ export declare class EventSourcedAggregateBase<P extends Props> extends Aggregat
|
|
|
17
17
|
static eventApplierMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").EventApplierMap;
|
|
18
18
|
static ownCommandHandlerMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").CommandHandlerMap;
|
|
19
19
|
static commandHandlerMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").CommandHandlerMap;
|
|
20
|
-
|
|
20
|
+
modelDescriptor(): EventSourcedAggregateModelDescriptor<typeof this>;
|
|
21
21
|
version(): number;
|
|
22
22
|
pastEvents(): AnyEvent[];
|
|
23
23
|
events(): AnyEvent[];
|
|
@@ -23,10 +23,10 @@ class EventSourcedAggregateBase extends aggregate_base_1.AggregateBase {
|
|
|
23
23
|
static commandHandlerMap() {
|
|
24
24
|
return (0, meta_1.getCommandHandlerMap)(this.prototype);
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
modelDescriptor() {
|
|
27
27
|
const aggregateClass = this.constructor;
|
|
28
28
|
return {
|
|
29
|
-
...super.
|
|
29
|
+
...super.modelDescriptor(),
|
|
30
30
|
ownEventApplierMap: aggregateClass.ownEventApplierMap(),
|
|
31
31
|
eventApplierMap: aggregateClass.eventApplierMap(),
|
|
32
32
|
ownCommandHandlerMap: aggregateClass.ownCommandHandlerMap(),
|
|
@@ -49,8 +49,8 @@ class EventSourcedAggregateBase extends aggregate_base_1.AggregateBase {
|
|
|
49
49
|
return Boolean(this._events.length);
|
|
50
50
|
}
|
|
51
51
|
getApplierForEvent(event) {
|
|
52
|
-
const { eventType } = event.
|
|
53
|
-
const { eventApplierMap } = this.
|
|
52
|
+
const { eventType } = event.modelDescriptor();
|
|
53
|
+
const { eventApplierMap } = this.modelDescriptor();
|
|
54
54
|
const applier = eventApplierMap.get(eventType);
|
|
55
55
|
if (!applier)
|
|
56
56
|
throw new Error("Event applier not found");
|
|
@@ -92,8 +92,8 @@ class EventSourcedAggregateBase extends aggregate_base_1.AggregateBase {
|
|
|
92
92
|
this.applyEvent(this.newEvent(eventClass, props));
|
|
93
93
|
}
|
|
94
94
|
getHandlerForCommand(command) {
|
|
95
|
-
const { commandType } = command.
|
|
96
|
-
const { commandHandlerMap } = this.
|
|
95
|
+
const { commandType } = command.modelDescriptor();
|
|
96
|
+
const { commandHandlerMap } = this.modelDescriptor();
|
|
97
97
|
const handler = commandHandlerMap.get(commandType);
|
|
98
98
|
if (!handler)
|
|
99
99
|
throw new Error("Command handler not found");
|
|
@@ -3,7 +3,7 @@ import { CommandType } from "../../../meta";
|
|
|
3
3
|
import { Props, PropsOf } from "../../../model";
|
|
4
4
|
import { ClassStatic } from "../../../types";
|
|
5
5
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
6
|
-
import {
|
|
6
|
+
import { CommandModelDescriptor } from "./command-model-descriptor";
|
|
7
7
|
export interface CommandMetadata extends MessageMetadata {
|
|
8
8
|
commandType: CommandType;
|
|
9
9
|
}
|
|
@@ -11,7 +11,7 @@ export declare abstract class CommandBase<P extends Props> extends MessageBase<P
|
|
|
11
11
|
protected readonly _commandType: CommandType;
|
|
12
12
|
static commandType(): string;
|
|
13
13
|
constructor(metadata: Omit<CommandMetadata, "commandType">, props: P);
|
|
14
|
-
|
|
14
|
+
modelDescriptor(): CommandModelDescriptor<typeof this>;
|
|
15
15
|
metadata(): CommandMetadata;
|
|
16
16
|
commandType(): string;
|
|
17
17
|
}
|
|
@@ -11,10 +11,10 @@ class CommandBase extends message_base_1.MessageBase {
|
|
|
11
11
|
super(metadata, props);
|
|
12
12
|
this._commandType = (0, meta_1.getCommandType)(this.constructor);
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
modelDescriptor() {
|
|
15
15
|
const commandClass = this.constructor;
|
|
16
16
|
return {
|
|
17
|
-
...super.
|
|
17
|
+
...super.modelDescriptor(),
|
|
18
18
|
commandType: commandClass.commandType(),
|
|
19
19
|
};
|
|
20
20
|
}
|
|
@@ -14,6 +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
|
|
17
|
+
__exportStar(require("./command-model-descriptor"), exports);
|
|
18
18
|
__exportStar(require("./command"), exports);
|
|
19
19
|
__exportStar(require("./command.builder"), exports);
|
|
@@ -4,7 +4,7 @@ import { Props, PropsOf } from "../../../model";
|
|
|
4
4
|
import { ClassStatic } from "../../../types";
|
|
5
5
|
import { Id } from "../../id";
|
|
6
6
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
7
|
-
import {
|
|
7
|
+
import { EventModelDescriptor } from "./event-model-descriptor";
|
|
8
8
|
export type EventSource = Readonly<{
|
|
9
9
|
aggregateId: Id;
|
|
10
10
|
aggregateVersion: number;
|
|
@@ -13,12 +13,12 @@ export interface EventMetadata extends MessageMetadata {
|
|
|
13
13
|
eventType: EventType;
|
|
14
14
|
source: EventSource;
|
|
15
15
|
}
|
|
16
|
-
export declare class EventBase<P extends Props> extends MessageBase<P> {
|
|
16
|
+
export declare abstract class EventBase<P extends Props> extends MessageBase<P> {
|
|
17
17
|
private readonly _eventType;
|
|
18
18
|
private readonly _source;
|
|
19
19
|
constructor(metadata: Omit<EventMetadata, "eventType">, props: P);
|
|
20
20
|
static eventType(): EventType;
|
|
21
|
-
|
|
21
|
+
modelDescriptor(): EventModelDescriptor<typeof this>;
|
|
22
22
|
metadata(): EventMetadata;
|
|
23
23
|
eventType(): string;
|
|
24
24
|
source(): Readonly<{
|
|
@@ -12,10 +12,10 @@ class EventBase extends message_base_1.MessageBase {
|
|
|
12
12
|
static eventType() {
|
|
13
13
|
return (0, meta_1.getEventType)(this);
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
modelDescriptor() {
|
|
16
16
|
const eventClass = this.constructor;
|
|
17
17
|
return {
|
|
18
|
-
...super.
|
|
18
|
+
...super.modelDescriptor(),
|
|
19
19
|
eventType: eventClass.eventType(),
|
|
20
20
|
};
|
|
21
21
|
}
|
|
@@ -15,5 +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
|
|
18
|
+
__exportStar(require("./event-model-descriptor"), exports);
|
|
19
19
|
__exportStar(require("./event.builder"), exports);
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCommandType = exports.defineCommandType = exports
|
|
3
|
+
exports.getCommandType = exports.defineCommandType = exports.$CommandType = void 0;
|
|
4
4
|
require("reflect-metadata");
|
|
5
|
-
class
|
|
5
|
+
class $CommandType extends String {
|
|
6
6
|
static validate(commandType) {
|
|
7
7
|
if (commandType.trim().length === 0)
|
|
8
8
|
throw new Error("Command type cannot be an empty string");
|
|
9
9
|
}
|
|
10
10
|
constructor(commandType) {
|
|
11
|
-
|
|
11
|
+
$CommandType.validate(commandType);
|
|
12
12
|
super(commandType);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
exports
|
|
15
|
+
exports.$CommandType = $CommandType;
|
|
16
16
|
const CommandTypeMetaKey = Symbol.for("COMMAND_TYPE");
|
|
17
17
|
const defineCommandType = (target, commandType) => {
|
|
18
|
-
Reflect.defineMetadata(CommandTypeMetaKey, new
|
|
18
|
+
Reflect.defineMetadata(CommandTypeMetaKey, new $CommandType(commandType), target);
|
|
19
19
|
};
|
|
20
20
|
exports.defineCommandType = defineCommandType;
|
|
21
21
|
const getCommandType = (target) => {
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getEventType = exports.defineEventType = exports
|
|
3
|
+
exports.getEventType = exports.defineEventType = exports.$EventType = void 0;
|
|
4
4
|
require("reflect-metadata");
|
|
5
|
-
class
|
|
5
|
+
class $EventType extends String {
|
|
6
6
|
static validate(eventType) {
|
|
7
7
|
if (eventType.trim().length === 0)
|
|
8
8
|
throw new Error("Event type cannot be an empty string");
|
|
9
9
|
}
|
|
10
10
|
constructor(eventType) {
|
|
11
|
-
|
|
11
|
+
$EventType.validate(eventType);
|
|
12
12
|
super(eventType);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
exports
|
|
15
|
+
exports.$EventType = $EventType;
|
|
16
16
|
const EventTypeMetaKey = Symbol.for("EVENT_TYPE");
|
|
17
17
|
const defineEventType = (target, eventType) => {
|
|
18
|
-
Reflect.defineMetadata(EventTypeMetaKey, new
|
|
18
|
+
Reflect.defineMetadata(EventTypeMetaKey, new $EventType(eventType), target);
|
|
19
19
|
};
|
|
20
20
|
exports.defineEventType = defineEventType;
|
|
21
21
|
const getEventType = (target) => {
|
package/dist/model/core/index.js
CHANGED
|
@@ -15,5 +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-
|
|
18
|
+
__exportStar(require("./model-descriptor"), exports);
|
|
19
19
|
__exportStar(require("./model.builder"), exports);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AnyModel } from "./model";
|
|
2
2
|
import { ModelId, ModelName, ModelVersion, PropsMap, PropsValidator, StaticValuesMap } from "../meta";
|
|
3
|
-
export interface
|
|
4
|
-
modelMutable: boolean;
|
|
3
|
+
export interface ModelDescriptor<T extends AnyModel = AnyModel> {
|
|
5
4
|
modelId: ModelId;
|
|
6
5
|
modelName: ModelName;
|
|
7
6
|
modelVersion: ModelVersion;
|
|
7
|
+
modelMutable: boolean;
|
|
8
8
|
ownPropsValidator?: PropsValidator<T>;
|
|
9
9
|
propsValidators: PropsValidator[];
|
|
10
10
|
ownStaticValues: StaticValuesMap<T>;
|
|
@@ -1,7 +1,7 @@
|
|
|
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 {
|
|
4
|
+
import { ModelDescriptor } from "./model-descriptor";
|
|
5
5
|
export interface Props {
|
|
6
6
|
[key: PropertyKey]: any;
|
|
7
7
|
}
|
|
@@ -24,7 +24,7 @@ export declare class ModelBase<P extends Props> {
|
|
|
24
24
|
constructor();
|
|
25
25
|
redefineModel(): void;
|
|
26
26
|
protected redefineProp(key: keyof this, propTargetKey: keyof P): void;
|
|
27
|
-
|
|
27
|
+
modelDescriptor(): ModelDescriptor<typeof this>;
|
|
28
28
|
validateProps(props: P): void;
|
|
29
29
|
validate(): void;
|
|
30
30
|
propsIsEmpty(): boolean;
|
package/dist/model/core/model.js
CHANGED
|
@@ -43,7 +43,7 @@ class ModelBase {
|
|
|
43
43
|
this.redefineModel();
|
|
44
44
|
}
|
|
45
45
|
redefineModel() {
|
|
46
|
-
this.
|
|
46
|
+
this.modelDescriptor().propsMap.forEach((propTargetKey, key) => {
|
|
47
47
|
this.redefineProp(key, propTargetKey);
|
|
48
48
|
});
|
|
49
49
|
}
|
|
@@ -57,7 +57,7 @@ class ModelBase {
|
|
|
57
57
|
},
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
modelDescriptor() {
|
|
61
61
|
const modelClass = this.constructor;
|
|
62
62
|
return {
|
|
63
63
|
modelMutable: modelClass.modelMutable(),
|
|
@@ -72,7 +72,7 @@ class ModelBase {
|
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
74
|
validateProps(props) {
|
|
75
|
-
const propsValidators = this.
|
|
75
|
+
const propsValidators = this.modelDescriptor().propsValidators;
|
|
76
76
|
propsValidators.forEach((propsValidator) => propsValidator(props));
|
|
77
77
|
}
|
|
78
78
|
validate() {
|
|
@@ -97,7 +97,7 @@ class ModelBase {
|
|
|
97
97
|
initializeProps(props) {
|
|
98
98
|
if (!this.propsIsEmpty())
|
|
99
99
|
throw new errors_1.PropsInitializedError();
|
|
100
|
-
if (!this.
|
|
100
|
+
if (!this.modelDescriptor().modelMutable) {
|
|
101
101
|
this._props = props;
|
|
102
102
|
Object.freeze(this._props);
|
|
103
103
|
}
|
|
@@ -2,15 +2,15 @@ import { AnyModel, ModelClass } from "../core";
|
|
|
2
2
|
import { ModelName } from "./model-name";
|
|
3
3
|
import { ModelVersion } from "./model-version";
|
|
4
4
|
export type ModelId = string;
|
|
5
|
-
export type
|
|
6
|
-
export declare class
|
|
5
|
+
export type ModelIdFormat = `${string}${typeof $ModelId.Divider}${number}`;
|
|
6
|
+
export declare class $ModelId extends String {
|
|
7
7
|
readonly modelName: ModelName;
|
|
8
8
|
readonly modelVersion: ModelVersion;
|
|
9
9
|
static Divider: "|";
|
|
10
10
|
static Format: RegExp;
|
|
11
|
-
static fromValue(value: ModelId):
|
|
11
|
+
static fromValue(value: ModelId): $ModelId;
|
|
12
12
|
static makeValue(modelName: ModelName, modelVersion: ModelVersion): ModelId;
|
|
13
13
|
constructor(modelName: ModelName, modelVersion: ModelVersion);
|
|
14
14
|
}
|
|
15
|
-
export declare const setModelId: <T extends AnyModel>(target: ModelClass<T>, modelId:
|
|
15
|
+
export declare const setModelId: <T extends AnyModel>(target: ModelClass<T>, modelId: $ModelId) => void;
|
|
16
16
|
export declare const getModelId: <T extends AnyModel>(target: ModelClass<T>) => ModelId;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModelId = exports.setModelId = exports
|
|
3
|
+
exports.getModelId = exports.setModelId = exports.$ModelId = void 0;
|
|
4
4
|
const model_name_1 = require("./model-name");
|
|
5
5
|
const model_version_1 = require("./model-version");
|
|
6
|
-
class
|
|
6
|
+
class $ModelId extends String {
|
|
7
7
|
static fromValue(value) {
|
|
8
8
|
if (!this.Format.test(value))
|
|
9
|
-
throw new Error(`Cannot parse
|
|
9
|
+
throw new Error(`Cannot parse $ModelId from value ${value}`);
|
|
10
10
|
const [modelName, modelVersion] = value.split(this.Divider);
|
|
11
|
-
return new
|
|
11
|
+
return new $ModelId(modelName, Number(modelVersion));
|
|
12
12
|
}
|
|
13
13
|
static makeValue(modelName, modelVersion) {
|
|
14
14
|
const modelId = `${modelName}${this.Divider}${modelVersion}`;
|
|
15
15
|
return modelId;
|
|
16
16
|
}
|
|
17
17
|
constructor(modelName, modelVersion) {
|
|
18
|
-
super(
|
|
18
|
+
super($ModelId.makeValue(modelName, modelVersion));
|
|
19
19
|
this.modelName = modelName;
|
|
20
20
|
this.modelVersion = modelVersion;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
exports
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
exports.$ModelId = $ModelId;
|
|
24
|
+
$ModelId.Divider = "|";
|
|
25
|
+
$ModelId.Format = new RegExp(/^.+\|[0-9]+$/);
|
|
26
26
|
const ModelIdMetaKey = Symbol.for("MODEL_ID");
|
|
27
27
|
const setModelId = (target, modelId) => {
|
|
28
28
|
Reflect.defineMetadata(ModelIdMetaKey, modelId, target);
|
|
@@ -32,7 +32,7 @@ const getModelId = (target) => {
|
|
|
32
32
|
if (!Reflect.hasOwnMetadata(ModelIdMetaKey, target)) {
|
|
33
33
|
const modelName = (0, model_name_1.getModelName)(target);
|
|
34
34
|
const modelVersion = (0, model_version_1.getModelVersion)(target);
|
|
35
|
-
(0, exports.setModelId)(target, new
|
|
35
|
+
(0, exports.setModelId)(target, new $ModelId(modelName, modelVersion));
|
|
36
36
|
}
|
|
37
37
|
return Reflect.getOwnMetadata(ModelIdMetaKey, target).valueOf();
|
|
38
38
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModelName = exports.defineModelName = exports
|
|
4
|
-
class
|
|
3
|
+
exports.getModelName = exports.defineModelName = exports.$ModelName = void 0;
|
|
4
|
+
class $ModelName extends String {
|
|
5
5
|
static validate(modelName) {
|
|
6
6
|
if (modelName.trim().length === 0)
|
|
7
7
|
throw new Error("Model name cannot be an empty string");
|
|
8
8
|
}
|
|
9
9
|
constructor(modelName) {
|
|
10
|
-
|
|
10
|
+
$ModelName.validate(modelName);
|
|
11
11
|
super(modelName);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
exports
|
|
14
|
+
exports.$ModelName = $ModelName;
|
|
15
15
|
const ModelNameMetaKey = Symbol.for("MODEL_NAME");
|
|
16
16
|
const defineModelName = (target, modelName) => {
|
|
17
|
-
Reflect.defineMetadata(ModelNameMetaKey, new
|
|
17
|
+
Reflect.defineMetadata(ModelNameMetaKey, new $ModelName(modelName), target);
|
|
18
18
|
};
|
|
19
19
|
exports.defineModelName = defineModelName;
|
|
20
20
|
const getModelName = (target) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyModel, ModelClass } from "../core";
|
|
2
2
|
export type ModelVersion = number;
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class $ModelVersion extends Number {
|
|
4
4
|
static validate(modelVersion: ModelVersion): void;
|
|
5
5
|
constructor(modelVersion: ModelVersion);
|
|
6
6
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModelVersion = exports.defineModelVersion = exports
|
|
4
|
-
class
|
|
3
|
+
exports.getModelVersion = exports.defineModelVersion = exports.$ModelVersion = void 0;
|
|
4
|
+
class $ModelVersion extends Number {
|
|
5
5
|
static validate(modelVersion) {
|
|
6
6
|
if (modelVersion < 0 && Number.isInteger(modelVersion))
|
|
7
7
|
throw new Error("Model version must be a non-negative integer number");
|
|
8
8
|
}
|
|
9
9
|
constructor(modelVersion) {
|
|
10
|
-
|
|
10
|
+
$ModelVersion.validate(modelVersion);
|
|
11
11
|
super(modelVersion);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
exports
|
|
14
|
+
exports.$ModelVersion = $ModelVersion;
|
|
15
15
|
const ModelVersionMetaKey = Symbol.for("MODEL_VERSION");
|
|
16
16
|
const defineModelVersion = (target, modelVersion) => {
|
|
17
|
-
Reflect.defineMetadata(ModelVersionMetaKey, new
|
|
17
|
+
Reflect.defineMetadata(ModelVersionMetaKey, new $ModelVersion(modelVersion), target);
|
|
18
18
|
};
|
|
19
19
|
exports.defineModelVersion = defineModelVersion;
|
|
20
20
|
const getModelVersion = (target) => {
|
|
@@ -27,7 +27,7 @@ class ModelRegistry {
|
|
|
27
27
|
return modelVersionMap.get(modelVersion);
|
|
28
28
|
}
|
|
29
29
|
getModelByModelId(modelId) {
|
|
30
|
-
const { modelName, modelVersion } = meta_1.
|
|
30
|
+
const { modelName, modelVersion } = meta_1.$ModelId.fromValue(modelId);
|
|
31
31
|
return this.getModel(modelName, modelVersion);
|
|
32
32
|
}
|
|
33
33
|
hasRegisteredModel(p1, p2) {
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ddd-node","version":"
|
|
1
|
+
{"name":"ddd-node","version":"23.0.0","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
|
package/package.json
CHANGED
|
File without changes
|
/package/dist/core/message/command/{command-model.metadata.js → command-model-descriptor.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|