ddd-node 18.0.0 → 20.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 +7 -0
- package/dist/core/aggregate/aggregate-base/aggregate.builder.js +18 -0
- package/dist/core/aggregate/aggregate-base/aggregate.d.ts +16 -0
- package/dist/core/aggregate/{base.js → aggregate-base/aggregate.js} +12 -5
- package/dist/core/aggregate/aggregate-base/index.d.ts +2 -0
- package/dist/core/aggregate/aggregate-base/index.js +18 -0
- package/dist/core/aggregate/event-dispatcher.interface.d.ts +4 -0
- package/dist/core/aggregate/event-dispatcher.interface.js +2 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +12 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +35 -0
- package/dist/core/aggregate/{event-sourced-aggregate.d.ts → event-sourced-aggregate/event-sourced-aggregate.d.ts} +11 -17
- package/dist/core/aggregate/{event-sourced-aggregate.js → event-sourced-aggregate/event-sourced-aggregate.js} +26 -48
- 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.model-metadata.js +22 -0
- package/dist/core/aggregate/event-sourced-aggregate/index.d.ts +3 -0
- package/dist/core/aggregate/event-sourced-aggregate/index.js +19 -0
- package/dist/core/aggregate/index.d.ts +2 -0
- package/dist/core/aggregate/index.js +2 -0
- package/dist/core/aggregate/state-aggregate/index.d.ts +2 -0
- package/dist/core/aggregate/state-aggregate/index.js +18 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.builder.d.ts +7 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.builder.js +19 -0
- package/dist/core/aggregate/{state-aggregate.d.ts → state-aggregate/state-aggregate.d.ts} +5 -9
- package/dist/core/aggregate/{state-aggregate.js → state-aggregate/state-aggregate.js} +2 -8
- package/dist/core/aggregate/types.d.ts +3 -3
- package/dist/core/entity/entity.builder.d.ts +9 -0
- package/dist/core/entity/entity.builder.js +17 -0
- package/dist/core/{entity.d.ts → entity/entity.d.ts} +4 -5
- package/dist/core/entity/entity.js +26 -0
- package/dist/core/entity/index.d.ts +2 -0
- package/dist/core/entity/index.js +18 -0
- package/dist/core/enum/enum.builder.d.ts +9 -0
- package/dist/core/enum/enum.builder.js +20 -0
- package/dist/core/enum/enum.d.ts +21 -0
- package/dist/core/enum/enum.js +60 -0
- package/dist/core/enum/index.d.ts +2 -0
- package/dist/core/enum/index.js +18 -0
- package/dist/core/id/index.d.ts +1 -1
- package/dist/core/id/index.js +1 -1
- package/dist/core/index.d.ts +3 -5
- package/dist/core/index.js +3 -5
- package/dist/core/message/command/command.builder.d.ts +7 -0
- package/dist/core/message/command/command.builder.js +20 -0
- package/dist/core/message/{command.d.ts → command/command.d.ts} +10 -7
- package/dist/core/message/command/command.js +27 -0
- package/dist/core/message/command/index.d.ts +2 -0
- package/dist/core/message/command/index.js +18 -0
- package/dist/core/message/event/event.builder.d.ts +9 -0
- package/dist/core/message/event/event.builder.js +27 -0
- package/dist/core/message/{event.d.ts → event/event.d.ts} +13 -10
- package/dist/core/message/event/event.js +31 -0
- package/dist/core/message/event/index.d.ts +2 -0
- package/dist/core/message/event/index.js +18 -0
- package/dist/core/message/index.d.ts +1 -1
- package/dist/core/message/index.js +1 -1
- package/dist/core/message/message-base/index.d.ts +2 -0
- package/dist/core/message/message-base/index.js +18 -0
- package/dist/core/message/message-base/message.builder.d.ts +16 -0
- package/dist/core/message/message-base/message.builder.js +45 -0
- package/dist/core/message/message-base/message.d.ts +31 -0
- package/dist/core/message/message-base/message.js +47 -0
- package/dist/core/model-with-id/index.d.ts +2 -0
- package/dist/core/model-with-id/index.js +18 -0
- package/dist/core/model-with-id/model-with-id.builder.d.ts +11 -0
- package/dist/core/model-with-id/model-with-id.builder.js +22 -0
- package/dist/core/{model → model-with-id}/model-with-id.d.ts +1 -3
- package/dist/core/{model → model-with-id}/model-with-id.js +1 -10
- package/dist/core/value-object/index.d.ts +2 -0
- package/dist/core/value-object/index.js +18 -0
- package/dist/core/value-object/value-object.builder.d.ts +7 -0
- package/dist/core/value-object/value-object.builder.js +16 -0
- package/dist/core/{value-object.d.ts → value-object/value-object.d.ts} +2 -2
- package/dist/core/value-object/value-object.js +40 -0
- package/dist/decorators/aggregate-es/handle.js +1 -1
- package/dist/decorators/aggregate-es/when.js +1 -1
- package/dist/decorators/enum.d.ts +1 -1
- package/dist/decorators/enum.js +2 -2
- package/dist/decorators/index.d.ts +0 -2
- package/dist/decorators/index.js +0 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/meta/index.d.ts +0 -1
- package/dist/meta/index.js +0 -1
- package/dist/model/core/index.d.ts +2 -0
- package/dist/{core/model → model/core}/index.js +1 -1
- package/dist/model/core/model.builder.d.ts +11 -0
- package/dist/model/core/model.builder.js +18 -0
- package/dist/model/core/model.d.ts +41 -0
- package/dist/{core/model → model/core}/model.js +36 -57
- package/dist/{decorators/model → model/decorators}/index.d.ts +1 -1
- package/dist/{decorators/model → model/decorators}/index.js +1 -1
- package/dist/{decorators/model → model/decorators}/model.d.ts +2 -2
- package/dist/{decorators/model → model/decorators}/model.js +5 -5
- package/dist/model/decorators/mutable.d.ts +2 -0
- package/dist/model/decorators/mutable.js +10 -0
- package/dist/{decorators/model → model/decorators}/prop.d.ts +1 -1
- package/dist/{decorators/model → model/decorators}/prop.js +1 -1
- package/dist/model/decorators/static.d.ts +3 -0
- package/dist/{decorators/model → model/decorators}/static.js +1 -1
- package/dist/model/index.d.ts +5 -0
- package/dist/model/index.js +21 -0
- package/dist/{meta/model → model/meta}/index.d.ts +1 -0
- package/dist/{meta/model → model/meta}/index.js +1 -0
- package/dist/{meta/model → model/meta}/model-domain.d.ts +1 -1
- package/dist/{meta/model → model/meta}/model-id.d.ts +1 -1
- package/dist/model/meta/model-mutable.d.ts +2 -0
- package/dist/model/meta/model-mutable.js +14 -0
- package/dist/{meta/model → model/meta}/model-name.d.ts +1 -1
- package/dist/{meta/model → model/meta}/model-props-map.d.ts +4 -4
- package/dist/{meta/model → model/meta}/model-props-map.js +1 -1
- package/dist/{meta/model → model/meta}/model-props-validator.d.ts +1 -1
- package/dist/{meta/model → model/meta}/model-static-values.d.ts +1 -1
- package/dist/{meta/model → model/meta}/model-version.d.ts +1 -1
- package/dist/{core → model}/model-registry.d.ts +5 -5
- package/dist/{core → model}/model-registry.js +5 -5
- package/dist/package.json +1 -1
- package/package.json +2 -2
- package/dist/core/aggregate/base.d.ts +0 -12
- package/dist/core/entity.js +0 -20
- package/dist/core/enum.d.ts +0 -18
- package/dist/core/enum.js +0 -45
- package/dist/core/message/command.js +0 -25
- package/dist/core/message/event.js +0 -30
- package/dist/core/message/message.d.ts +0 -23
- package/dist/core/message/message.js +0 -33
- package/dist/core/model/index.d.ts +0 -2
- package/dist/core/model/model.d.ts +0 -45
- package/dist/core/value-object.js +0 -27
- package/dist/decorators/id.d.ts +0 -2
- package/dist/decorators/id.js +0 -10
- package/dist/decorators/model/static.d.ts +0 -3
- /package/dist/core/id/{common → services}/index.d.ts +0 -0
- /package/dist/core/id/{common → services}/index.js +0 -0
- /package/dist/core/id/{common → services}/snowflake.d.ts +0 -0
- /package/dist/core/id/{common → services}/snowflake.js +0 -0
- /package/dist/core/id/{common → services}/uuid4.d.ts +0 -0
- /package/dist/core/id/{common → services}/uuid4.js +0 -0
- /package/dist/{core/model → model/core}/errors.d.ts +0 -0
- /package/dist/{core/model → model/core}/errors.js +0 -0
- /package/dist/{core → model}/domain.d.ts +0 -0
- /package/dist/{core → model}/domain.js +0 -0
- /package/dist/{meta/model → model/meta}/model-domain.js +0 -0
- /package/dist/{meta/model → model/meta}/model-id.js +0 -0
- /package/dist/{meta/model → model/meta}/model-name.js +0 -0
- /package/dist/{meta/model → model/meta}/model-props-validator.js +0 -0
- /package/dist/{meta/model → model/meta}/model-static-values.js +0 -0
- /package/dist/{meta/model → model/meta}/model-version.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AnyModel, PropsOf } from "
|
|
1
|
+
import { AnyModel, PropsOf } from "../core";
|
|
2
2
|
export declare class PropsMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, keyof PropsOf<T>> {
|
|
3
3
|
}
|
|
4
|
-
export declare const getOwnPropsMap: <T extends AnyModel = AnyModel>(target:
|
|
5
|
-
export declare const defineProp: <T extends AnyModel = AnyModel>(target:
|
|
6
|
-
export declare const getPropsMap: <T extends AnyModel = AnyModel>(target:
|
|
4
|
+
export declare const getOwnPropsMap: <T extends AnyModel = AnyModel>(target: object) => PropsMap<T>;
|
|
5
|
+
export declare const defineProp: <T extends AnyModel = AnyModel>(target: object, key: PropertyKey, propTargetKey?: keyof PropsOf<T> | undefined) => void;
|
|
6
|
+
export declare const getPropsMap: <T extends AnyModel = AnyModel>(target: object) => PropsMap<T>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPropsMap = exports.defineProp = exports.getOwnPropsMap = exports.PropsMap = void 0;
|
|
4
|
-
const core_1 = require("
|
|
4
|
+
const core_1 = require("../core");
|
|
5
5
|
const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
|
|
6
6
|
class PropsMap extends Map {
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyModel, PropsOf } from "
|
|
1
|
+
import { AnyModel, PropsOf } from "../core";
|
|
2
2
|
export type PropsValidator<T extends AnyModel = AnyModel> = (props: PropsOf<T>) => void;
|
|
3
3
|
export declare const definePropsValidator: <T extends AnyModel>(target: object, validator: PropsValidator<T>) => void;
|
|
4
4
|
export declare const getOwnPropsValidator: <T extends AnyModel>(target: object) => PropsValidator<T> | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AnyModel, ModelClass } from "./core";
|
|
2
|
+
import { ModelId, ModelName, ModelVersion } from "./meta";
|
|
3
3
|
export declare class ModelVersionMap<T extends AnyModel = AnyModel> extends Map<ModelVersion, ModelClass<T>> {
|
|
4
4
|
readonly modelName: ModelName;
|
|
5
5
|
constructor(modelName: ModelName);
|
|
@@ -8,9 +8,9 @@ export declare class ModelMap<T extends AnyModel = AnyModel> extends Map<ModelNa
|
|
|
8
8
|
}
|
|
9
9
|
export declare class ModelRegistry {
|
|
10
10
|
private readonly modelMap;
|
|
11
|
-
getModelVersionMap(modelName: ModelName): ModelVersionMap<
|
|
12
|
-
getModel(modelName: ModelName, modelVersion?: ModelVersion): ModelClass<
|
|
13
|
-
getModelByModelId(modelId: ModelId): ModelClass<
|
|
11
|
+
getModelVersionMap<T extends AnyModel = AnyModel>(modelName: ModelName): ModelVersionMap<T>;
|
|
12
|
+
getModel<T extends AnyModel = AnyModel>(modelName: ModelName, modelVersion?: ModelVersion): ModelClass<T> | undefined;
|
|
13
|
+
getModelByModelId<T extends AnyModel = AnyModel>(modelId: ModelId): ModelClass<T> | undefined;
|
|
14
14
|
hasRegisteredModel(modelName: ModelName, modelVersion: ModelVersion): boolean;
|
|
15
15
|
hasRegisteredModel(model: ModelClass): boolean;
|
|
16
16
|
registerModel(modelClass: ModelClass): this;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModelRegistry = exports.ModelMap = exports.ModelVersionMap = void 0;
|
|
4
|
-
const meta_1 = require("
|
|
4
|
+
const meta_1 = require("./meta");
|
|
5
5
|
class ModelVersionMap extends Map {
|
|
6
6
|
constructor(modelName) {
|
|
7
7
|
super();
|
|
@@ -37,14 +37,14 @@ class ModelRegistry {
|
|
|
37
37
|
modelVersion = p2;
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
modelName = p1.
|
|
41
|
-
modelVersion = p1.
|
|
40
|
+
modelName = p1.modelMetadata().modelName;
|
|
41
|
+
modelVersion = p1.modelMetadata().modelVersion;
|
|
42
42
|
}
|
|
43
43
|
return Boolean(this.getModel(modelName, modelVersion));
|
|
44
44
|
}
|
|
45
45
|
registerModel(modelClass) {
|
|
46
|
-
const modelName = modelClass.
|
|
47
|
-
const modelVersion = modelClass.
|
|
46
|
+
const modelName = modelClass.modelMetadata().modelName;
|
|
47
|
+
const modelVersion = modelClass.modelMetadata().modelVersion;
|
|
48
48
|
if (this.hasRegisteredModel(modelName, modelVersion))
|
|
49
49
|
throw new Error(`Model ${modelName} with version ${modelVersion} has been registered`);
|
|
50
50
|
const modelVersionMap = this.getModelVersionMap(modelName);
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ddd-node","version":"
|
|
1
|
+
{"name":"ddd-node","version":"20.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","nodejs-snowflake":"^2.0.1","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddd-node",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"description": "Domain Driven Design base for NodeJs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"nodejs-snowflake": "^2.0.1",
|
|
44
44
|
"reflect-metadata": "^0.1.13",
|
|
45
45
|
"tsc-alias": "^1.8.8",
|
|
46
|
-
"type-fest": "^4.
|
|
46
|
+
"type-fest": "^4.20.1",
|
|
47
47
|
"uuid": "^9.0.1"
|
|
48
48
|
},
|
|
49
49
|
"mocha": {
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { EntityBase, EntityMetadata } from "../entity";
|
|
2
|
-
import { AnyEvent, EventClassWithTypedConstructor } from "../message";
|
|
3
|
-
import { Props, PropsOf } from "../model";
|
|
4
|
-
export interface AggregateMetadata extends EntityMetadata {
|
|
5
|
-
version: number;
|
|
6
|
-
}
|
|
7
|
-
export declare abstract class AggregateBase<P extends Props> extends EntityBase<P> {
|
|
8
|
-
protected readonly _version: number;
|
|
9
|
-
constructor(metadata: AggregateMetadata, props?: P);
|
|
10
|
-
abstract version(): number;
|
|
11
|
-
protected newEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: PropsOf<E>): E;
|
|
12
|
-
}
|
package/dist/core/entity.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityBase = void 0;
|
|
4
|
-
const model_1 = require("./model");
|
|
5
|
-
class EntityBase extends model_1.ModelWithId {
|
|
6
|
-
constructor(metadata, props) {
|
|
7
|
-
super(metadata.id);
|
|
8
|
-
if (props)
|
|
9
|
-
this.initializeProps(props);
|
|
10
|
-
}
|
|
11
|
-
static mutable() {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
static newEntity(props, id) {
|
|
15
|
-
return new this({
|
|
16
|
-
id: this.id(id),
|
|
17
|
-
}, props);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.EntityBase = EntityBase;
|
package/dist/core/enum.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ClassStatic } from "../types";
|
|
2
|
-
import { Class } from "type-fest";
|
|
3
|
-
import { ModelBase } from "./model";
|
|
4
|
-
export type EnumValue = string | number;
|
|
5
|
-
export interface EnumProps {
|
|
6
|
-
value: EnumValue;
|
|
7
|
-
}
|
|
8
|
-
export declare class EnumBase extends ModelBase<EnumProps> {
|
|
9
|
-
static values(): EnumBase[];
|
|
10
|
-
static parseSafe<T extends EnumBase>(this: EnumClass<T>, providedValue: EnumValue): T | undefined;
|
|
11
|
-
static parse<T extends EnumBase>(this: EnumClass<T>, providedValue: EnumValue): T;
|
|
12
|
-
constructor(value: EnumValue);
|
|
13
|
-
props(): EnumProps;
|
|
14
|
-
get value(): EnumValue;
|
|
15
|
-
equals<T extends EnumBase>(other: T): boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface EnumClass<T extends EnumBase = EnumBase> extends Class<T>, ClassStatic<typeof EnumBase> {
|
|
18
|
-
}
|
package/dist/core/enum.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EnumBase = void 0;
|
|
4
|
-
const model_1 = require("./model");
|
|
5
|
-
class EnumBase extends model_1.ModelBase {
|
|
6
|
-
static values() {
|
|
7
|
-
return Array.from(this.ownStaticValues().values()).map((staticValue) => staticValue.value);
|
|
8
|
-
}
|
|
9
|
-
static parseSafe(providedValue) {
|
|
10
|
-
let key = undefined;
|
|
11
|
-
this.ownStaticValues().forEach((staticValue, staticValueKey) => {
|
|
12
|
-
if (staticValue.value instanceof this) {
|
|
13
|
-
const staticEnum = staticValue.value;
|
|
14
|
-
if (staticEnum.value === providedValue && !key) {
|
|
15
|
-
key = staticValueKey;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
if (key)
|
|
20
|
-
return this.ownStaticValues().get(key)?.value;
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
static parse(providedValue) {
|
|
24
|
-
const parsedEnum = this.parseSafe(providedValue);
|
|
25
|
-
if (!parsedEnum)
|
|
26
|
-
throw new Error(`Invalid provided value for enum ${this.modelName()}`);
|
|
27
|
-
return parsedEnum;
|
|
28
|
-
}
|
|
29
|
-
constructor(value) {
|
|
30
|
-
super();
|
|
31
|
-
this.initializeProps({ value });
|
|
32
|
-
}
|
|
33
|
-
props() {
|
|
34
|
-
return super.props();
|
|
35
|
-
}
|
|
36
|
-
get value() {
|
|
37
|
-
return this._props.value;
|
|
38
|
-
}
|
|
39
|
-
equals(other) {
|
|
40
|
-
const equalType = other instanceof this.constructor;
|
|
41
|
-
const equalValue = other.value === this.value;
|
|
42
|
-
return equalType && equalValue;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.EnumBase = EnumBase;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CommandBase = void 0;
|
|
4
|
-
const message_1 = require("./message");
|
|
5
|
-
const meta_1 = require("../../meta");
|
|
6
|
-
class CommandBase extends message_1.MessageBase {
|
|
7
|
-
constructor(metadata, props) {
|
|
8
|
-
super({ ...metadata, messageType: CommandBase.COMMAND_MESSAGE_TYPE }, props);
|
|
9
|
-
}
|
|
10
|
-
static commandType() {
|
|
11
|
-
return (0, meta_1.getCommandType)(this);
|
|
12
|
-
}
|
|
13
|
-
static newCommand(props, context, timestamp) {
|
|
14
|
-
return new this({
|
|
15
|
-
id: this.id(),
|
|
16
|
-
context,
|
|
17
|
-
timestamp,
|
|
18
|
-
}, props);
|
|
19
|
-
}
|
|
20
|
-
commandType() {
|
|
21
|
-
return this.constructor.commandType();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.CommandBase = CommandBase;
|
|
25
|
-
CommandBase.COMMAND_MESSAGE_TYPE = "command";
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventBase = void 0;
|
|
4
|
-
const meta_1 = require("../../meta");
|
|
5
|
-
const message_1 = require("./message");
|
|
6
|
-
class EventBase extends message_1.MessageBase {
|
|
7
|
-
constructor(metadata, props) {
|
|
8
|
-
super({ ...metadata, messageType: EventBase.EVENT_MESSAGE_TYPE }, props);
|
|
9
|
-
this._source = metadata.source;
|
|
10
|
-
}
|
|
11
|
-
static eventType() {
|
|
12
|
-
return (0, meta_1.getEventType)(this);
|
|
13
|
-
}
|
|
14
|
-
static newEvent(source, props, context, timestamp) {
|
|
15
|
-
return new this({
|
|
16
|
-
id: this.id(),
|
|
17
|
-
source,
|
|
18
|
-
context,
|
|
19
|
-
timestamp,
|
|
20
|
-
}, props);
|
|
21
|
-
}
|
|
22
|
-
source() {
|
|
23
|
-
return this._source;
|
|
24
|
-
}
|
|
25
|
-
eventType() {
|
|
26
|
-
return this.constructor.eventType();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.EventBase = EventBase;
|
|
30
|
-
EventBase.EVENT_MESSAGE_TYPE = "event";
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Id } from "../id";
|
|
2
|
-
import { ModelWithId, Props } from "../model";
|
|
3
|
-
export interface MessageContext {
|
|
4
|
-
correlationId?: string;
|
|
5
|
-
causationId?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface MessageMetadata {
|
|
8
|
-
readonly id: Id;
|
|
9
|
-
readonly messageType: string;
|
|
10
|
-
readonly timestamp?: number;
|
|
11
|
-
context?: MessageContext;
|
|
12
|
-
}
|
|
13
|
-
export declare class MessageBase<P extends Props> extends ModelWithId<P> {
|
|
14
|
-
private readonly _messageType;
|
|
15
|
-
private readonly _timestamp;
|
|
16
|
-
private _context?;
|
|
17
|
-
protected constructor(metadata: MessageMetadata, props: P);
|
|
18
|
-
props(): P;
|
|
19
|
-
messageType(): string;
|
|
20
|
-
timestamp(): number;
|
|
21
|
-
context(): MessageContext | undefined;
|
|
22
|
-
setContext(context: Partial<MessageContext>): void;
|
|
23
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MessageBase = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const model_1 = require("../model");
|
|
9
|
-
class MessageBase extends model_1.ModelWithId {
|
|
10
|
-
constructor(metadata, props) {
|
|
11
|
-
super(metadata.id);
|
|
12
|
-
this._messageType = metadata.messageType;
|
|
13
|
-
this._context = metadata?.context ?? {};
|
|
14
|
-
this._timestamp = metadata.timestamp ?? Date.now();
|
|
15
|
-
this.initializeProps(props);
|
|
16
|
-
}
|
|
17
|
-
props() {
|
|
18
|
-
return super.props();
|
|
19
|
-
}
|
|
20
|
-
messageType() {
|
|
21
|
-
return this._messageType;
|
|
22
|
-
}
|
|
23
|
-
timestamp() {
|
|
24
|
-
return this._timestamp;
|
|
25
|
-
}
|
|
26
|
-
context() {
|
|
27
|
-
return this._context;
|
|
28
|
-
}
|
|
29
|
-
setContext(context) {
|
|
30
|
-
this._context = lodash_1.default.merge(this._context, context);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.MessageBase = MessageBase;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Class } from "type-fest";
|
|
2
|
-
import { ClassStatic } from "../../types";
|
|
3
|
-
export interface Props {
|
|
4
|
-
[key: PropertyKey]: any;
|
|
5
|
-
}
|
|
6
|
-
export type EmptyProps = {
|
|
7
|
-
[key: PropertyKey]: never;
|
|
8
|
-
};
|
|
9
|
-
export declare class ModelBase<P extends Props> {
|
|
10
|
-
static readonly EMPTY_PROPS: EmptyProps;
|
|
11
|
-
protected _props: P;
|
|
12
|
-
static isModel(model: any): model is AnyModel;
|
|
13
|
-
static mutable(): boolean;
|
|
14
|
-
static modelName<T extends AnyModel>(this: ModelClass<T>): string;
|
|
15
|
-
static modelVersion<T extends AnyModel>(this: ModelClass<T>): number;
|
|
16
|
-
static modelId<T extends AnyModel>(this: ModelClass<T>): string;
|
|
17
|
-
static hasModelId<T extends AnyModel>(this: ModelClass<T>, modelId: string): boolean;
|
|
18
|
-
static ownPropsValidator<T extends AnyModel>(this: ModelClass<T>): import("../../meta").PropsValidator<T> | undefined;
|
|
19
|
-
static propsValidators<T extends AnyModel>(this: ModelClass<T>): import("../../meta").PropsValidator<AnyModel>[];
|
|
20
|
-
static ownStaticValues<T extends AnyModel>(this: ModelClass<T>): import("../../meta").StaticValuesMap<T>;
|
|
21
|
-
static ownPropsMap(): import("../../meta").PropsMap<ModelBase<any>>;
|
|
22
|
-
static propsMap(): import("../../meta").PropsMap<ModelBase<any>>;
|
|
23
|
-
constructor();
|
|
24
|
-
protected redefineModel(): void;
|
|
25
|
-
protected redefineProp(key: keyof this, propTargetKey: keyof P): void;
|
|
26
|
-
protected get _modelClass(): ModelClass<typeof this>;
|
|
27
|
-
isMutable(): boolean;
|
|
28
|
-
modelName(): string;
|
|
29
|
-
modelVersion(): number;
|
|
30
|
-
modelId(): string;
|
|
31
|
-
hasModelId(modelId: string): boolean;
|
|
32
|
-
ownPropsValidator(): import("../../meta").PropsValidator<this> | undefined;
|
|
33
|
-
propsValidators(): import("../../meta").PropsValidator<AnyModel>[];
|
|
34
|
-
ownPropsMap(): import("../../meta").PropsMap<ModelBase<any>>;
|
|
35
|
-
propsMap(): import("../../meta").PropsMap<any>;
|
|
36
|
-
validateProps(props: P): void;
|
|
37
|
-
validate(): void;
|
|
38
|
-
propsIsEmpty(): boolean;
|
|
39
|
-
props(): P | null;
|
|
40
|
-
protected initializeProps(props: P): void;
|
|
41
|
-
}
|
|
42
|
-
export type AnyModel = ModelBase<Props>;
|
|
43
|
-
export type PropsOf<T extends AnyModel> = T extends ModelBase<infer P extends Props> ? P : never;
|
|
44
|
-
export interface ModelClass<T extends AnyModel = AnyModel> extends Class<T>, ClassStatic<typeof ModelBase<PropsOf<T>>> {
|
|
45
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ValueObjectBase = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const model_1 = require("./model");
|
|
9
|
-
class ValueObjectBase extends model_1.ModelBase {
|
|
10
|
-
constructor(props) {
|
|
11
|
-
super();
|
|
12
|
-
this.initializeProps(props);
|
|
13
|
-
}
|
|
14
|
-
props() {
|
|
15
|
-
return super.props();
|
|
16
|
-
}
|
|
17
|
-
equals(vo) {
|
|
18
|
-
const equalsType = vo instanceof this.constructor;
|
|
19
|
-
const equalsValue = JSON.stringify(vo.props()) === JSON.stringify(this.props());
|
|
20
|
-
return equalsType && equalsValue;
|
|
21
|
-
}
|
|
22
|
-
with(props) {
|
|
23
|
-
const newProps = lodash_1.default.merge(this.props(), props);
|
|
24
|
-
return new this.constructor(newProps);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.ValueObjectBase = ValueObjectBase;
|
package/dist/decorators/id.d.ts
DELETED
package/dist/decorators/id.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UseIdService = void 0;
|
|
4
|
-
const meta_1 = require("../meta");
|
|
5
|
-
const UseIdService = (idService) => {
|
|
6
|
-
return (target) => {
|
|
7
|
-
(0, meta_1.defineIdService)(target, idService);
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
exports.UseIdService = UseIdService;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { ModelClass } from "../../core";
|
|
2
|
-
import { StaticValueBuilder } from "../../meta";
|
|
3
|
-
export declare const Static: <T extends ModelClass<import("../../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: PropertyKey) => void;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|