ddd-node 15.0.2 → 15.0.4
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 → core}/aggregate/base.js +6 -2
- package/{dist/core → core}/aggregate/event-sourced-aggregate.js +11 -7
- package/core/aggregate/index.js +19 -0
- package/{dist/core → core}/aggregate/state-aggregate.js +6 -2
- package/core/aggregate/types.js +2 -0
- package/{dist/core → core}/entity.js +6 -2
- package/{dist/core → core}/enum.js +6 -2
- package/core/id/common/index.js +18 -0
- package/core/id/common/snowflake.js +14 -0
- package/core/id/common/uuid4.js +18 -0
- package/{dist/core → core}/id/id.js +5 -1
- package/core/id/index.js +19 -0
- package/core/id/interface.js +2 -0
- package/core/index.js +24 -0
- package/{dist/core → core}/message/command.js +6 -2
- package/{dist/core → core}/message/event.js +6 -2
- package/core/message/index.js +19 -0
- package/{dist/core → core}/message/message.js +11 -4
- package/core/model/errors.js +9 -0
- package/core/model/index.js +18 -0
- package/core/model/model-with-id.js +26 -0
- package/{dist/core → core}/model/model.js +19 -12
- package/core/repository.js +2 -0
- package/core/value-object.js +27 -0
- package/decorators/aggregate-es/handle.js +13 -0
- package/decorators/aggregate-es/index.js +18 -0
- package/decorators/aggregate-es/when.js +13 -0
- package/decorators/id.js +10 -0
- package/decorators/index.js +19 -0
- package/decorators/model/enum.js +10 -0
- package/decorators/model/index.js +21 -0
- package/decorators/model/model-name.js +10 -0
- package/decorators/model/prop.js +10 -0
- package/decorators/model/static.js +20 -0
- package/decorators/model/validator.js +11 -0
- package/decorators/type.js +2 -0
- package/index.js +21 -0
- package/meta/aggregate.metadata.js +34 -0
- package/meta/helpers/index.js +17 -0
- package/{dist/meta → meta}/helpers/static-value.js +5 -1
- package/meta/id.metadata.js +17 -0
- package/meta/index.js +20 -0
- package/{dist/meta → meta}/model.metadata.js +34 -20
- package/package.json +6 -5
- package/types/class-static.js +2 -0
- package/types/class.js +2 -0
- package/types/index.js +18 -0
- package/utils/index.js +17 -0
- package/utils/to-array.js +7 -0
- package/.editorconfig +0 -12
- package/.vscode/launch.json +0 -17
- package/dist/core/aggregate/index.js +0 -3
- package/dist/core/aggregate/types.js +0 -1
- package/dist/core/id/common/index.js +0 -2
- package/dist/core/id/common/snowflake.js +0 -10
- package/dist/core/id/common/uuid4.js +0 -14
- package/dist/core/id/index.js +0 -3
- package/dist/core/id/interface.js +0 -1
- package/dist/core/index.js +0 -8
- package/dist/core/message/index.js +0 -3
- package/dist/core/model/errors.js +0 -5
- package/dist/core/model/index.js +0 -2
- package/dist/core/model/model-with-id.js +0 -22
- package/dist/core/repository.js +0 -1
- package/dist/core/value-object.js +0 -20
- package/dist/decorators/aggregate-es/handle.js +0 -9
- package/dist/decorators/aggregate-es/index.js +0 -2
- package/dist/decorators/aggregate-es/when.js +0 -9
- package/dist/decorators/id.js +0 -6
- package/dist/decorators/index.js +0 -3
- package/dist/decorators/model/enum.js +0 -6
- package/dist/decorators/model/index.js +0 -5
- package/dist/decorators/model/model-name.js +0 -6
- package/dist/decorators/model/prop.js +0 -6
- package/dist/decorators/model/static.js +0 -16
- package/dist/decorators/model/validator.js +0 -7
- package/dist/decorators/type.js +0 -1
- package/dist/index.js +0 -5
- package/dist/meta/aggregate.metadata.js +0 -27
- package/dist/meta/helpers/index.js +0 -1
- package/dist/meta/id.metadata.js +0 -12
- package/dist/meta/index.js +0 -4
- package/dist/types/class-static.js +0 -1
- package/dist/types/class.js +0 -1
- package/dist/types/index.js +0 -2
- package/dist/utils/index.js +0 -1
- package/dist/utils/to-array.js +0 -3
- package/ts-loader.js +0 -4
- package/tsconfig.json +0 -122
- package/tsconfig.spec.json +0 -5
- /package/{dist/core → core}/aggregate/base.d.ts +0 -0
- /package/{dist/core → core}/aggregate/event-sourced-aggregate.d.ts +0 -0
- /package/{dist/core → core}/aggregate/index.d.ts +0 -0
- /package/{dist/core → core}/aggregate/state-aggregate.d.ts +0 -0
- /package/{dist/core → core}/aggregate/types.d.ts +0 -0
- /package/{dist/core → core}/entity.d.ts +0 -0
- /package/{dist/core → core}/enum.d.ts +0 -0
- /package/{dist/core → core}/id/common/index.d.ts +0 -0
- /package/{dist/core → core}/id/common/snowflake.d.ts +0 -0
- /package/{dist/core → core}/id/common/uuid4.d.ts +0 -0
- /package/{dist/core → core}/id/id.d.ts +0 -0
- /package/{dist/core → core}/id/index.d.ts +0 -0
- /package/{dist/core → core}/id/interface.d.ts +0 -0
- /package/{dist/core → core}/index.d.ts +0 -0
- /package/{dist/core → core}/message/command.d.ts +0 -0
- /package/{dist/core → core}/message/event.d.ts +0 -0
- /package/{dist/core → core}/message/index.d.ts +0 -0
- /package/{dist/core → core}/message/message.d.ts +0 -0
- /package/{dist/core → core}/model/errors.d.ts +0 -0
- /package/{dist/core → core}/model/index.d.ts +0 -0
- /package/{dist/core → core}/model/model-with-id.d.ts +0 -0
- /package/{dist/core → core}/model/model.d.ts +0 -0
- /package/{dist/core → core}/repository.d.ts +0 -0
- /package/{dist/core → core}/value-object.d.ts +0 -0
- /package/{dist/decorators → decorators}/aggregate-es/handle.d.ts +0 -0
- /package/{dist/decorators → decorators}/aggregate-es/index.d.ts +0 -0
- /package/{dist/decorators → decorators}/aggregate-es/when.d.ts +0 -0
- /package/{dist/decorators → decorators}/id.d.ts +0 -0
- /package/{dist/decorators → decorators}/index.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/enum.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/index.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/model-name.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/prop.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/static.d.ts +0 -0
- /package/{dist/decorators → decorators}/model/validator.d.ts +0 -0
- /package/{dist/decorators → decorators}/type.d.ts +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/meta → meta}/aggregate.metadata.d.ts +0 -0
- /package/{dist/meta → meta}/helpers/index.d.ts +0 -0
- /package/{dist/meta → meta}/helpers/static-value.d.ts +0 -0
- /package/{dist/meta → meta}/id.metadata.d.ts +0 -0
- /package/{dist/meta → meta}/index.d.ts +0 -0
- /package/{dist/meta → meta}/model.metadata.d.ts +0 -0
- /package/{dist/types → types}/class-static.d.ts +0 -0
- /package/{dist/types → types}/class.d.ts +0 -0
- /package/{dist/types → types}/index.d.ts +0 -0
- /package/{dist/utils → utils}/index.d.ts +0 -0
- /package/{dist/utils → utils}/to-array.d.ts +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Static = void 0;
|
|
4
|
+
const meta_1 = require("../../meta");
|
|
5
|
+
const Static = (builder) => {
|
|
6
|
+
return (target, key) => {
|
|
7
|
+
(0, meta_1.setStaticValue)(target, key, builder);
|
|
8
|
+
Object.defineProperty(target, key, {
|
|
9
|
+
configurable: false,
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get() {
|
|
12
|
+
return (0, meta_1.getStaticValue)(target, key);
|
|
13
|
+
},
|
|
14
|
+
set() {
|
|
15
|
+
throw new Error("Static value is readonly");
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.Static = Static;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Validator = void 0;
|
|
4
|
+
const meta_1 = require("../../meta");
|
|
5
|
+
const Validator = (validator) => {
|
|
6
|
+
return (target) => {
|
|
7
|
+
if (validator)
|
|
8
|
+
(0, meta_1.setPropsValidator)(target, validator);
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
exports.Validator = Validator;
|
package/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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("./meta"), exports);
|
|
18
|
+
__exportStar(require("./core"), exports);
|
|
19
|
+
__exportStar(require("./decorators"), exports);
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineCommandHandler = exports.getCommandHandlerMap = exports.CommandHandlerMapMetaKey = exports.defineEventApplier = exports.getEventApplierMap = exports.EventApplierMapMetaKey = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
// Event applier map
|
|
6
|
+
exports.EventApplierMapMetaKey = Symbol.for("EVENT_APPLIER_MAP");
|
|
7
|
+
const getEventApplierMap = (target) => {
|
|
8
|
+
const eventApplierMap = () => Reflect.getMetadata(exports.EventApplierMapMetaKey, target);
|
|
9
|
+
if (eventApplierMap())
|
|
10
|
+
return eventApplierMap();
|
|
11
|
+
Reflect.defineMetadata(exports.EventApplierMapMetaKey, new Map(), target);
|
|
12
|
+
return eventApplierMap();
|
|
13
|
+
};
|
|
14
|
+
exports.getEventApplierMap = getEventApplierMap;
|
|
15
|
+
const defineEventApplier = (target, eventName, applier) => {
|
|
16
|
+
const eventAppliersMap = (0, exports.getEventApplierMap)(target);
|
|
17
|
+
eventAppliersMap.set(eventName, applier);
|
|
18
|
+
};
|
|
19
|
+
exports.defineEventApplier = defineEventApplier;
|
|
20
|
+
// Command handler map
|
|
21
|
+
exports.CommandHandlerMapMetaKey = Symbol.for("COMMAND_HANDLER_MAP");
|
|
22
|
+
const getCommandHandlerMap = (target) => {
|
|
23
|
+
const commandHandlerMap = () => Reflect.getMetadata(exports.CommandHandlerMapMetaKey, target);
|
|
24
|
+
if (commandHandlerMap())
|
|
25
|
+
return commandHandlerMap();
|
|
26
|
+
Reflect.defineMetadata(exports.CommandHandlerMapMetaKey, new Map(), target);
|
|
27
|
+
return commandHandlerMap();
|
|
28
|
+
};
|
|
29
|
+
exports.getCommandHandlerMap = getCommandHandlerMap;
|
|
30
|
+
const defineCommandHandler = (target, commandName, handler) => {
|
|
31
|
+
const commandHandlersMap = (0, exports.getCommandHandlerMap)(target);
|
|
32
|
+
commandHandlersMap.set(commandName, handler);
|
|
33
|
+
};
|
|
34
|
+
exports.defineCommandHandler = defineCommandHandler;
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./static-value"), exports);
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StaticValue = void 0;
|
|
4
|
+
class StaticValue {
|
|
2
5
|
constructor(value) {
|
|
3
6
|
this._value = value;
|
|
4
7
|
}
|
|
@@ -9,3 +12,4 @@ export class StaticValue {
|
|
|
9
12
|
return this._value;
|
|
10
13
|
}
|
|
11
14
|
}
|
|
15
|
+
exports.StaticValue = StaticValue;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIdService = exports.defineIdService = exports.IdServiceMetaKey = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.IdServiceMetaKey = Symbol.for("ID_SERVICE");
|
|
6
|
+
const defineIdService = (target, idService) => {
|
|
7
|
+
Reflect.defineMetadata(exports.IdServiceMetaKey, idService, target);
|
|
8
|
+
};
|
|
9
|
+
exports.defineIdService = defineIdService;
|
|
10
|
+
const getIdService = (target) => {
|
|
11
|
+
const idService = () => Reflect.getMetadata(exports.IdServiceMetaKey, target);
|
|
12
|
+
if (idService())
|
|
13
|
+
return idService();
|
|
14
|
+
Reflect.defineMetadata(exports.IdServiceMetaKey, new core_1.Uuid4Service(), target);
|
|
15
|
+
return idService();
|
|
16
|
+
};
|
|
17
|
+
exports.getIdService = getIdService;
|
package/meta/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
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("./helpers"), exports);
|
|
18
|
+
__exportStar(require("./aggregate.metadata"), exports);
|
|
19
|
+
__exportStar(require("./id.metadata"), exports);
|
|
20
|
+
__exportStar(require("./model.metadata"), exports);
|
|
@@ -1,23 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStaticValue = exports.setStaticValue = exports.getOwnStaticValues = exports.getPropsValidator = exports.setPropsValidator = exports.getModelName = exports.setModelName = exports.getPropsMap = exports.setProp = exports.getOwnPropsMap = exports.PropsMap = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
const static_value_1 = require("./helpers/static-value");
|
|
3
6
|
const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
|
|
4
7
|
// Prop keys map is a Map<Key, TargetPropKey>;
|
|
5
|
-
|
|
8
|
+
class PropsMap extends Map {
|
|
6
9
|
}
|
|
10
|
+
exports.PropsMap = PropsMap;
|
|
7
11
|
// target is prototype
|
|
8
|
-
|
|
12
|
+
const getOwnPropsMap = (target) => {
|
|
9
13
|
const ownPropsMap = () => Reflect.getOwnMetadata(OwnPropsMapMetaKey, target);
|
|
10
14
|
if (!ownPropsMap())
|
|
11
15
|
Reflect.defineMetadata(OwnPropsMapMetaKey, new PropsMap(), target);
|
|
12
16
|
return ownPropsMap();
|
|
13
17
|
};
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
exports.getOwnPropsMap = getOwnPropsMap;
|
|
19
|
+
const setProp = (target, key, targetPropKey) => {
|
|
20
|
+
const ownPropsMap = (0, exports.getOwnPropsMap)(target);
|
|
16
21
|
if (targetPropKey)
|
|
17
22
|
ownPropsMap.set(key, targetPropKey);
|
|
18
23
|
};
|
|
24
|
+
exports.setProp = setProp;
|
|
19
25
|
const PropsMapMetaKey = Symbol.for("PROPS_MAP");
|
|
20
|
-
|
|
26
|
+
const getPropsMap = (target) => {
|
|
21
27
|
const propsMap = () => Reflect.getOwnMetadata(PropsMapMetaKey, target);
|
|
22
28
|
if (propsMap())
|
|
23
29
|
return propsMap();
|
|
@@ -26,8 +32,8 @@ export const getPropsMap = (target) => {
|
|
|
26
32
|
const result = new PropsMap();
|
|
27
33
|
const ownPropsMapList = [];
|
|
28
34
|
do {
|
|
29
|
-
if (ModelBase.isModel(_target)) {
|
|
30
|
-
const ownPropsMap = getOwnPropsMap(_target);
|
|
35
|
+
if (core_1.ModelBase.isModel(_target)) {
|
|
36
|
+
const ownPropsMap = (0, exports.getOwnPropsMap)(_target);
|
|
31
37
|
ownPropsMapList.unshift(ownPropsMap);
|
|
32
38
|
}
|
|
33
39
|
_target = Reflect.getPrototypeOf(_target);
|
|
@@ -40,43 +46,51 @@ export const getPropsMap = (target) => {
|
|
|
40
46
|
Reflect.defineMetadata(PropsMapMetaKey, buildPropsMap(target), target);
|
|
41
47
|
return propsMap();
|
|
42
48
|
};
|
|
49
|
+
exports.getPropsMap = getPropsMap;
|
|
43
50
|
//
|
|
44
51
|
const ModelNameMetaKey = Symbol.for("MODEL_NAME");
|
|
45
|
-
|
|
52
|
+
const setModelName = (target, name) => {
|
|
46
53
|
Reflect.defineMetadata(ModelNameMetaKey, name ?? target.name, target);
|
|
47
54
|
};
|
|
48
|
-
|
|
55
|
+
exports.setModelName = setModelName;
|
|
56
|
+
const getModelName = (target) => {
|
|
49
57
|
const modelName = () => Reflect.getMetadata(ModelNameMetaKey, target);
|
|
50
58
|
if (!modelName())
|
|
51
|
-
setModelName(target);
|
|
59
|
+
(0, exports.setModelName)(target);
|
|
52
60
|
return modelName();
|
|
53
61
|
};
|
|
62
|
+
exports.getModelName = getModelName;
|
|
54
63
|
const PropsValidatorMetaKey = Symbol.for("PROPS_VALIDATOR");
|
|
55
|
-
|
|
64
|
+
const setPropsValidator = (target, validator) => {
|
|
56
65
|
Reflect.defineMetadata(PropsValidatorMetaKey, validator, target);
|
|
57
66
|
};
|
|
58
|
-
|
|
67
|
+
exports.setPropsValidator = setPropsValidator;
|
|
68
|
+
const getPropsValidator = (target) => {
|
|
59
69
|
return Reflect.getMetadata(PropsValidatorMetaKey, target);
|
|
60
70
|
};
|
|
71
|
+
exports.getPropsValidator = getPropsValidator;
|
|
61
72
|
//
|
|
62
73
|
const OwnStaticValuesMetaKey = Symbol.for("OWN_STATIC_VALUES");
|
|
63
|
-
|
|
74
|
+
const getOwnStaticValues = (target) => {
|
|
64
75
|
const ownStaticValues = () => Reflect.getOwnMetadata(OwnStaticValuesMetaKey, target);
|
|
65
76
|
if (!ownStaticValues())
|
|
66
77
|
Reflect.defineMetadata(OwnStaticValuesMetaKey, new Map(), target);
|
|
67
78
|
return ownStaticValues();
|
|
68
79
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
staticValues
|
|
80
|
+
exports.getOwnStaticValues = getOwnStaticValues;
|
|
81
|
+
const setStaticValue = (target, key, value) => {
|
|
82
|
+
const staticValues = (0, exports.getOwnStaticValues)(target);
|
|
83
|
+
staticValues.set(key, new static_value_1.StaticValue(value));
|
|
72
84
|
};
|
|
73
|
-
|
|
85
|
+
exports.setStaticValue = setStaticValue;
|
|
86
|
+
const getStaticValue = (target, key) => {
|
|
74
87
|
let _target = target;
|
|
75
88
|
do {
|
|
76
|
-
const staticValues = getOwnStaticValues(_target);
|
|
89
|
+
const staticValues = (0, exports.getOwnStaticValues)(_target);
|
|
77
90
|
if (staticValues.has(key))
|
|
78
91
|
return staticValues.get(key)?.value;
|
|
79
92
|
_target = Reflect.getPrototypeOf(_target);
|
|
80
93
|
} while (_target !== null);
|
|
81
94
|
return undefined;
|
|
82
95
|
};
|
|
96
|
+
exports.getStaticValue = getStaticValue;
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddd-node",
|
|
3
|
-
"version": "15.0.
|
|
4
|
-
"type": "module",
|
|
3
|
+
"version": "15.0.4",
|
|
5
4
|
"description": "Domain Driven Design base for NodeJs",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
5
|
+
"type": "commonjs",
|
|
6
|
+
"main": "index.js",
|
|
7
|
+
"types": "index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "rm -rf dist && tsc -p src/tsconfig.build.json && tsc-alias -p src/tsconfig.build.json",
|
|
10
|
-
"test": "mocha"
|
|
10
|
+
"test": "mocha",
|
|
11
|
+
"publish": "cp package.json dist && npm publish dist"
|
|
11
12
|
},
|
|
12
13
|
"repository": {
|
|
13
14
|
"type": "git",
|
package/types/class.js
ADDED
package/types/index.js
ADDED
|
@@ -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("./class"), exports);
|
|
18
|
+
__exportStar(require("./class-static"), exports);
|
package/utils/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
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("./to-array"), exports);
|
package/.editorconfig
DELETED
package/.vscode/launch.json
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"type": "node",
|
|
9
|
-
"request": "launch",
|
|
10
|
-
"name": "Launch Program",
|
|
11
|
-
"skipFiles": ["<node_internals>/**"],
|
|
12
|
-
"program": "${workspaceFolder}/test/example/main.ts",
|
|
13
|
-
"preLaunchTask": "tsc: build - tsconfig.json",
|
|
14
|
-
"outFiles": ["${workspaceFolder}/**/*.js"]
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Snowflake } from "nodejs-snowflake";
|
|
2
|
-
export class SnowflakeIdService {
|
|
3
|
-
constructor(options) {
|
|
4
|
-
this._snowflake = new Snowflake(options);
|
|
5
|
-
}
|
|
6
|
-
validateValue(value) { }
|
|
7
|
-
generateValue() {
|
|
8
|
-
return this._snowflake.getUniqueID().toString(16);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { v4, validate, version } from "uuid";
|
|
2
|
-
export class Uuid4Service {
|
|
3
|
-
validateValue(value) {
|
|
4
|
-
const isUuid = validate(value);
|
|
5
|
-
const isV4 = version(value) === 4;
|
|
6
|
-
if (!isUuid)
|
|
7
|
-
throw new Error("Id value is invalid for uuid type");
|
|
8
|
-
if (!isV4)
|
|
9
|
-
throw new Error("Version of uuid value must be 4");
|
|
10
|
-
}
|
|
11
|
-
generateValue() {
|
|
12
|
-
return v4();
|
|
13
|
-
}
|
|
14
|
-
}
|
package/dist/core/id/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/core/index.js
DELETED
package/dist/core/model/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { getIdService } from "../../meta";
|
|
2
|
-
import { Id } from "../id";
|
|
3
|
-
import { ModelBase } from "./model";
|
|
4
|
-
export class ModelWithId extends ModelBase {
|
|
5
|
-
constructor(id) {
|
|
6
|
-
super();
|
|
7
|
-
this._id = id;
|
|
8
|
-
}
|
|
9
|
-
static idService() {
|
|
10
|
-
return getIdService(this);
|
|
11
|
-
}
|
|
12
|
-
static id(id) {
|
|
13
|
-
const idService = this.idService();
|
|
14
|
-
return new Id(id ?? idService.generateValue());
|
|
15
|
-
}
|
|
16
|
-
id() {
|
|
17
|
-
return this._id;
|
|
18
|
-
}
|
|
19
|
-
hasId(id) {
|
|
20
|
-
return this._id.equals(id);
|
|
21
|
-
}
|
|
22
|
-
}
|
package/dist/core/repository.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import _ from "lodash";
|
|
2
|
-
import { ModelBase } from "./model";
|
|
3
|
-
export class ValueObjectBase extends ModelBase {
|
|
4
|
-
constructor(props) {
|
|
5
|
-
super();
|
|
6
|
-
this.initializeProps(props);
|
|
7
|
-
}
|
|
8
|
-
props() {
|
|
9
|
-
return super.props();
|
|
10
|
-
}
|
|
11
|
-
equals(vo) {
|
|
12
|
-
const equalsType = vo instanceof this.constructor;
|
|
13
|
-
const equalsValue = JSON.stringify(vo.props()) === JSON.stringify(this.props());
|
|
14
|
-
return equalsType && equalsValue;
|
|
15
|
-
}
|
|
16
|
-
with(props) {
|
|
17
|
-
const newProps = _.merge(this.props(), props);
|
|
18
|
-
return new this.constructor(newProps);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { defineCommandHandler, getModelName } from "../../meta";
|
|
2
|
-
export const Handle = (commandClass) => {
|
|
3
|
-
return (target, propertyKey, descriptor) => {
|
|
4
|
-
if (typeof descriptor.value === "function") {
|
|
5
|
-
const commandName = getModelName(commandClass);
|
|
6
|
-
defineCommandHandler(target, commandName, descriptor.value);
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { defineEventApplier, getModelName } from "../../meta";
|
|
2
|
-
export const When = (eventClass) => {
|
|
3
|
-
return (target, propertyKey, descriptor) => {
|
|
4
|
-
if (typeof descriptor.value === "function") {
|
|
5
|
-
const eventName = getModelName(eventClass);
|
|
6
|
-
defineEventApplier(target, eventName, descriptor.value);
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
};
|
package/dist/decorators/id.js
DELETED
package/dist/decorators/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { getStaticValue, setStaticValue } from "../../meta";
|
|
2
|
-
export const Static = (builder) => {
|
|
3
|
-
return (target, key) => {
|
|
4
|
-
setStaticValue(target, key, builder);
|
|
5
|
-
Object.defineProperty(target, key, {
|
|
6
|
-
configurable: false,
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get() {
|
|
9
|
-
return getStaticValue(target, key);
|
|
10
|
-
},
|
|
11
|
-
set() {
|
|
12
|
-
throw new Error("Static value is readonly");
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
};
|
package/dist/decorators/type.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import "reflect-metadata";
|
|
2
|
-
// Event applier map
|
|
3
|
-
export const EventApplierMapMetaKey = Symbol.for("EVENT_APPLIER_MAP");
|
|
4
|
-
export const getEventApplierMap = (target) => {
|
|
5
|
-
const eventApplierMap = () => Reflect.getMetadata(EventApplierMapMetaKey, target);
|
|
6
|
-
if (eventApplierMap())
|
|
7
|
-
return eventApplierMap();
|
|
8
|
-
Reflect.defineMetadata(EventApplierMapMetaKey, new Map(), target);
|
|
9
|
-
return eventApplierMap();
|
|
10
|
-
};
|
|
11
|
-
export const defineEventApplier = (target, eventName, applier) => {
|
|
12
|
-
const eventAppliersMap = getEventApplierMap(target);
|
|
13
|
-
eventAppliersMap.set(eventName, applier);
|
|
14
|
-
};
|
|
15
|
-
// Command handler map
|
|
16
|
-
export const CommandHandlerMapMetaKey = Symbol.for("COMMAND_HANDLER_MAP");
|
|
17
|
-
export const getCommandHandlerMap = (target) => {
|
|
18
|
-
const commandHandlerMap = () => Reflect.getMetadata(CommandHandlerMapMetaKey, target);
|
|
19
|
-
if (commandHandlerMap())
|
|
20
|
-
return commandHandlerMap();
|
|
21
|
-
Reflect.defineMetadata(CommandHandlerMapMetaKey, new Map(), target);
|
|
22
|
-
return commandHandlerMap();
|
|
23
|
-
};
|
|
24
|
-
export const defineCommandHandler = (target, commandName, handler) => {
|
|
25
|
-
const commandHandlersMap = getCommandHandlerMap(target);
|
|
26
|
-
commandHandlersMap.set(commandName, handler);
|
|
27
|
-
};
|