ddd-node 27.0.0 → 29.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/base/decorators/model.d.ts +2 -1
- package/dist/base/decorators/model.js +9 -7
- package/dist/base/decorators/prop.d.ts +2 -2
- package/dist/base/domain.js +3 -2
- package/dist/base/meta/model-props-map.d.ts +3 -3
- package/dist/base/meta/model-props-validator.d.ts +2 -2
- package/dist/base/model/model.builder.d.ts +3 -3
- package/dist/base/model/model.d.ts +3 -3
- package/dist/core/aggregate/aggregate-base/aggregate-event-publisher.interface.d.ts +4 -0
- package/dist/core/aggregate/aggregate-base/aggregate.d.ts +4 -4
- package/dist/core/aggregate/aggregate-base/index.d.ts +1 -1
- package/dist/core/aggregate/aggregate-base/index.js +1 -1
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +6 -6
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +2 -4
- package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +2 -2
- package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +6 -6
- package/dist/core/aggregate/state-aggregate/state-aggregate.js +2 -4
- package/dist/core/entity/entity.d.ts +3 -3
- package/dist/core/message/command/command.d.ts +3 -3
- package/dist/core/message/event/event.d.ts +3 -3
- package/dist/core/message/message-base/message.d.ts +3 -3
- package/dist/core/value-object/value-object.d.ts +3 -3
- package/package.json +3 -3
- package/dist/core/aggregate/aggregate-base/aggregate-event-dispatcher.interface.d.ts +0 -4
- package/dist/package.json +0 -1
- /package/dist/core/aggregate/aggregate-base/{aggregate-event-dispatcher.interface.js → aggregate-event-publisher.interface.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyModel, ModelClass } from "../model";
|
|
2
1
|
import { ModelPropsValidator } from "../meta";
|
|
2
|
+
import { AnyModel, ModelClass } from "../model";
|
|
3
3
|
export type ModelOptions<T extends AnyModel = AnyModel> = {
|
|
4
4
|
name?: string;
|
|
5
5
|
version?: number;
|
|
@@ -7,6 +7,7 @@ export type ModelOptions<T extends AnyModel = AnyModel> = {
|
|
|
7
7
|
propsValidator?: ModelPropsValidator<T>;
|
|
8
8
|
autoRegisterModel?: boolean;
|
|
9
9
|
};
|
|
10
|
+
export declare const DEFAULT_MODEL_OPTIONS: ModelOptions;
|
|
10
11
|
export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(options?: ModelOptions<I>): any;
|
|
11
12
|
export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(name: string, options?: ModelOptions<I>): any;
|
|
12
13
|
export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(name: string, version: number, options?: ModelOptions<I>): any;
|
|
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Model = void 0;
|
|
6
|
+
exports.Model = exports.DEFAULT_MODEL_OPTIONS = void 0;
|
|
7
7
|
const lodash_1 = __importDefault(require("lodash"));
|
|
8
8
|
const domain_1 = require("../domain");
|
|
9
9
|
const meta_1 = require("../meta");
|
|
10
|
+
exports.DEFAULT_MODEL_OPTIONS = {
|
|
11
|
+
autoRegisterModel: true,
|
|
12
|
+
};
|
|
10
13
|
function Model(p1, p2, p3) {
|
|
11
|
-
const defaultModelOptions =
|
|
12
|
-
autoRegisterModel: true,
|
|
13
|
-
};
|
|
14
|
+
const defaultModelOptions = lodash_1.default.clone(exports.DEFAULT_MODEL_OPTIONS);
|
|
14
15
|
let modelOptions = {};
|
|
15
16
|
if (p1 && !p2 && !p3) {
|
|
16
17
|
if (typeof p1 === "string")
|
|
@@ -41,10 +42,11 @@ function Model(p1, p2, p3) {
|
|
|
41
42
|
(0, meta_1.defineModelDomain)(target, modelOptions.domain);
|
|
42
43
|
if (modelOptions?.autoRegisterModel) {
|
|
43
44
|
const domainName = (0, meta_1.getModelDomain)(target);
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
const domainManager = domain_1.DomainManager.instance();
|
|
46
|
+
if (!domainManager.hasDomain(domainName)) {
|
|
47
|
+
domainManager.addDomain(new domain_1.Domain(domainName));
|
|
46
48
|
}
|
|
47
|
-
const domain =
|
|
49
|
+
const domain = domainManager.getDomain(domainName);
|
|
48
50
|
domain.modelRegistry.registerModel(target);
|
|
49
51
|
}
|
|
50
52
|
if (modelOptions?.propsValidator)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AnyModel,
|
|
2
|
-
export declare const Prop: <T extends AnyModel>(propTargetKey?: keyof
|
|
1
|
+
import { AnyModel, InferredProps } from "../model";
|
|
2
|
+
export declare const Prop: <T extends AnyModel>(propTargetKey?: keyof InferredProps<T> | undefined) => (target: T, key: PropertyKey) => void;
|
package/dist/base/domain.js
CHANGED
|
@@ -15,9 +15,10 @@ class DomainMap extends Map {
|
|
|
15
15
|
exports.DomainMap = DomainMap;
|
|
16
16
|
class DomainManager {
|
|
17
17
|
static instance() {
|
|
18
|
-
if (!this._instance)
|
|
18
|
+
if (!this._instance) {
|
|
19
19
|
this._instance = new DomainManager();
|
|
20
|
-
|
|
20
|
+
this._instance.addDomain(new Domain(exports.DEFAULT_DOMAIN));
|
|
21
|
+
}
|
|
21
22
|
return this._instance;
|
|
22
23
|
}
|
|
23
24
|
constructor() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AnyModel,
|
|
2
|
-
export declare class ModelPropsMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, keyof
|
|
1
|
+
import { AnyModel, InferredProps } from "../model";
|
|
2
|
+
export declare class ModelPropsMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, keyof InferredProps<T>> {
|
|
3
3
|
}
|
|
4
4
|
export declare const getOwnModelPropsMap: <T extends AnyModel = AnyModel>(target: object) => ModelPropsMap<T>;
|
|
5
|
-
export declare const defineModelProp: <T extends AnyModel = AnyModel>(target: object, key: PropertyKey, propTargetKey?: keyof
|
|
5
|
+
export declare const defineModelProp: <T extends AnyModel = AnyModel>(target: object, key: PropertyKey, propTargetKey?: keyof InferredProps<T> | undefined) => void;
|
|
6
6
|
export declare const getModelPropsMap: <T extends AnyModel = AnyModel>(target: object) => ModelPropsMap<T>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyModel,
|
|
2
|
-
export type ModelPropsValidator<T extends AnyModel = AnyModel> = (props:
|
|
1
|
+
import { AnyModel, InferredProps } from "../model";
|
|
2
|
+
export type ModelPropsValidator<T extends AnyModel = AnyModel> = (props: InferredProps<T>) => void;
|
|
3
3
|
export declare const defineModelPropsValidator: <T extends AnyModel>(target: object, validator: ModelPropsValidator<T>) => void;
|
|
4
4
|
export declare const getOwnModelPropsValidator: <T extends AnyModel>(target: object) => ModelPropsValidator<T> | undefined;
|
|
5
5
|
export declare const ModelPropsValidatorsMetaKey: unique symbol;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AnyModel,
|
|
1
|
+
import { AnyModel, InferredProps } from "./model";
|
|
2
2
|
export interface IModelBuilder<T extends AnyModel = AnyModel> {
|
|
3
3
|
buildSafe(): T | null;
|
|
4
4
|
build(): T;
|
|
5
5
|
}
|
|
6
6
|
export declare abstract class ModelBuilder<T extends AnyModel = AnyModel> implements IModelBuilder<T> {
|
|
7
|
-
protected props?:
|
|
8
|
-
withProps(props:
|
|
7
|
+
protected props?: InferredProps<T>;
|
|
8
|
+
withProps(props: InferredProps<T>): this;
|
|
9
9
|
abstract build(): T;
|
|
10
10
|
buildSafe(): T | null;
|
|
11
11
|
}
|
|
@@ -33,8 +33,8 @@ export declare class ModelBase<P extends Props> {
|
|
|
33
33
|
protected initializeProps(props: P): void;
|
|
34
34
|
}
|
|
35
35
|
export type AnyModel = ModelBase<Props>;
|
|
36
|
-
export type
|
|
37
|
-
export interface ModelClass<T extends AnyModel = AnyModel> extends Class<T>, ClassStatic<typeof ModelBase<
|
|
36
|
+
export type InferredProps<T extends AnyModel> = T extends ModelBase<infer P> ? P : never;
|
|
37
|
+
export interface ModelClass<T extends AnyModel = AnyModel> extends Class<T>, ClassStatic<typeof ModelBase<InferredProps<T>>> {
|
|
38
38
|
}
|
|
39
|
-
export interface AbstractModelClass<T extends AnyModel = AnyModel> extends AbstractClass<T>, ClassStatic<typeof ModelBase<
|
|
39
|
+
export interface AbstractModelClass<T extends AnyModel = AnyModel> extends AbstractClass<T>, ClassStatic<typeof ModelBase<InferredProps<T>>> {
|
|
40
40
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Props,
|
|
1
|
+
import { Props, InferredProps } from "../../../base";
|
|
2
2
|
import { ModelWithId, ModelWithIdMetadata } from "../../model-with-id";
|
|
3
3
|
import { AnyEvent, EventClassWithTypedConstructor, EventSource } from "../../message";
|
|
4
|
-
import {
|
|
4
|
+
import { IAggregateEventPublisher } from "./aggregate-event-publisher.interface";
|
|
5
5
|
export interface AggregateMetadata extends ModelWithIdMetadata {
|
|
6
6
|
version: number;
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ export declare abstract class AggregateBase<P extends Props> extends ModelWithId
|
|
|
11
11
|
abstract version(): number;
|
|
12
12
|
metadata(): AggregateMetadata;
|
|
13
13
|
protected createEventSource(): EventSource;
|
|
14
|
-
protected newEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props:
|
|
15
|
-
abstract
|
|
14
|
+
protected newEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: InferredProps<E>): E;
|
|
15
|
+
abstract publishEvents(publisher: IAggregateEventPublisher): void;
|
|
16
16
|
}
|
|
17
17
|
export type AnyAggregate = AggregateBase<Props>;
|
|
@@ -16,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./aggregate"), exports);
|
|
18
18
|
__exportStar(require("./aggregate.builder"), exports);
|
|
19
|
-
__exportStar(require("./aggregate-event-
|
|
19
|
+
__exportStar(require("./aggregate-event-publisher.interface"), exports);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import { Props,
|
|
2
|
+
import { Props, InferredProps } from "../../../base";
|
|
3
3
|
import { ClassStatic } from "../../../types";
|
|
4
4
|
import { AnyCommand, AnyEvent, EventClassWithTypedConstructor } from "../../message";
|
|
5
5
|
import { AggregateBase, AggregateMetadata } from "../aggregate-base";
|
|
6
|
-
import {
|
|
6
|
+
import { IAggregateEventPublisher } from "../aggregate-base";
|
|
7
7
|
import { EventSourcedAggregateModelDescriptor } from "./event-sourced-aggregate-model-descriptor";
|
|
8
8
|
import { Snapshot, SnapshotMetadata } from "./snapshot";
|
|
9
9
|
import { EventSourcedAggregateBuilder } from ".";
|
|
@@ -32,18 +32,18 @@ export declare class EventSourcedAggregateBase<P extends Props> extends Aggregat
|
|
|
32
32
|
applyPastEvents(pastEvents: AnyEvent[]): void;
|
|
33
33
|
applyEvent<E extends AnyEvent>(event: E): void;
|
|
34
34
|
applyEvents(events: AnyEvent[]): void;
|
|
35
|
-
applyNewEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props:
|
|
35
|
+
applyNewEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: InferredProps<E>): void;
|
|
36
36
|
getCommandHandler<C extends AnyCommand>(command: C): CommandHandler<C, AnyEvent | AnyEvent[]>;
|
|
37
37
|
handleCommand<C extends AnyCommand>(command: C): AnyEvent[];
|
|
38
38
|
snapMetadata(): SnapshotMetadata;
|
|
39
39
|
snap(): Snapshot<this>;
|
|
40
40
|
protected archiveEvents(): void;
|
|
41
|
-
|
|
41
|
+
publishEvents(publisher: IAggregateEventPublisher): void;
|
|
42
42
|
}
|
|
43
43
|
export type AnyEventSourcedAggregate = EventSourcedAggregateBase<Props>;
|
|
44
|
-
export interface EventSourcedAggregateClass<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventSourcedAggregateBase<
|
|
44
|
+
export interface EventSourcedAggregateClass<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventSourcedAggregateBase<InferredProps<T>>> {
|
|
45
45
|
}
|
|
46
|
-
export interface EventSourcedAggregateClassWithTypedConstructor<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate> extends EventSourcedAggregateClass<T, ConstructorParameters<typeof EventSourcedAggregateBase<
|
|
46
|
+
export interface EventSourcedAggregateClassWithTypedConstructor<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate> extends EventSourcedAggregateClass<T, ConstructorParameters<typeof EventSourcedAggregateBase<InferredProps<T>>>> {
|
|
47
47
|
}
|
|
48
48
|
export type EventApplier<T extends AnyEvent = AnyEvent> = (event: T) => void;
|
|
49
49
|
export type CommandHandler<T extends AnyCommand = AnyCommand, U extends AnyEvent | AnyEvent[] = AnyEvent | AnyEvent[]> = (command: T) => U;
|
|
@@ -133,10 +133,8 @@ class EventSourcedAggregateBase extends aggregate_base_1.AggregateBase {
|
|
|
133
133
|
this._events = [];
|
|
134
134
|
this._pastEvents.push(...events);
|
|
135
135
|
}
|
|
136
|
-
|
|
137
|
-
this.events()
|
|
138
|
-
dispatcher.dispatch(event);
|
|
139
|
-
});
|
|
136
|
+
publishEvents(publisher) {
|
|
137
|
+
publisher.publish(this.events());
|
|
140
138
|
this.archiveEvents();
|
|
141
139
|
}
|
|
142
140
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InferredProps } from "../../../base";
|
|
2
2
|
import { AnyEventSourcedAggregate, EventSourceAggregateMetadata } from "./event-sourced-aggregate";
|
|
3
3
|
export interface SnapshotMetadata extends EventSourceAggregateMetadata {
|
|
4
4
|
}
|
|
5
5
|
export interface Snapshot<T extends AnyEventSourcedAggregate> {
|
|
6
6
|
metadata: SnapshotMetadata;
|
|
7
|
-
props:
|
|
7
|
+
props: InferredProps<T>;
|
|
8
8
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import { Props,
|
|
2
|
+
import { Props, InferredProps } from "../../../base";
|
|
3
3
|
import { ClassStatic } from "../../../types";
|
|
4
4
|
import { AnyEvent, EventClassWithTypedConstructor } from "../../message";
|
|
5
|
-
import { AggregateBase, AggregateMetadata,
|
|
5
|
+
import { AggregateBase, AggregateMetadata, IAggregateEventPublisher } from "../aggregate-base";
|
|
6
6
|
import { StateAggregateBuilder } from ".";
|
|
7
7
|
export interface StateAggregateMetadata extends AggregateMetadata {
|
|
8
8
|
}
|
|
@@ -14,12 +14,12 @@ export declare class StateAggregateBase<P extends Props> extends AggregateBase<P
|
|
|
14
14
|
version(): number;
|
|
15
15
|
events(): AnyEvent[];
|
|
16
16
|
protected recordEvent<E extends AnyEvent>(event: E): void;
|
|
17
|
-
protected recordEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props:
|
|
17
|
+
protected recordEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: InferredProps<E>): void;
|
|
18
18
|
clearEvents(): void;
|
|
19
|
-
|
|
19
|
+
publishEvents(publisher: IAggregateEventPublisher): void;
|
|
20
20
|
}
|
|
21
21
|
export type AnyStateAggregate = StateAggregateBase<Props>;
|
|
22
|
-
export interface StateAggregateClass<T extends AnyStateAggregate = AnyStateAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof StateAggregateBase<
|
|
22
|
+
export interface StateAggregateClass<T extends AnyStateAggregate = AnyStateAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof StateAggregateBase<InferredProps<T>>> {
|
|
23
23
|
}
|
|
24
|
-
export interface StateAggregateClassWithTypedConstructor<T extends AnyStateAggregate = AnyStateAggregate> extends StateAggregateClass<T, ConstructorParameters<typeof StateAggregateBase<
|
|
24
|
+
export interface StateAggregateClassWithTypedConstructor<T extends AnyStateAggregate = AnyStateAggregate> extends StateAggregateClass<T, ConstructorParameters<typeof StateAggregateBase<InferredProps<T>>>> {
|
|
25
25
|
}
|
|
@@ -33,10 +33,8 @@ class StateAggregateBase extends aggregate_base_1.AggregateBase {
|
|
|
33
33
|
clearEvents() {
|
|
34
34
|
this._events = [];
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
this.events()
|
|
38
|
-
dispatcher.dispatch(event);
|
|
39
|
-
});
|
|
36
|
+
publishEvents(publisher) {
|
|
37
|
+
publisher.publish(this.events());
|
|
40
38
|
this.clearEvents();
|
|
41
39
|
}
|
|
42
40
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import { Props,
|
|
2
|
+
import { Props, InferredProps } from "../../base";
|
|
3
3
|
import { ClassStatic } from "../../types";
|
|
4
4
|
import { ModelWithId, ModelWithIdMetadata } from "../model-with-id";
|
|
5
5
|
import { EntityBuilder } from ".";
|
|
@@ -10,9 +10,9 @@ export declare class EntityBase<P extends Props> extends ModelWithId<P> {
|
|
|
10
10
|
constructor(metadata: EntityMetadata, props: P);
|
|
11
11
|
}
|
|
12
12
|
export type AnyEntity = EntityBase<Props>;
|
|
13
|
-
export interface EntityClass<T extends AnyEntity = AnyEntity, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EntityBase<
|
|
13
|
+
export interface EntityClass<T extends AnyEntity = AnyEntity, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EntityBase<InferredProps<T>>> {
|
|
14
14
|
}
|
|
15
|
-
export interface EntityClassWithTypedConstructor<T extends AnyEntity = AnyEntity> extends EntityClass<T, ConstructorParameters<typeof EntityBase<
|
|
15
|
+
export interface EntityClassWithTypedConstructor<T extends AnyEntity = AnyEntity> extends EntityClass<T, ConstructorParameters<typeof EntityBase<InferredProps<T>>>> {
|
|
16
16
|
}
|
|
17
17
|
export interface EntityClassWithProps<P extends Props> extends EntityClass<EntityBase<P>> {
|
|
18
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
2
|
import { CommandType } from "../../../meta";
|
|
3
|
-
import { Props,
|
|
3
|
+
import { Props, InferredProps } from "../../../base";
|
|
4
4
|
import { ClassStatic } from "../../../types";
|
|
5
5
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
6
6
|
import { CommandModelDescriptor } from "./command-model-descriptor";
|
|
@@ -18,7 +18,7 @@ export declare class CommandBase<P extends Props> extends MessageBase<P> {
|
|
|
18
18
|
commandType(): string;
|
|
19
19
|
}
|
|
20
20
|
export type AnyCommand = CommandBase<Props>;
|
|
21
|
-
export interface CommandClass<T extends AnyCommand = AnyCommand, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof CommandBase<
|
|
21
|
+
export interface CommandClass<T extends AnyCommand = AnyCommand, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof CommandBase<InferredProps<T>>> {
|
|
22
22
|
}
|
|
23
|
-
export interface CommandClassWithTypedConstructor<T extends AnyCommand = AnyCommand> extends CommandClass<T, ConstructorParameters<typeof CommandBase<
|
|
23
|
+
export interface CommandClassWithTypedConstructor<T extends AnyCommand = AnyCommand> extends CommandClass<T, ConstructorParameters<typeof CommandBase<InferredProps<T>>>> {
|
|
24
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
2
|
import { EventType } from "../../../meta";
|
|
3
|
-
import { Props,
|
|
3
|
+
import { Props, InferredProps } from "../../../base";
|
|
4
4
|
import { ClassStatic } from "../../../types";
|
|
5
5
|
import { Id } from "../../model-with-id";
|
|
6
6
|
import { MessageBase, MessageMetadata } from "../message-base";
|
|
@@ -29,7 +29,7 @@ export declare class EventBase<P extends Props> extends MessageBase<P> {
|
|
|
29
29
|
}>;
|
|
30
30
|
}
|
|
31
31
|
export type AnyEvent = EventBase<Props>;
|
|
32
|
-
export interface EventClass<T extends AnyEvent = AnyEvent, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventBase<
|
|
32
|
+
export interface EventClass<T extends AnyEvent = AnyEvent, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventBase<InferredProps<T>>> {
|
|
33
33
|
}
|
|
34
|
-
export interface EventClassWithTypedConstructor<T extends AnyEvent = AnyEvent> extends EventClass<T, ConstructorParameters<typeof EventBase<
|
|
34
|
+
export interface EventClassWithTypedConstructor<T extends AnyEvent = AnyEvent> extends EventClass<T, ConstructorParameters<typeof EventBase<InferredProps<T>>>> {
|
|
35
35
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import { Props,
|
|
2
|
+
import { Props, InferredProps } from "../../../base";
|
|
3
3
|
import { ClassStatic } from "../../../types";
|
|
4
4
|
import { ModelWithId, ModelWithIdMetadata } from "../../model-with-id";
|
|
5
5
|
export interface CorrelationIds {
|
|
@@ -25,7 +25,7 @@ export declare class MessageBase<P extends Props> extends ModelWithId<P> {
|
|
|
25
25
|
setCorrelationIds(correlationIds: CorrelationIds): void;
|
|
26
26
|
}
|
|
27
27
|
export type AnyMessage = MessageBase<Props>;
|
|
28
|
-
export interface MessageClass<T extends AnyMessage = AnyMessage, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof MessageBase<
|
|
28
|
+
export interface MessageClass<T extends AnyMessage = AnyMessage, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof MessageBase<InferredProps<T>>> {
|
|
29
29
|
}
|
|
30
|
-
export interface MessageClassWithTypedConstructor<T extends AnyMessage = AnyMessage> extends MessageClass<T, ConstructorParameters<typeof MessageBase<
|
|
30
|
+
export interface MessageClassWithTypedConstructor<T extends AnyMessage = AnyMessage> extends MessageClass<T, ConstructorParameters<typeof MessageBase<InferredProps<T>>>> {
|
|
31
31
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class } from "type-fest";
|
|
2
|
-
import { ModelBase, Props,
|
|
2
|
+
import { ModelBase, Props, InferredProps } from "../../base";
|
|
3
3
|
import { ClassStatic } from "../../types";
|
|
4
4
|
export declare class ValueObjectBase<P extends Props> extends ModelBase<P> {
|
|
5
5
|
constructor(props: P);
|
|
@@ -11,7 +11,7 @@ export declare class ValueObjectBase<P extends Props> extends ModelBase<P> {
|
|
|
11
11
|
protected getEqualityObject(): any;
|
|
12
12
|
}
|
|
13
13
|
export type AnyValueObject = ValueObjectBase<Props>;
|
|
14
|
-
export interface ValueObjectClass<T extends AnyValueObject = AnyValueObject> extends Class<T>, ClassStatic<typeof ValueObjectBase<
|
|
14
|
+
export interface ValueObjectClass<T extends AnyValueObject = AnyValueObject> extends Class<T>, ClassStatic<typeof ValueObjectBase<InferredProps<T>>> {
|
|
15
15
|
}
|
|
16
|
-
export interface ValueObjectClassWithTypedConstructor<T extends AnyValueObject = AnyValueObject> extends Class<T, ConstructorParameters<typeof ValueObjectBase<
|
|
16
|
+
export interface ValueObjectClassWithTypedConstructor<T extends AnyValueObject = AnyValueObject> extends Class<T, ConstructorParameters<typeof ValueObjectBase<InferredProps<T>>>> {
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddd-node",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "29.0.0",
|
|
4
4
|
"description": "Domain Driven Design base for NodeJs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "rm -rf dist && tsc -p src/tsconfig.build.json && tsc-alias -p src/tsconfig.build.json
|
|
9
|
+
"build": "rm -rf dist && tsc -p src/tsconfig.build.json && tsc-alias -p src/tsconfig.build.json",
|
|
10
10
|
"test": "mocha"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"chai-deep-match": "^1.2.1",
|
|
35
35
|
"ddd-node": "file:dist",
|
|
36
36
|
"mocha": "^10.4.0",
|
|
37
|
-
"ts-node": "^10.9.1",
|
|
38
37
|
"tsconfig-paths": "^4.2.0",
|
|
39
38
|
"typescript": "^5.2.2"
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
41
|
"lodash": "^4.17.21",
|
|
43
42
|
"reflect-metadata": "^0.1.13",
|
|
43
|
+
"ts-node": "^10.9.2",
|
|
44
44
|
"tsc-alias": "^1.8.8",
|
|
45
45
|
"type-fest": "^4.20.1",
|
|
46
46
|
"uuid": "^9.0.1"
|
package/dist/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"name":"ddd-node","version":"27.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"}}
|