ddd-node 27.0.0 → 28.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.
Files changed (194) hide show
  1. package/package.json +1 -62
  2. package/dist/base/decorators/index.d.ts +0 -5
  3. package/dist/base/decorators/index.js +0 -21
  4. package/dist/base/decorators/model.d.ts +0 -12
  5. package/dist/base/decorators/model.js +0 -54
  6. package/dist/base/decorators/mutable.d.ts +0 -2
  7. package/dist/base/decorators/mutable.js +0 -10
  8. package/dist/base/decorators/prop.d.ts +0 -2
  9. package/dist/base/decorators/prop.js +0 -10
  10. package/dist/base/decorators/props-validator.d.ts +0 -2
  11. package/dist/base/decorators/props-validator.js +0 -8
  12. package/dist/base/decorators/static.d.ts +0 -3
  13. package/dist/base/decorators/static.js +0 -11
  14. package/dist/base/domain.d.ts +0 -24
  15. package/dist/base/domain.js +0 -48
  16. package/dist/base/index.d.ts +0 -5
  17. package/dist/base/index.js +0 -21
  18. package/dist/base/meta/index.d.ts +0 -8
  19. package/dist/base/meta/index.js +0 -24
  20. package/dist/base/meta/model-domain.d.ts +0 -4
  21. package/dist/base/meta/model-domain.js +0 -15
  22. package/dist/base/meta/model-id.d.ts +0 -16
  23. package/dist/base/meta/model-id.js +0 -39
  24. package/dist/base/meta/model-mutable.d.ts +0 -2
  25. package/dist/base/meta/model-mutable.js +0 -14
  26. package/dist/base/meta/model-name.d.ts +0 -8
  27. package/dist/base/meta/model-name.js +0 -25
  28. package/dist/base/meta/model-props-map.d.ts +0 -6
  29. package/dist/base/meta/model-props-map.js +0 -45
  30. package/dist/base/meta/model-props-validator.d.ts +0 -6
  31. package/dist/base/meta/model-props-validator.js +0 -33
  32. package/dist/base/meta/model-static-values.d.ts +0 -13
  33. package/dist/base/meta/model-static-values.js +0 -54
  34. package/dist/base/meta/model-version.d.ts +0 -8
  35. package/dist/base/meta/model-version.js +0 -25
  36. package/dist/base/model/errors.d.ts +0 -3
  37. package/dist/base/model/errors.js +0 -9
  38. package/dist/base/model/index.d.ts +0 -3
  39. package/dist/base/model/index.js +0 -19
  40. package/dist/base/model/model-descriptor.d.ts +0 -13
  41. package/dist/base/model/model-descriptor.js +0 -2
  42. package/dist/base/model/model.builder.d.ts +0 -11
  43. package/dist/base/model/model.builder.js +0 -18
  44. package/dist/base/model/model.d.ts +0 -40
  45. package/dist/base/model/model.js +0 -117
  46. package/dist/base/model-registry.d.ts +0 -17
  47. package/dist/base/model-registry.js +0 -55
  48. package/dist/core/aggregate/aggregate-base/aggregate-event-dispatcher.interface.d.ts +0 -4
  49. package/dist/core/aggregate/aggregate-base/aggregate-event-dispatcher.interface.js +0 -2
  50. package/dist/core/aggregate/aggregate-base/aggregate.builder.d.ts +0 -6
  51. package/dist/core/aggregate/aggregate-base/aggregate.builder.js +0 -15
  52. package/dist/core/aggregate/aggregate-base/aggregate.d.ts +0 -17
  53. package/dist/core/aggregate/aggregate-base/aggregate.js +0 -46
  54. package/dist/core/aggregate/aggregate-base/index.d.ts +0 -3
  55. package/dist/core/aggregate/aggregate-base/index.js +0 -19
  56. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.d.ts +0 -9
  57. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.js +0 -2
  58. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +0 -13
  59. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +0 -33
  60. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +0 -49
  61. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +0 -143
  62. package/dist/core/aggregate/event-sourced-aggregate/index.d.ts +0 -2
  63. package/dist/core/aggregate/event-sourced-aggregate/index.js +0 -18
  64. package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +0 -8
  65. package/dist/core/aggregate/event-sourced-aggregate/snapshot.js +0 -2
  66. package/dist/core/aggregate/index.d.ts +0 -4
  67. package/dist/core/aggregate/index.js +0 -20
  68. package/dist/core/aggregate/state-aggregate/index.d.ts +0 -2
  69. package/dist/core/aggregate/state-aggregate/index.js +0 -18
  70. package/dist/core/aggregate/state-aggregate/state-aggregate.builder.d.ts +0 -7
  71. package/dist/core/aggregate/state-aggregate/state-aggregate.builder.js +0 -19
  72. package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +0 -25
  73. package/dist/core/aggregate/state-aggregate/state-aggregate.js +0 -43
  74. package/dist/core/aggregate/types.d.ts +0 -4
  75. package/dist/core/aggregate/types.js +0 -2
  76. package/dist/core/entity/entity.builder.d.ts +0 -7
  77. package/dist/core/entity/entity.builder.js +0 -16
  78. package/dist/core/entity/entity.d.ts +0 -18
  79. package/dist/core/entity/entity.js +0 -29
  80. package/dist/core/entity/index.d.ts +0 -2
  81. package/dist/core/entity/index.js +0 -18
  82. package/dist/core/enum/enum-builder.d.ts +0 -9
  83. package/dist/core/enum/enum-builder.js +0 -32
  84. package/dist/core/enum/enum.d.ts +0 -22
  85. package/dist/core/enum/enum.js +0 -44
  86. package/dist/core/enum/index.d.ts +0 -2
  87. package/dist/core/enum/index.js +0 -18
  88. package/dist/core/index.d.ts +0 -7
  89. package/dist/core/index.js +0 -23
  90. package/dist/core/message/command/command-model-descriptor.d.ts +0 -6
  91. package/dist/core/message/command/command-model-descriptor.js +0 -2
  92. package/dist/core/message/command/command.builder.d.ts +0 -7
  93. package/dist/core/message/command/command.builder.js +0 -21
  94. package/dist/core/message/command/command.d.ts +0 -24
  95. package/dist/core/message/command/command.js +0 -35
  96. package/dist/core/message/command/index.d.ts +0 -3
  97. package/dist/core/message/command/index.js +0 -19
  98. package/dist/core/message/event/event-model-descriptor.d.ts +0 -6
  99. package/dist/core/message/event/event-model-descriptor.js +0 -2
  100. package/dist/core/message/event/event.builder.d.ts +0 -9
  101. package/dist/core/message/event/event.builder.js +0 -28
  102. package/dist/core/message/event/event.d.ts +0 -35
  103. package/dist/core/message/event/event.js +0 -40
  104. package/dist/core/message/event/index.d.ts +0 -3
  105. package/dist/core/message/event/index.js +0 -19
  106. package/dist/core/message/index.d.ts +0 -3
  107. package/dist/core/message/index.js +0 -19
  108. package/dist/core/message/message-base/index.d.ts +0 -2
  109. package/dist/core/message/message-base/index.js +0 -18
  110. package/dist/core/message/message-base/message.builder.d.ts +0 -16
  111. package/dist/core/message/message-base/message.builder.js +0 -44
  112. package/dist/core/message/message-base/message.d.ts +0 -31
  113. package/dist/core/message/message-base/message.js +0 -58
  114. package/dist/core/model-with-id/id.d.ts +0 -1
  115. package/dist/core/model-with-id/id.js +0 -2
  116. package/dist/core/model-with-id/index.d.ts +0 -3
  117. package/dist/core/model-with-id/index.js +0 -19
  118. package/dist/core/model-with-id/model-with-id.builder.d.ts +0 -9
  119. package/dist/core/model-with-id/model-with-id.builder.js +0 -22
  120. package/dist/core/model-with-id/model-with-id.d.ts +0 -13
  121. package/dist/core/model-with-id/model-with-id.js +0 -23
  122. package/dist/core/repository/index.d.ts +0 -1
  123. package/dist/core/repository/index.js +0 -17
  124. package/dist/core/repository/repository.d.ts +0 -6
  125. package/dist/core/repository/repository.js +0 -2
  126. package/dist/core/value-object/index.d.ts +0 -2
  127. package/dist/core/value-object/index.js +0 -18
  128. package/dist/core/value-object/value-object.builder.d.ts +0 -7
  129. package/dist/core/value-object/value-object.builder.js +0 -16
  130. package/dist/core/value-object/value-object.d.ts +0 -17
  131. package/dist/core/value-object/value-object.js +0 -64
  132. package/dist/decorators/aggregate-es/handle.d.ts +0 -2
  133. package/dist/decorators/aggregate-es/handle.js +0 -13
  134. package/dist/decorators/aggregate-es/index.d.ts +0 -2
  135. package/dist/decorators/aggregate-es/index.js +0 -18
  136. package/dist/decorators/aggregate-es/when.d.ts +0 -2
  137. package/dist/decorators/aggregate-es/when.js +0 -13
  138. package/dist/decorators/enum.d.ts +0 -2
  139. package/dist/decorators/enum.js +0 -10
  140. package/dist/decorators/index.d.ts +0 -3
  141. package/dist/decorators/index.js +0 -19
  142. package/dist/decorators/message/command.d.ts +0 -3
  143. package/dist/decorators/message/command.js +0 -10
  144. package/dist/decorators/message/event.d.ts +0 -3
  145. package/dist/decorators/message/event.js +0 -10
  146. package/dist/decorators/message/index.d.ts +0 -2
  147. package/dist/decorators/message/index.js +0 -18
  148. package/dist/decorators/type.d.ts +0 -2
  149. package/dist/decorators/type.js +0 -2
  150. package/dist/event-pubsub/decorators/index.d.ts +0 -1
  151. package/dist/event-pubsub/decorators/index.js +0 -17
  152. package/dist/event-pubsub/decorators/subscribe-to-events.d.ts +0 -5
  153. package/dist/event-pubsub/decorators/subscribe-to-events.js +0 -11
  154. package/dist/event-pubsub/event-publisher.d.ts +0 -7
  155. package/dist/event-pubsub/event-publisher.js +0 -13
  156. package/dist/event-pubsub/event-subscriber-registry.d.ts +0 -23
  157. package/dist/event-pubsub/event-subscriber-registry.js +0 -80
  158. package/dist/event-pubsub/event-subscriber.d.ts +0 -13
  159. package/dist/event-pubsub/event-subscriber.js +0 -24
  160. package/dist/event-pubsub/index.d.ts +0 -5
  161. package/dist/event-pubsub/index.js +0 -21
  162. package/dist/event-pubsub/interfaces/event-publisher.interface.d.ts +0 -4
  163. package/dist/event-pubsub/interfaces/event-publisher.interface.js +0 -2
  164. package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.d.ts +0 -13
  165. package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.js +0 -2
  166. package/dist/event-pubsub/interfaces/event-subscriber.interface.d.ts +0 -9
  167. package/dist/event-pubsub/interfaces/event-subscriber.interface.js +0 -2
  168. package/dist/event-pubsub/interfaces/index.d.ts +0 -3
  169. package/dist/event-pubsub/interfaces/index.js +0 -19
  170. package/dist/index.d.ts +0 -8
  171. package/dist/meta/aggregate-es/command-handler-map.d.ts +0 -8
  172. package/dist/meta/aggregate-es/command-handler-map.js +0 -43
  173. package/dist/meta/aggregate-es/event-applier-map.d.ts +0 -9
  174. package/dist/meta/aggregate-es/event-applier-map.js +0 -43
  175. package/dist/meta/aggregate-es/index.d.ts +0 -2
  176. package/dist/meta/aggregate-es/index.js +0 -18
  177. package/dist/meta/command.metadata.d.ts +0 -8
  178. package/dist/meta/command.metadata.js +0 -27
  179. package/dist/meta/event.metadata.d.ts +0 -8
  180. package/dist/meta/event.metadata.js +0 -27
  181. package/dist/meta/index.d.ts +0 -3
  182. package/dist/meta/index.js +0 -19
  183. package/dist/package.json +0 -1
  184. package/dist/types/class-static.d.ts +0 -2
  185. package/dist/types/class-static.js +0 -2
  186. package/dist/types/class.d.ts +0 -2
  187. package/dist/types/class.js +0 -2
  188. package/dist/types/index.d.ts +0 -2
  189. package/dist/types/index.js +0 -18
  190. package/dist/utils/index.d.ts +0 -1
  191. package/dist/utils/index.js +0 -17
  192. package/dist/utils/to-array.d.ts +0 -1
  193. package/dist/utils/to-array.js +0 -7
  194. /package/{dist/index.js → index.js} +0 -0
package/package.json CHANGED
@@ -1,62 +1 @@
1
- {
2
- "name": "ddd-node",
3
- "version": "27.0.0",
4
- "description": "Domain Driven Design base for NodeJs",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "scripts": {
9
- "build": "rm -rf dist && tsc -p src/tsconfig.build.json && tsc-alias -p src/tsconfig.build.json && node setup-package.js",
10
- "test": "mocha"
11
- },
12
- "files": [
13
- "dist"
14
- ],
15
- "repository": {
16
- "type": "git",
17
- "url": "https://github.com/nqd881/ddd-node"
18
- },
19
- "keywords": [
20
- "ddd",
21
- "ddd-node",
22
- "ddd-base",
23
- "ddd-ts",
24
- "ddd-js"
25
- ],
26
- "author": "Quoc Dai",
27
- "license": "ISC",
28
- "devDependencies": {
29
- "@types/chai": "^4.3.16",
30
- "@types/lodash": "^4.14.200",
31
- "@types/mocha": "^10.0.6",
32
- "@types/uuid": "^9.0.6",
33
- "chai": "^5.1.1",
34
- "chai-deep-match": "^1.2.1",
35
- "ddd-node": "file:dist",
36
- "mocha": "^10.4.0",
37
- "ts-node": "^10.9.1",
38
- "tsconfig-paths": "^4.2.0",
39
- "typescript": "^5.2.2"
40
- },
41
- "dependencies": {
42
- "lodash": "^4.17.21",
43
- "reflect-metadata": "^0.1.13",
44
- "tsc-alias": "^1.8.8",
45
- "type-fest": "^4.20.1",
46
- "uuid": "^9.0.1"
47
- },
48
- "mocha": {
49
- "require": [
50
- "tsconfig-paths/register",
51
- "ts-node/register"
52
- ],
53
- "node-option": [
54
- "experimental-specifier-resolution=node",
55
- "import=./ts-loader.js"
56
- ],
57
- "spec": [
58
- "test/**/*.spec.ts"
59
- ],
60
- "exit": true
61
- }
62
- }
1
+ {"name":"ddd-node","version":"28.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","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","ts-node":"^10.9.2","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
@@ -1,5 +0,0 @@
1
- export * from "./prop";
2
- export * from "./model";
3
- export * from "./static";
4
- export * from "./mutable";
5
- export * from "./props-validator";
@@ -1,21 +0,0 @@
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("./prop"), exports);
18
- __exportStar(require("./model"), exports);
19
- __exportStar(require("./static"), exports);
20
- __exportStar(require("./mutable"), exports);
21
- __exportStar(require("./props-validator"), exports);
@@ -1,12 +0,0 @@
1
- import { AnyModel, ModelClass } from "../model";
2
- import { ModelPropsValidator } from "../meta";
3
- export type ModelOptions<T extends AnyModel = AnyModel> = {
4
- name?: string;
5
- version?: number;
6
- domain?: string;
7
- propsValidator?: ModelPropsValidator<T>;
8
- autoRegisterModel?: boolean;
9
- };
10
- export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(options?: ModelOptions<I>): any;
11
- export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(name: string, options?: ModelOptions<I>): any;
12
- export declare function Model<T extends ModelClass, I extends InstanceType<T> = InstanceType<T>>(name: string, version: number, options?: ModelOptions<I>): any;
@@ -1,54 +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.Model = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const domain_1 = require("../domain");
9
- const meta_1 = require("../meta");
10
- function Model(p1, p2, p3) {
11
- const defaultModelOptions = {
12
- autoRegisterModel: true,
13
- };
14
- let modelOptions = {};
15
- if (p1 && !p2 && !p3) {
16
- if (typeof p1 === "string")
17
- modelOptions = { name: p1 };
18
- else
19
- modelOptions = p1;
20
- }
21
- else if (p1 && p2 && !p3) {
22
- if (typeof p2 === "number")
23
- modelOptions = { name: p1, version: p2 };
24
- else
25
- modelOptions = { name: p1, ...p2 };
26
- }
27
- else if (p1 && p2 && p3) {
28
- modelOptions = {
29
- name: p1,
30
- version: p2,
31
- ...p3,
32
- };
33
- }
34
- modelOptions = lodash_1.default.merge(defaultModelOptions, modelOptions);
35
- return (target) => {
36
- if (modelOptions?.name)
37
- (0, meta_1.defineModelName)(target, modelOptions.name);
38
- if (modelOptions?.version)
39
- (0, meta_1.defineModelVersion)(target, modelOptions.version);
40
- if (modelOptions?.domain)
41
- (0, meta_1.defineModelDomain)(target, modelOptions.domain);
42
- if (modelOptions?.autoRegisterModel) {
43
- const domainName = (0, meta_1.getModelDomain)(target);
44
- if (!domain_1.domainManager.hasDomain(domainName)) {
45
- domain_1.domainManager.addDomain(new domain_1.Domain(domainName));
46
- }
47
- const domain = domain_1.domainManager.getDomain(domainName);
48
- domain.modelRegistry.registerModel(target);
49
- }
50
- if (modelOptions?.propsValidator)
51
- (0, meta_1.defineModelPropsValidator)(target, modelOptions.propsValidator);
52
- };
53
- }
54
- exports.Model = Model;
@@ -1,2 +0,0 @@
1
- import { AbstractModelClass, ModelClass } from "../model";
2
- export declare const Mutable: (mutable?: boolean) => <T extends ModelClass<import("../model").AnyModel> | AbstractModelClass<import("../model").AnyModel>>(target: T) => void;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mutable = void 0;
4
- const meta_1 = require("../meta");
5
- const Mutable = (mutable = true) => {
6
- return (target) => {
7
- (0, meta_1.defineModelMutable)(target, mutable);
8
- };
9
- };
10
- exports.Mutable = Mutable;
@@ -1,2 +0,0 @@
1
- import { AnyModel, PropsOf } from "../model";
2
- export declare const Prop: <T extends AnyModel>(propTargetKey?: keyof PropsOf<T> | undefined) => (target: T, key: PropertyKey) => void;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Prop = void 0;
4
- const meta_1 = require("../meta");
5
- const Prop = (propTargetKey) => {
6
- return (target, key) => {
7
- (0, meta_1.defineModelProp)(target, key, propTargetKey ?? key);
8
- };
9
- };
10
- exports.Prop = Prop;
@@ -1,2 +0,0 @@
1
- import { AnyModel, ModelClass, ModelPropsValidator } from "..";
2
- export declare const PropsValidator: <T extends AnyModel>(target: ModelClass<T>, key: string, propertyDescriptor: TypedPropertyDescriptor<ModelPropsValidator<T>>) => void;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PropsValidator = void 0;
4
- const __1 = require("..");
5
- const PropsValidator = (target, key, propertyDescriptor) => {
6
- (0, __1.defineModelPropsValidator)(target, propertyDescriptor.value);
7
- };
8
- exports.PropsValidator = PropsValidator;
@@ -1,3 +0,0 @@
1
- import { ModelClass } from "../model";
2
- import { ModelStaticValueBuilder } from "../meta";
3
- export declare const Static: <T extends ModelClass<import("../model").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: ModelStaticValueBuilder<I>) => (target: T, key: PropertyKey) => void;
@@ -1,11 +0,0 @@
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.setModelStaticValue)(target, key, builder);
8
- (0, meta_1.defineModelStaticValueProperty)(target, key);
9
- };
10
- };
11
- exports.Static = Static;
@@ -1,24 +0,0 @@
1
- import { ModelRegistry } from "./model-registry";
2
- export type DomainName = string;
3
- export declare const DEFAULT_DOMAIN = "__default__";
4
- export declare class Domain {
5
- readonly name: DomainName;
6
- readonly modelRegistry: ModelRegistry;
7
- constructor(name: DomainName);
8
- }
9
- export declare class DomainMap extends Map<DomainName, Domain> {
10
- }
11
- export declare class DomainManager {
12
- static _instance: DomainManager;
13
- static instance(): DomainManager;
14
- private constructor();
15
- private _domains;
16
- isDefaultDomain(domain: Domain): boolean;
17
- hasDomain(domainName: DomainName): boolean;
18
- getDomain(): Domain;
19
- getDomain(domainName: typeof DEFAULT_DOMAIN): Domain;
20
- getDomain(domainName: DomainName): Domain | undefined;
21
- addDomain(domain: Domain): void;
22
- deleteDomain(domainName: DomainName): void;
23
- }
24
- export declare const domainManager: DomainManager;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.domainManager = exports.DomainManager = exports.DomainMap = exports.Domain = exports.DEFAULT_DOMAIN = void 0;
4
- const model_registry_1 = require("./model-registry");
5
- exports.DEFAULT_DOMAIN = "__default__";
6
- class Domain {
7
- constructor(name) {
8
- this.name = name;
9
- this.modelRegistry = new model_registry_1.ModelRegistry();
10
- }
11
- }
12
- exports.Domain = Domain;
13
- class DomainMap extends Map {
14
- }
15
- exports.DomainMap = DomainMap;
16
- class DomainManager {
17
- static instance() {
18
- if (!this._instance)
19
- this._instance = new DomainManager();
20
- this._instance.addDomain(new Domain(exports.DEFAULT_DOMAIN));
21
- return this._instance;
22
- }
23
- constructor() {
24
- this._domains = new DomainMap();
25
- }
26
- isDefaultDomain(domain) {
27
- return domain.name === exports.DEFAULT_DOMAIN;
28
- }
29
- hasDomain(domainName) {
30
- return this._domains.has(domainName);
31
- }
32
- getDomain(domainName) {
33
- if (domainName)
34
- return this._domains.get(domainName);
35
- if (!domainName)
36
- return this._domains.get(exports.DEFAULT_DOMAIN);
37
- }
38
- addDomain(domain) {
39
- if (this.hasDomain(domain.name))
40
- throw new Error(`Domain ${domain.name} has already exist`);
41
- this._domains.set(domain.name, domain);
42
- }
43
- deleteDomain(domainName) {
44
- this._domains.delete(domainName);
45
- }
46
- }
47
- exports.DomainManager = DomainManager;
48
- exports.domainManager = DomainManager.instance();
@@ -1,5 +0,0 @@
1
- export * from "./meta";
2
- export * from "./model";
3
- export * from "./decorators";
4
- export * from "./domain";
5
- export * from "./model-registry";
@@ -1,21 +0,0 @@
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("./model"), exports);
19
- __exportStar(require("./decorators"), exports);
20
- __exportStar(require("./domain"), exports);
21
- __exportStar(require("./model-registry"), exports);
@@ -1,8 +0,0 @@
1
- export * from "./model-id";
2
- export * from "./model-name";
3
- export * from "./model-props-map";
4
- export * from "./model-static-values";
5
- export * from "./model-props-validator";
6
- export * from "./model-version";
7
- export * from "./model-domain";
8
- export * from "./model-mutable";
@@ -1,24 +0,0 @@
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("./model-id"), exports);
18
- __exportStar(require("./model-name"), exports);
19
- __exportStar(require("./model-props-map"), exports);
20
- __exportStar(require("./model-static-values"), exports);
21
- __exportStar(require("./model-props-validator"), exports);
22
- __exportStar(require("./model-version"), exports);
23
- __exportStar(require("./model-domain"), exports);
24
- __exportStar(require("./model-mutable"), exports);
@@ -1,4 +0,0 @@
1
- import { AnyModel, ModelClass } from "../model";
2
- export declare const ModelDomainMetaKey: unique symbol;
3
- export declare const defineModelDomain: <T extends AnyModel>(target: ModelClass<T>, domainName: string) => void;
4
- export declare const getModelDomain: <T extends AnyModel>(target: ModelClass<T>) => string;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelDomain = exports.defineModelDomain = exports.ModelDomainMetaKey = void 0;
4
- const domain_1 = require("../domain");
5
- exports.ModelDomainMetaKey = Symbol.for("MODEL_DOMAIN");
6
- const defineModelDomain = (target, domainName) => {
7
- Reflect.defineMetadata(exports.ModelDomainMetaKey, domainName, target);
8
- };
9
- exports.defineModelDomain = defineModelDomain;
10
- const getModelDomain = (target) => {
11
- if (!Reflect.hasOwnMetadata(exports.ModelDomainMetaKey, target))
12
- (0, exports.defineModelDomain)(target, domain_1.DEFAULT_DOMAIN);
13
- return Reflect.getOwnMetadata(exports.ModelDomainMetaKey, target);
14
- };
15
- exports.getModelDomain = getModelDomain;
@@ -1,16 +0,0 @@
1
- import { AnyModel, ModelClass } from "../model";
2
- import { ModelName } from "./model-name";
3
- import { ModelVersion } from "./model-version";
4
- export type ModelId = string;
5
- export type ModelIdFormat = `${string}${typeof $ModelId.Divider}${number}`;
6
- export declare class $ModelId extends String {
7
- readonly modelName: ModelName;
8
- readonly modelVersion: ModelVersion;
9
- static Divider: "|";
10
- static Format: RegExp;
11
- static fromValue(value: ModelId): $ModelId;
12
- static makeValue(modelName: ModelName, modelVersion: ModelVersion): ModelId;
13
- constructor(modelName: ModelName, modelVersion: ModelVersion);
14
- }
15
- export declare const setModelId: <T extends AnyModel>(target: ModelClass<T>, modelId: $ModelId) => void;
16
- export declare const getModelId: <T extends AnyModel>(target: ModelClass<T>) => ModelId;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelId = exports.setModelId = exports.$ModelId = void 0;
4
- const model_name_1 = require("./model-name");
5
- const model_version_1 = require("./model-version");
6
- class $ModelId extends String {
7
- static fromValue(value) {
8
- if (!this.Format.test(value))
9
- throw new Error(`Cannot parse $ModelId from value ${value}`);
10
- const [modelName, modelVersion] = value.split(this.Divider);
11
- return new $ModelId(modelName, Number(modelVersion));
12
- }
13
- static makeValue(modelName, modelVersion) {
14
- const modelId = `${modelName}${this.Divider}${modelVersion}`;
15
- return modelId;
16
- }
17
- constructor(modelName, modelVersion) {
18
- super($ModelId.makeValue(modelName, modelVersion));
19
- this.modelName = modelName;
20
- this.modelVersion = modelVersion;
21
- }
22
- }
23
- exports.$ModelId = $ModelId;
24
- $ModelId.Divider = "|";
25
- $ModelId.Format = new RegExp(/^.+\|[0-9]+$/);
26
- const ModelIdMetaKey = Symbol.for("MODEL_ID");
27
- const setModelId = (target, modelId) => {
28
- Reflect.defineMetadata(ModelIdMetaKey, modelId, target);
29
- };
30
- exports.setModelId = setModelId;
31
- const getModelId = (target) => {
32
- if (!Reflect.hasOwnMetadata(ModelIdMetaKey, target)) {
33
- const modelName = (0, model_name_1.getModelName)(target);
34
- const modelVersion = (0, model_version_1.getModelVersion)(target);
35
- (0, exports.setModelId)(target, new $ModelId(modelName, modelVersion));
36
- }
37
- return Reflect.getOwnMetadata(ModelIdMetaKey, target).valueOf();
38
- };
39
- exports.getModelId = getModelId;
@@ -1,2 +0,0 @@
1
- export declare const defineModelMutable: (target: object, mutable: boolean) => void;
2
- export declare const getModelMutable: (target: object) => boolean | undefined;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelMutable = exports.defineModelMutable = void 0;
4
- const ModelMutableMetaKey = Symbol.for("MODEL_MUTABLE");
5
- const defineModelMutable = (target, mutable) => {
6
- if (Reflect.hasMetadata(ModelMutableMetaKey, target))
7
- return;
8
- Reflect.defineMetadata(ModelMutableMetaKey, mutable, target);
9
- };
10
- exports.defineModelMutable = defineModelMutable;
11
- const getModelMutable = (target) => {
12
- return Reflect.getMetadata(ModelMutableMetaKey, target);
13
- };
14
- exports.getModelMutable = getModelMutable;
@@ -1,8 +0,0 @@
1
- import { AnyModel, ModelClass } from "../model";
2
- export type ModelName = string;
3
- export declare class $ModelName extends String {
4
- static validate(modelName: ModelName): void;
5
- constructor(modelName: ModelName);
6
- }
7
- export declare const defineModelName: <T extends AnyModel>(target: ModelClass<T>, modelName: ModelName) => void;
8
- export declare const getModelName: <T extends AnyModel>(target: ModelClass<T>) => ModelName;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelName = exports.defineModelName = exports.$ModelName = void 0;
4
- class $ModelName extends String {
5
- static validate(modelName) {
6
- if (modelName.trim().length === 0)
7
- throw new Error("Model name cannot be an empty string");
8
- }
9
- constructor(modelName) {
10
- $ModelName.validate(modelName);
11
- super(modelName);
12
- }
13
- }
14
- exports.$ModelName = $ModelName;
15
- const ModelNameMetaKey = Symbol.for("MODEL_NAME");
16
- const defineModelName = (target, modelName) => {
17
- Reflect.defineMetadata(ModelNameMetaKey, new $ModelName(modelName), target);
18
- };
19
- exports.defineModelName = defineModelName;
20
- const getModelName = (target) => {
21
- if (!Reflect.hasOwnMetadata(ModelNameMetaKey, target))
22
- (0, exports.defineModelName)(target, target.name);
23
- return Reflect.getOwnMetadata(ModelNameMetaKey, target).valueOf();
24
- };
25
- exports.getModelName = getModelName;
@@ -1,6 +0,0 @@
1
- import { AnyModel, PropsOf } from "../model";
2
- export declare class ModelPropsMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, keyof PropsOf<T>> {
3
- }
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 PropsOf<T> | undefined) => void;
6
- export declare const getModelPropsMap: <T extends AnyModel = AnyModel>(target: object) => ModelPropsMap<T>;
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelPropsMap = exports.defineModelProp = exports.getOwnModelPropsMap = exports.ModelPropsMap = void 0;
4
- const model_1 = require("../model");
5
- const OwnModelPropsMapMetaKey = Symbol.for("OWN_MODEL_PROPS_MAP");
6
- class ModelPropsMap extends Map {
7
- }
8
- exports.ModelPropsMap = ModelPropsMap;
9
- // target is prototype
10
- const getOwnModelPropsMap = (target) => {
11
- if (!Reflect.hasOwnMetadata(OwnModelPropsMapMetaKey, target))
12
- Reflect.defineMetadata(OwnModelPropsMapMetaKey, new ModelPropsMap(), target);
13
- return Reflect.getOwnMetadata(OwnModelPropsMapMetaKey, target);
14
- };
15
- exports.getOwnModelPropsMap = getOwnModelPropsMap;
16
- const defineModelProp = (target, key, propTargetKey) => {
17
- const ownModelPropsMap = (0, exports.getOwnModelPropsMap)(target);
18
- if (propTargetKey)
19
- ownModelPropsMap.set(key, propTargetKey);
20
- };
21
- exports.defineModelProp = defineModelProp;
22
- const ModelPropsMapMetaKey = Symbol.for("MODEL_PROPS_MAP");
23
- const getModelPropsMap = (target) => {
24
- if (!Reflect.hasOwnMetadata(ModelPropsMapMetaKey, target)) {
25
- const buildPropsMap = (target) => {
26
- let _target = target;
27
- const result = new ModelPropsMap();
28
- const ownPropsMapList = [];
29
- do {
30
- if (model_1.ModelBase.isModel(_target)) {
31
- const ownModelPropsMap = (0, exports.getOwnModelPropsMap)(_target);
32
- ownPropsMapList.unshift(ownModelPropsMap);
33
- }
34
- _target = Reflect.getPrototypeOf(_target);
35
- } while (_target !== null);
36
- ownPropsMapList.forEach((ownModelPropsMap) => {
37
- ownModelPropsMap.forEach((targetPropKey, key) => result.set(key, targetPropKey));
38
- });
39
- return result;
40
- };
41
- Reflect.defineMetadata(ModelPropsMapMetaKey, buildPropsMap(target), target);
42
- }
43
- return Reflect.getOwnMetadata(ModelPropsMapMetaKey, target);
44
- };
45
- exports.getModelPropsMap = getModelPropsMap;
@@ -1,6 +0,0 @@
1
- import { AnyModel, PropsOf } from "../model";
2
- export type ModelPropsValidator<T extends AnyModel = AnyModel> = (props: PropsOf<T>) => void;
3
- export declare const defineModelPropsValidator: <T extends AnyModel>(target: object, validator: ModelPropsValidator<T>) => void;
4
- export declare const getOwnModelPropsValidator: <T extends AnyModel>(target: object) => ModelPropsValidator<T> | undefined;
5
- export declare const ModelPropsValidatorsMetaKey: unique symbol;
6
- export declare const getModelPropsValidators: (target: object) => ModelPropsValidator[];
@@ -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.getModelPropsValidators = exports.ModelPropsValidatorsMetaKey = exports.getOwnModelPropsValidator = exports.defineModelPropsValidator = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const OwnPropsValidatorMetaKey = Symbol.for("OWN_MODEL_PROPS_VALIDATOR");
9
- const defineModelPropsValidator = (target, validator) => {
10
- Reflect.defineMetadata(OwnPropsValidatorMetaKey, validator, target);
11
- };
12
- exports.defineModelPropsValidator = defineModelPropsValidator;
13
- const getOwnModelPropsValidator = (target) => {
14
- return Reflect.getOwnMetadata(OwnPropsValidatorMetaKey, target);
15
- };
16
- exports.getOwnModelPropsValidator = getOwnModelPropsValidator;
17
- exports.ModelPropsValidatorsMetaKey = Symbol.for("MODEL_PROPS_VALIDATORS");
18
- const getModelPropsValidators = (target) => {
19
- if (!Reflect.hasOwnMetadata(exports.ModelPropsValidatorsMetaKey, target)) {
20
- let result = [];
21
- let _target = target;
22
- do {
23
- const ownValidator = (0, exports.getOwnModelPropsValidator)(_target);
24
- if (ownValidator)
25
- result.push(ownValidator);
26
- _target = Reflect.getPrototypeOf(_target);
27
- } while (_target !== null);
28
- result = lodash_1.default.uniq(result);
29
- Reflect.defineMetadata(exports.ModelPropsValidatorsMetaKey, result, target);
30
- }
31
- return Reflect.getOwnMetadata(exports.ModelPropsValidatorsMetaKey, target);
32
- };
33
- exports.getModelPropsValidators = getModelPropsValidators;
@@ -1,13 +0,0 @@
1
- import { AnyModel, ModelClass } from "../model";
2
- export type ModelStaticValueBuilder<T extends AnyModel = AnyModel> = () => T;
3
- export declare class ModelStaticValue<T extends AnyModel = AnyModel> {
4
- private _value;
5
- constructor(value: T | ModelStaticValueBuilder<T>);
6
- get value(): T;
7
- }
8
- export declare class ModelStaticValuesMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, ModelStaticValue<T>> {
9
- }
10
- export declare const getOwnModelStaticValues: <T extends AnyModel>(target: object) => ModelStaticValuesMap<T>;
11
- export declare const setModelStaticValue: <T extends AnyModel>(target: object, key: PropertyKey, value: T | ModelStaticValueBuilder<T>) => void;
12
- export declare const getModelStaticValue: (target: object, key: PropertyKey) => AnyModel | undefined;
13
- export declare const defineModelStaticValueProperty: (target: ModelClass, key: PropertyKey) => void;