ddd-node 15.3.0 → 16.0.1
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/base.d.ts +1 -1
- package/dist/core/aggregate/base.js +1 -1
- package/dist/core/aggregate/event-sourced-aggregate.d.ts +4 -4
- package/dist/core/aggregate/event-sourced-aggregate.js +12 -12
- package/dist/core/aggregate/state-aggregate.d.ts +2 -2
- package/dist/core/aggregate/state-aggregate.js +2 -2
- package/dist/core/message/command.d.ts +2 -2
- package/dist/core/message/command.js +6 -3
- package/dist/core/message/event.d.ts +3 -3
- package/dist/core/message/event.js +7 -4
- package/dist/core/message/message.d.ts +3 -3
- package/dist/core/message/message.js +3 -3
- package/dist/decorators/aggregate-es/handle.js +2 -2
- package/dist/decorators/aggregate-es/when.js +2 -2
- package/dist/decorators/index.d.ts +1 -0
- package/dist/decorators/index.js +1 -0
- package/dist/decorators/message/command.d.ts +2 -0
- package/dist/decorators/message/command.js +10 -0
- package/dist/decorators/message/event.d.ts +2 -0
- package/dist/decorators/message/event.js +10 -0
- package/dist/decorators/message/index.d.ts +2 -0
- package/dist/decorators/message/index.js +18 -0
- package/dist/meta/aggregate.metadata.d.ts +2 -2
- package/dist/meta/aggregate.metadata.js +4 -4
- package/dist/meta/command.metadata.d.ts +3 -0
- package/dist/meta/command.metadata.js +13 -0
- package/dist/meta/event.metadata.d.ts +3 -0
- package/dist/meta/event.metadata.js +13 -0
- package/dist/meta/index.d.ts +2 -0
- package/dist/meta/index.js +2 -0
- package/dist/meta/model.metadata.js +6 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,6 @@ export interface AggregateMetadata extends EntityMetadata {
|
|
|
7
7
|
export declare abstract class AggregateBase<P extends Props> extends EntityBase<P> {
|
|
8
8
|
protected readonly _version: number;
|
|
9
9
|
constructor(metadata: AggregateMetadata, props?: P);
|
|
10
|
-
abstract
|
|
10
|
+
abstract version(): number;
|
|
11
11
|
protected newEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: PropsOf<E>): E;
|
|
12
12
|
}
|
|
@@ -20,10 +20,10 @@ export declare class EventSourcedAggregateBase<P extends Props> extends Aggregat
|
|
|
20
20
|
static fromSnapshot<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClassWithTypedConstructor<T>, snapshot: Snapshot<T>, pastEventsAfterSnapshot?: AnyEvent[]): T;
|
|
21
21
|
static eventApplierMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): Map<string, EventApplier>;
|
|
22
22
|
static commandHandlerMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): Map<string, CommandHandler>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
version(): number;
|
|
24
|
+
pastEvents(): AnyEvent[];
|
|
25
|
+
events(): AnyEvent[];
|
|
26
|
+
handledCommands(): AnyCommand[];
|
|
27
27
|
eventApplierMap(): Map<string, EventApplier>;
|
|
28
28
|
hasNewEvent(): boolean;
|
|
29
29
|
getApplierForEvent<E extends AnyEvent>(event: E): EventApplier<E>;
|
|
@@ -34,16 +34,16 @@ class EventSourcedAggregateBase extends base_1.AggregateBase {
|
|
|
34
34
|
static commandHandlerMap() {
|
|
35
35
|
return (0, meta_1.getCommandHandlerMap)(this.prototype);
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
version() {
|
|
38
38
|
return this._version + this._pastEvents.length + this._events.length;
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
pastEvents() {
|
|
41
41
|
return [...this._pastEvents];
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
events() {
|
|
44
44
|
return [...this._events];
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
handledCommands() {
|
|
47
47
|
return [...this._handledCommands];
|
|
48
48
|
}
|
|
49
49
|
eventApplierMap() {
|
|
@@ -53,19 +53,19 @@ class EventSourcedAggregateBase extends base_1.AggregateBase {
|
|
|
53
53
|
return Boolean(this._events.length);
|
|
54
54
|
}
|
|
55
55
|
getApplierForEvent(event) {
|
|
56
|
-
const
|
|
57
|
-
const applier = this.eventApplierMap().get(
|
|
56
|
+
const eventType = event.eventType();
|
|
57
|
+
const applier = this.eventApplierMap().get(eventType);
|
|
58
58
|
if (!applier)
|
|
59
59
|
throw new Error("Event applier not found");
|
|
60
60
|
return applier;
|
|
61
61
|
}
|
|
62
62
|
validateEventBeforeApply(event) {
|
|
63
|
-
const eventSource = event.
|
|
63
|
+
const eventSource = event.source();
|
|
64
64
|
if (eventSource.aggregate !== this.modelName())
|
|
65
65
|
throw new Error("Invalid source type");
|
|
66
66
|
if (!eventSource.id.equals(this._id))
|
|
67
67
|
throw new Error("Invalid source id");
|
|
68
|
-
if (eventSource.version !== this.
|
|
68
|
+
if (eventSource.version !== this.version())
|
|
69
69
|
throw new Error("Invalid source version");
|
|
70
70
|
}
|
|
71
71
|
_applyEvent(event) {
|
|
@@ -100,8 +100,8 @@ class EventSourcedAggregateBase extends base_1.AggregateBase {
|
|
|
100
100
|
return this.constructor.commandHandlerMap();
|
|
101
101
|
}
|
|
102
102
|
getHandlerForCommand(command) {
|
|
103
|
-
const
|
|
104
|
-
const handler = this.commandHandlerMap().get(
|
|
103
|
+
const commandType = command.commandType();
|
|
104
|
+
const handler = this.commandHandlerMap().get(commandType);
|
|
105
105
|
if (!handler)
|
|
106
106
|
throw new Error("Command handler not found");
|
|
107
107
|
return handler;
|
|
@@ -111,7 +111,7 @@ class EventSourcedAggregateBase extends base_1.AggregateBase {
|
|
|
111
111
|
const events = (0, utils_1.toArray)(handler.call(this, command));
|
|
112
112
|
events.forEach((event) => {
|
|
113
113
|
event.setContext({
|
|
114
|
-
correlationId: command.
|
|
114
|
+
correlationId: command.context()?.correlationId,
|
|
115
115
|
causationId: command.id().value,
|
|
116
116
|
});
|
|
117
117
|
});
|
|
@@ -125,7 +125,7 @@ class EventSourcedAggregateBase extends base_1.AggregateBase {
|
|
|
125
125
|
return {
|
|
126
126
|
metadata: {
|
|
127
127
|
id: this.id(),
|
|
128
|
-
version: this.
|
|
128
|
+
version: this.version(),
|
|
129
129
|
},
|
|
130
130
|
props: this.props(),
|
|
131
131
|
};
|
|
@@ -9,8 +9,8 @@ export declare class StateAggregateBase<P extends Props> extends AggregateBase<P
|
|
|
9
9
|
constructor(metadata: AggregateMetadata, props: P);
|
|
10
10
|
static newAggregate<T extends AnyStateAggregate>(this: StateAggregateClassWithTypedConstructor<T>, props: PropsOf<T>, id?: Id): T;
|
|
11
11
|
props(): P;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
version(): number;
|
|
13
|
+
events(): AnyEvent[];
|
|
14
14
|
protected recordEvent<E extends AnyEvent>(event: E): void;
|
|
15
15
|
protected recordEvent<E extends AnyEvent>(eventClass: EventClass<E>, props: PropsOf<E>): void;
|
|
16
16
|
clearEvents(): void;
|
|
@@ -16,10 +16,10 @@ class StateAggregateBase extends base_1.AggregateBase {
|
|
|
16
16
|
props() {
|
|
17
17
|
return super.props();
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
version() {
|
|
20
20
|
return this._version;
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
events() {
|
|
23
23
|
return this._events;
|
|
24
24
|
}
|
|
25
25
|
recordEvent(param1, param2) {
|
|
@@ -6,10 +6,10 @@ export interface CommandMetadata extends Omit<MessageMetadata, "messageType"> {
|
|
|
6
6
|
}
|
|
7
7
|
export declare class CommandBase<P extends Props> extends MessageBase<P> {
|
|
8
8
|
static readonly COMMAND_MESSAGE_TYPE = "command";
|
|
9
|
-
private _commandType;
|
|
10
9
|
constructor(metadata: CommandMetadata, props: P);
|
|
10
|
+
static commandType(): string;
|
|
11
11
|
static newCommand<T extends AnyCommand>(this: CommandClassWithTypedConstructor<T>, props: PropsOf<T>, context?: MessageContext, timestamp?: number): T;
|
|
12
|
-
|
|
12
|
+
commandType(): string;
|
|
13
13
|
}
|
|
14
14
|
export type AnyCommand = CommandBase<Props>;
|
|
15
15
|
export interface CommandClass<T extends AnyCommand = AnyCommand, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof CommandBase<PropsOf<T>>> {
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CommandBase = void 0;
|
|
4
4
|
const message_1 = require("./message");
|
|
5
|
+
const meta_1 = require("../../meta");
|
|
5
6
|
class CommandBase extends message_1.MessageBase {
|
|
6
7
|
constructor(metadata, props) {
|
|
7
8
|
super({ ...metadata, messageType: CommandBase.COMMAND_MESSAGE_TYPE }, props);
|
|
8
|
-
|
|
9
|
+
}
|
|
10
|
+
static commandType() {
|
|
11
|
+
return (0, meta_1.getCommandType)(this) || this.modelName();
|
|
9
12
|
}
|
|
10
13
|
static newCommand(props, context, timestamp) {
|
|
11
14
|
return new this({
|
|
@@ -14,8 +17,8 @@ class CommandBase extends message_1.MessageBase {
|
|
|
14
17
|
timestamp,
|
|
15
18
|
}, props);
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
20
|
+
commandType() {
|
|
21
|
+
return this.constructor.commandType();
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
exports.CommandBase = CommandBase;
|
|
@@ -14,15 +14,15 @@ export interface EventMetadata extends Omit<MessageMetadata, "messageType"> {
|
|
|
14
14
|
export declare class EventBase<P extends Props> extends MessageBase<P> {
|
|
15
15
|
static readonly EVENT_MESSAGE_TYPE = "event";
|
|
16
16
|
private readonly _source;
|
|
17
|
-
private readonly _eventType;
|
|
18
17
|
constructor(metadata: EventMetadata, props: P);
|
|
18
|
+
static eventType(): string;
|
|
19
19
|
static newEvent<T extends AnyEvent>(this: EventClassWithTypedConstructor<T>, source: EventSource, props: PropsOf<T>, context?: MessageContext, timestamp?: number): T;
|
|
20
|
-
|
|
20
|
+
source(): Readonly<{
|
|
21
21
|
aggregate: string;
|
|
22
22
|
id: Id;
|
|
23
23
|
version: number;
|
|
24
24
|
}>;
|
|
25
|
-
|
|
25
|
+
eventType(): string;
|
|
26
26
|
}
|
|
27
27
|
export type AnyEvent = EventBase<Props>;
|
|
28
28
|
export interface EventClass<T extends AnyEvent = AnyEvent, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventBase<PropsOf<T>>> {
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventBase = void 0;
|
|
4
4
|
const message_1 = require("./message");
|
|
5
|
+
const meta_1 = require("../../meta");
|
|
5
6
|
class EventBase extends message_1.MessageBase {
|
|
6
7
|
constructor(metadata, props) {
|
|
7
8
|
super({ ...metadata, messageType: EventBase.EVENT_MESSAGE_TYPE }, props);
|
|
8
9
|
this._source = metadata.source;
|
|
9
|
-
|
|
10
|
+
}
|
|
11
|
+
static eventType() {
|
|
12
|
+
return (0, meta_1.getEventType)(this) || this.modelName();
|
|
10
13
|
}
|
|
11
14
|
static newEvent(source, props, context, timestamp) {
|
|
12
15
|
return new this({
|
|
@@ -16,11 +19,11 @@ class EventBase extends message_1.MessageBase {
|
|
|
16
19
|
timestamp,
|
|
17
20
|
}, props);
|
|
18
21
|
}
|
|
19
|
-
|
|
22
|
+
source() {
|
|
20
23
|
return this._source;
|
|
21
24
|
}
|
|
22
|
-
|
|
23
|
-
return this.
|
|
25
|
+
eventType() {
|
|
26
|
+
return this.constructor.eventType();
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
exports.EventBase = EventBase;
|
|
@@ -16,8 +16,8 @@ export declare class MessageBase<P extends Props> extends ModelWithId<P> {
|
|
|
16
16
|
private _context?;
|
|
17
17
|
protected constructor(metadata: MessageMetadata, props: P);
|
|
18
18
|
props(): P;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
messageType(): string;
|
|
20
|
+
timestamp(): number;
|
|
21
|
+
context(): MessageContext | undefined;
|
|
22
22
|
setContext(context: Partial<MessageContext>): void;
|
|
23
23
|
}
|
|
@@ -17,13 +17,13 @@ class MessageBase extends model_1.ModelWithId {
|
|
|
17
17
|
props() {
|
|
18
18
|
return super.props();
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
messageType() {
|
|
21
21
|
return this._messageType;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
timestamp() {
|
|
24
24
|
return this._timestamp;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
context() {
|
|
27
27
|
return this._context;
|
|
28
28
|
}
|
|
29
29
|
setContext(context) {
|
|
@@ -5,8 +5,8 @@ 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
|
|
9
|
-
(0, meta_1.defineCommandHandler)(target,
|
|
8
|
+
const commandType = commandClass.commandType();
|
|
9
|
+
(0, meta_1.defineCommandHandler)(target, commandType, descriptor.value);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
};
|
|
@@ -5,8 +5,8 @@ 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
|
|
9
|
-
(0, meta_1.defineEventApplier)(target,
|
|
8
|
+
const eventType = eventClass.eventType();
|
|
9
|
+
(0, meta_1.defineEventApplier)(target, eventType, descriptor.value);
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
};
|
package/dist/decorators/index.js
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Command = void 0;
|
|
4
|
+
const meta_1 = require("../../meta");
|
|
5
|
+
const Command = (commandType) => {
|
|
6
|
+
return (target) => {
|
|
7
|
+
(0, meta_1.setCommandType)(target, commandType);
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
exports.Command = Command;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Event = void 0;
|
|
4
|
+
const meta_1 = require("../../meta");
|
|
5
|
+
const Event = (eventType) => {
|
|
6
|
+
return (target) => {
|
|
7
|
+
(0, meta_1.setEventType)(target, eventType);
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
exports.Event = Event;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./command"), exports);
|
|
18
|
+
__exportStar(require("./event"), exports);
|
|
@@ -2,7 +2,7 @@ import { AnyCommand, AnyEvent, CommandHandler, EventApplier } from "../core";
|
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
export declare const EventApplierMapMetaKey: unique symbol;
|
|
4
4
|
export declare const getEventApplierMap: (target: object) => Map<string, EventApplier>;
|
|
5
|
-
export declare const defineEventApplier: <T extends AnyEvent>(target: object,
|
|
5
|
+
export declare const defineEventApplier: <T extends AnyEvent>(target: object, eventType: string, applier: EventApplier<T>) => void;
|
|
6
6
|
export declare const CommandHandlerMapMetaKey: unique symbol;
|
|
7
7
|
export declare const getCommandHandlerMap: (target: object) => Map<string, CommandHandler>;
|
|
8
|
-
export declare const defineCommandHandler: <T extends AnyCommand>(target: object,
|
|
8
|
+
export declare const defineCommandHandler: <T extends AnyCommand>(target: object, commandType: string, handler: CommandHandler<T>) => void;
|
|
@@ -12,9 +12,9 @@ const getEventApplierMap = (target) => {
|
|
|
12
12
|
return eventApplierMap();
|
|
13
13
|
};
|
|
14
14
|
exports.getEventApplierMap = getEventApplierMap;
|
|
15
|
-
const defineEventApplier = (target,
|
|
15
|
+
const defineEventApplier = (target, eventType, applier) => {
|
|
16
16
|
const eventAppliersMap = (0, exports.getEventApplierMap)(target);
|
|
17
|
-
eventAppliersMap.set(
|
|
17
|
+
eventAppliersMap.set(eventType, applier);
|
|
18
18
|
};
|
|
19
19
|
exports.defineEventApplier = defineEventApplier;
|
|
20
20
|
// Command handler map
|
|
@@ -27,8 +27,8 @@ const getCommandHandlerMap = (target) => {
|
|
|
27
27
|
return commandHandlerMap();
|
|
28
28
|
};
|
|
29
29
|
exports.getCommandHandlerMap = getCommandHandlerMap;
|
|
30
|
-
const defineCommandHandler = (target,
|
|
30
|
+
const defineCommandHandler = (target, commandType, handler) => {
|
|
31
31
|
const commandHandlersMap = (0, exports.getCommandHandlerMap)(target);
|
|
32
|
-
commandHandlersMap.set(
|
|
32
|
+
commandHandlersMap.set(commandType, handler);
|
|
33
33
|
};
|
|
34
34
|
exports.defineCommandHandler = defineCommandHandler;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCommandType = exports.setCommandType = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const CommandTypeMetaKey = Symbol.for("COMMAND_TYPE");
|
|
6
|
+
const setCommandType = (target, commandType) => {
|
|
7
|
+
Reflect.defineMetadata(CommandTypeMetaKey, commandType, target);
|
|
8
|
+
};
|
|
9
|
+
exports.setCommandType = setCommandType;
|
|
10
|
+
const getCommandType = (target) => {
|
|
11
|
+
return Reflect.getOwnMetadata(CommandTypeMetaKey, target);
|
|
12
|
+
};
|
|
13
|
+
exports.getCommandType = getCommandType;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEventType = exports.setEventType = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const EventTypeMetaKey = Symbol.for("EVENT_TYPE");
|
|
6
|
+
const setEventType = (target, eventType) => {
|
|
7
|
+
Reflect.defineMetadata(EventTypeMetaKey, eventType, target);
|
|
8
|
+
};
|
|
9
|
+
exports.setEventType = setEventType;
|
|
10
|
+
const getEventType = (target) => {
|
|
11
|
+
return Reflect.getOwnMetadata(EventTypeMetaKey, target);
|
|
12
|
+
};
|
|
13
|
+
exports.getEventType = getEventType;
|
package/dist/meta/index.d.ts
CHANGED
package/dist/meta/index.js
CHANGED
|
@@ -18,3 +18,5 @@ __exportStar(require("./helpers"), exports);
|
|
|
18
18
|
__exportStar(require("./aggregate.metadata"), exports);
|
|
19
19
|
__exportStar(require("./id.metadata"), exports);
|
|
20
20
|
__exportStar(require("./model.metadata"), exports);
|
|
21
|
+
__exportStar(require("./event.metadata"), exports);
|
|
22
|
+
__exportStar(require("./command.metadata"), exports);
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getStaticValue = exports.setStaticValue = exports.getOwnStaticValues = exports.getPropsValidators = exports.PropsValidatorsMetaKey = exports.getOwnPropsValidator = exports.setPropsValidator = exports.getModelName = exports.setModelName = exports.getPropsMap = exports.setProp = exports.getOwnPropsMap = exports.PropsMap = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
4
8
|
const core_1 = require("../core");
|
|
5
9
|
const static_value_1 = require("./helpers/static-value");
|
|
6
10
|
const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
|
|
@@ -73,7 +77,7 @@ const getPropsValidators = (target) => {
|
|
|
73
77
|
const validators = () => Reflect.getOwnMetadata(exports.PropsValidatorsMetaKey, target);
|
|
74
78
|
if (validators())
|
|
75
79
|
return validators();
|
|
76
|
-
|
|
80
|
+
let result = [];
|
|
77
81
|
let _target = target;
|
|
78
82
|
do {
|
|
79
83
|
const ownValidator = (0, exports.getOwnPropsValidator)(_target);
|
|
@@ -81,6 +85,7 @@ const getPropsValidators = (target) => {
|
|
|
81
85
|
result.push(ownValidator);
|
|
82
86
|
_target = Reflect.getPrototypeOf(_target);
|
|
83
87
|
} while (_target !== null);
|
|
88
|
+
result = lodash_1.default.uniq(result);
|
|
84
89
|
Reflect.defineMetadata(exports.PropsValidatorsMetaKey, result, target);
|
|
85
90
|
return validators();
|
|
86
91
|
};
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ddd-node","version":"
|
|
1
|
+
{"name":"ddd-node","version":"16.0.1","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","nodejs-snowflake":"^2.0.1","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.15.0","uuid":"^9.0.1"}}
|