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.
Files changed (138) hide show
  1. package/{dist/core → core}/aggregate/base.js +6 -2
  2. package/{dist/core → core}/aggregate/event-sourced-aggregate.js +11 -7
  3. package/core/aggregate/index.js +19 -0
  4. package/{dist/core → core}/aggregate/state-aggregate.js +6 -2
  5. package/core/aggregate/types.js +2 -0
  6. package/{dist/core → core}/entity.js +6 -2
  7. package/{dist/core → core}/enum.js +6 -2
  8. package/core/id/common/index.js +18 -0
  9. package/core/id/common/snowflake.js +14 -0
  10. package/core/id/common/uuid4.js +18 -0
  11. package/{dist/core → core}/id/id.js +5 -1
  12. package/core/id/index.js +19 -0
  13. package/core/id/interface.js +2 -0
  14. package/core/index.js +24 -0
  15. package/{dist/core → core}/message/command.js +6 -2
  16. package/{dist/core → core}/message/event.js +6 -2
  17. package/core/message/index.js +19 -0
  18. package/{dist/core → core}/message/message.js +11 -4
  19. package/core/model/errors.js +9 -0
  20. package/core/model/index.js +18 -0
  21. package/core/model/model-with-id.js +26 -0
  22. package/{dist/core → core}/model/model.js +19 -12
  23. package/core/repository.js +2 -0
  24. package/core/value-object.js +27 -0
  25. package/decorators/aggregate-es/handle.js +13 -0
  26. package/decorators/aggregate-es/index.js +18 -0
  27. package/decorators/aggregate-es/when.js +13 -0
  28. package/decorators/id.js +10 -0
  29. package/decorators/index.js +19 -0
  30. package/decorators/model/enum.js +10 -0
  31. package/decorators/model/index.js +21 -0
  32. package/decorators/model/model-name.js +10 -0
  33. package/decorators/model/prop.js +10 -0
  34. package/decorators/model/static.js +20 -0
  35. package/decorators/model/validator.js +11 -0
  36. package/decorators/type.js +2 -0
  37. package/index.js +21 -0
  38. package/meta/aggregate.metadata.js +34 -0
  39. package/meta/helpers/index.js +17 -0
  40. package/{dist/meta → meta}/helpers/static-value.js +5 -1
  41. package/meta/id.metadata.js +17 -0
  42. package/meta/index.js +20 -0
  43. package/{dist/meta → meta}/model.metadata.js +34 -20
  44. package/package.json +6 -5
  45. package/types/class-static.js +2 -0
  46. package/types/class.js +2 -0
  47. package/types/index.js +18 -0
  48. package/utils/index.js +17 -0
  49. package/utils/to-array.js +7 -0
  50. package/.editorconfig +0 -12
  51. package/.vscode/launch.json +0 -17
  52. package/dist/core/aggregate/index.js +0 -3
  53. package/dist/core/aggregate/types.js +0 -1
  54. package/dist/core/id/common/index.js +0 -2
  55. package/dist/core/id/common/snowflake.js +0 -10
  56. package/dist/core/id/common/uuid4.js +0 -14
  57. package/dist/core/id/index.js +0 -3
  58. package/dist/core/id/interface.js +0 -1
  59. package/dist/core/index.js +0 -8
  60. package/dist/core/message/index.js +0 -3
  61. package/dist/core/model/errors.js +0 -5
  62. package/dist/core/model/index.js +0 -2
  63. package/dist/core/model/model-with-id.js +0 -22
  64. package/dist/core/repository.js +0 -1
  65. package/dist/core/value-object.js +0 -20
  66. package/dist/decorators/aggregate-es/handle.js +0 -9
  67. package/dist/decorators/aggregate-es/index.js +0 -2
  68. package/dist/decorators/aggregate-es/when.js +0 -9
  69. package/dist/decorators/id.js +0 -6
  70. package/dist/decorators/index.js +0 -3
  71. package/dist/decorators/model/enum.js +0 -6
  72. package/dist/decorators/model/index.js +0 -5
  73. package/dist/decorators/model/model-name.js +0 -6
  74. package/dist/decorators/model/prop.js +0 -6
  75. package/dist/decorators/model/static.js +0 -16
  76. package/dist/decorators/model/validator.js +0 -7
  77. package/dist/decorators/type.js +0 -1
  78. package/dist/index.js +0 -5
  79. package/dist/meta/aggregate.metadata.js +0 -27
  80. package/dist/meta/helpers/index.js +0 -1
  81. package/dist/meta/id.metadata.js +0 -12
  82. package/dist/meta/index.js +0 -4
  83. package/dist/types/class-static.js +0 -1
  84. package/dist/types/class.js +0 -1
  85. package/dist/types/index.js +0 -2
  86. package/dist/utils/index.js +0 -1
  87. package/dist/utils/to-array.js +0 -3
  88. package/ts-loader.js +0 -4
  89. package/tsconfig.json +0 -122
  90. package/tsconfig.spec.json +0 -5
  91. /package/{dist/core → core}/aggregate/base.d.ts +0 -0
  92. /package/{dist/core → core}/aggregate/event-sourced-aggregate.d.ts +0 -0
  93. /package/{dist/core → core}/aggregate/index.d.ts +0 -0
  94. /package/{dist/core → core}/aggregate/state-aggregate.d.ts +0 -0
  95. /package/{dist/core → core}/aggregate/types.d.ts +0 -0
  96. /package/{dist/core → core}/entity.d.ts +0 -0
  97. /package/{dist/core → core}/enum.d.ts +0 -0
  98. /package/{dist/core → core}/id/common/index.d.ts +0 -0
  99. /package/{dist/core → core}/id/common/snowflake.d.ts +0 -0
  100. /package/{dist/core → core}/id/common/uuid4.d.ts +0 -0
  101. /package/{dist/core → core}/id/id.d.ts +0 -0
  102. /package/{dist/core → core}/id/index.d.ts +0 -0
  103. /package/{dist/core → core}/id/interface.d.ts +0 -0
  104. /package/{dist/core → core}/index.d.ts +0 -0
  105. /package/{dist/core → core}/message/command.d.ts +0 -0
  106. /package/{dist/core → core}/message/event.d.ts +0 -0
  107. /package/{dist/core → core}/message/index.d.ts +0 -0
  108. /package/{dist/core → core}/message/message.d.ts +0 -0
  109. /package/{dist/core → core}/model/errors.d.ts +0 -0
  110. /package/{dist/core → core}/model/index.d.ts +0 -0
  111. /package/{dist/core → core}/model/model-with-id.d.ts +0 -0
  112. /package/{dist/core → core}/model/model.d.ts +0 -0
  113. /package/{dist/core → core}/repository.d.ts +0 -0
  114. /package/{dist/core → core}/value-object.d.ts +0 -0
  115. /package/{dist/decorators → decorators}/aggregate-es/handle.d.ts +0 -0
  116. /package/{dist/decorators → decorators}/aggregate-es/index.d.ts +0 -0
  117. /package/{dist/decorators → decorators}/aggregate-es/when.d.ts +0 -0
  118. /package/{dist/decorators → decorators}/id.d.ts +0 -0
  119. /package/{dist/decorators → decorators}/index.d.ts +0 -0
  120. /package/{dist/decorators → decorators}/model/enum.d.ts +0 -0
  121. /package/{dist/decorators → decorators}/model/index.d.ts +0 -0
  122. /package/{dist/decorators → decorators}/model/model-name.d.ts +0 -0
  123. /package/{dist/decorators → decorators}/model/prop.d.ts +0 -0
  124. /package/{dist/decorators → decorators}/model/static.d.ts +0 -0
  125. /package/{dist/decorators → decorators}/model/validator.d.ts +0 -0
  126. /package/{dist/decorators → decorators}/type.d.ts +0 -0
  127. /package/{dist/index.d.ts → index.d.ts} +0 -0
  128. /package/{dist/meta → meta}/aggregate.metadata.d.ts +0 -0
  129. /package/{dist/meta → meta}/helpers/index.d.ts +0 -0
  130. /package/{dist/meta → meta}/helpers/static-value.d.ts +0 -0
  131. /package/{dist/meta → meta}/id.metadata.d.ts +0 -0
  132. /package/{dist/meta → meta}/index.d.ts +0 -0
  133. /package/{dist/meta → meta}/model.metadata.d.ts +0 -0
  134. /package/{dist/types → types}/class-static.d.ts +0 -0
  135. /package/{dist/types → types}/class.d.ts +0 -0
  136. /package/{dist/types → types}/index.d.ts +0 -0
  137. /package/{dist/utils → utils}/index.d.ts +0 -0
  138. /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;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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
- export class StaticValue {
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
- import { ModelBase } from "../core";
2
- import { StaticValue } from "./helpers/static-value";
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
- export class PropsMap extends Map {
8
+ class PropsMap extends Map {
6
9
  }
10
+ exports.PropsMap = PropsMap;
7
11
  // target is prototype
8
- export const getOwnPropsMap = (target) => {
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
- export const setProp = (target, key, targetPropKey) => {
15
- const ownPropsMap = getOwnPropsMap(target);
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
- export const getPropsMap = (target) => {
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
- export const setModelName = (target, name) => {
52
+ const setModelName = (target, name) => {
46
53
  Reflect.defineMetadata(ModelNameMetaKey, name ?? target.name, target);
47
54
  };
48
- export const getModelName = (target) => {
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
- export const setPropsValidator = (target, validator) => {
64
+ const setPropsValidator = (target, validator) => {
56
65
  Reflect.defineMetadata(PropsValidatorMetaKey, validator, target);
57
66
  };
58
- export const getPropsValidator = (target) => {
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
- export const getOwnStaticValues = (target) => {
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
- export const setStaticValue = (target, key, value) => {
70
- const staticValues = getOwnStaticValues(target);
71
- staticValues.set(key, new StaticValue(value));
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
- export const getStaticValue = (target, key) => {
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.2",
4
- "type": "module",
3
+ "version": "15.0.4",
5
4
  "description": "Domain Driven Design base for NodeJs",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
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",
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/types/class.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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);
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toArray = void 0;
4
+ const toArray = (value) => {
5
+ return Array.isArray(value) ? value : [value];
6
+ };
7
+ exports.toArray = toArray;
package/.editorconfig DELETED
@@ -1,12 +0,0 @@
1
- # EditorConfig is awesome: https://EditorConfig.org
2
-
3
- # top-most EditorConfig file
4
- root = true
5
-
6
- [*]
7
- indent_style = space
8
- indent_size = 2
9
- end_of_line = lf
10
- charset = utf-8
11
- trim_trailing_whitespace = false
12
- insert_final_newline = false
@@ -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,3 +0,0 @@
1
- export * from "./state-aggregate";
2
- export * from "./event-sourced-aggregate";
3
- export * from "./types";
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export * from "./snowflake";
2
- export * from "./uuid4";
@@ -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
- }
@@ -1,3 +0,0 @@
1
- export * from "./interface";
2
- export * from "./id";
3
- export * from "./common";
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- export * from "./model";
2
- export * from "./id";
3
- export * from "./aggregate";
4
- export * from "./entity";
5
- export * from "./enum";
6
- export * from "./message";
7
- export * from "./value-object";
8
- export * from "./repository";
@@ -1,3 +0,0 @@
1
- export * from "./message";
2
- export * from "./command";
3
- export * from "./event";
@@ -1,5 +0,0 @@
1
- export class PropsInitializedError extends Error {
2
- constructor() {
3
- super("Props is initialized");
4
- }
5
- }
@@ -1,2 +0,0 @@
1
- export * from "./model";
2
- export * from "./model-with-id";
@@ -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
- }
@@ -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,2 +0,0 @@
1
- export * from "./handle";
2
- export * from "./when";
@@ -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
- };
@@ -1,6 +0,0 @@
1
- import { defineIdService } from "../meta";
2
- export const UseIdService = (idService) => {
3
- return (target) => {
4
- defineIdService(target, idService);
5
- };
6
- };
@@ -1,3 +0,0 @@
1
- export * from "./aggregate-es";
2
- export * from "./id";
3
- export * from "./model";
@@ -1,6 +0,0 @@
1
- import { Static } from "./static";
2
- export const Enum = (value) => {
3
- return (target, key) => {
4
- Static(() => new target(value))(target, key);
5
- };
6
- };
@@ -1,5 +0,0 @@
1
- export * from "./prop";
2
- export * from "./model-name";
3
- export * from "./validator";
4
- export * from "./static";
5
- export * from "./enum";
@@ -1,6 +0,0 @@
1
- import { setModelName } from "../../meta";
2
- export const ModelName = (name) => {
3
- return (target) => {
4
- setModelName(target, name);
5
- };
6
- };
@@ -1,6 +0,0 @@
1
- import { setProp } from "../../meta";
2
- export const Prop = (propKey) => {
3
- return (target, key) => {
4
- setProp(target, key, propKey ?? key);
5
- };
6
- };
@@ -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
- };
@@ -1,7 +0,0 @@
1
- import { setPropsValidator } from "../../meta";
2
- export const Validator = (validator) => {
3
- return (target) => {
4
- if (validator)
5
- setPropsValidator(target, validator);
6
- };
7
- };
@@ -1 +0,0 @@
1
- export {};
package/dist/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from "./meta";
2
- export * from "./core";
3
- export * from "./decorators";
4
- export * from "./types";
5
- export * from "./utils";
@@ -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
- };