ddd-node 21.0.2 → 22.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 (95) hide show
  1. package/dist/core/aggregate/aggregate-base/aggregate.builder.d.ts +1 -2
  2. package/dist/core/aggregate/aggregate-base/aggregate.builder.js +4 -7
  3. package/dist/core/aggregate/aggregate-base/aggregate.d.ts +2 -2
  4. package/dist/core/aggregate/aggregate-base/aggregate.js +6 -1
  5. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-metadata.d.ts +9 -0
  6. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +4 -3
  7. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +10 -12
  8. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +8 -10
  9. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +31 -18
  10. package/dist/core/aggregate/event-sourced-aggregate/index.d.ts +0 -1
  11. package/dist/core/aggregate/event-sourced-aggregate/index.js +0 -1
  12. package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +8 -0
  13. package/dist/core/aggregate/event-sourced-aggregate/snapshot.js +2 -0
  14. package/dist/core/aggregate/state-aggregate/state-aggregate.builder.js +4 -4
  15. package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +2 -2
  16. package/dist/core/aggregate/state-aggregate/state-aggregate.js +1 -2
  17. package/dist/core/entity/entity.builder.d.ts +2 -2
  18. package/dist/core/entity/entity.builder.js +2 -2
  19. package/dist/core/entity/entity.d.ts +3 -5
  20. package/dist/core/entity/entity.js +3 -3
  21. package/dist/core/enum/enum.d.ts +3 -5
  22. package/dist/core/enum/enum.js +10 -17
  23. package/dist/core/enum/index.d.ts +0 -1
  24. package/dist/core/enum/index.js +0 -1
  25. package/dist/core/id/id.d.ts +6 -4
  26. package/dist/core/id/id.js +17 -8
  27. package/dist/core/id/index.d.ts +0 -2
  28. package/dist/core/id/index.js +0 -2
  29. package/dist/core/identifiable-model/identifiable-model.builder.d.ts +9 -0
  30. package/dist/core/identifiable-model/identifiable-model.builder.js +23 -0
  31. package/dist/core/identifiable-model/identifiable-model.d.ts +13 -0
  32. package/dist/core/identifiable-model/identifiable-model.js +23 -0
  33. package/dist/core/identifiable-model/index.d.ts +2 -0
  34. package/dist/core/{id/services → identifiable-model}/index.js +2 -2
  35. package/dist/core/index.d.ts +3 -3
  36. package/dist/core/index.js +3 -3
  37. package/dist/core/message/command/command-model.metadata.d.ts +6 -0
  38. package/dist/core/message/command/command-model.metadata.js +2 -0
  39. package/dist/core/message/command/command.builder.js +5 -5
  40. package/dist/core/message/command/command.d.ts +4 -9
  41. package/dist/core/message/command/command.js +11 -17
  42. package/dist/core/message/command/index.d.ts +1 -0
  43. package/dist/core/message/command/index.js +1 -0
  44. package/dist/core/message/event/event-model.metadata.d.ts +5 -0
  45. package/dist/core/message/event/event-model.metadata.js +2 -0
  46. package/dist/core/message/event/event.builder.d.ts +1 -1
  47. package/dist/core/message/event/event.builder.js +8 -8
  48. package/dist/core/message/event/event.d.ts +7 -12
  49. package/dist/core/message/event/event.js +16 -16
  50. package/dist/core/message/event/index.d.ts +1 -0
  51. package/dist/core/message/event/index.js +1 -0
  52. package/dist/core/message/message-base/message.builder.d.ts +5 -7
  53. package/dist/core/message/message-base/message.builder.js +15 -22
  54. package/dist/core/message/message-base/message.d.ts +5 -9
  55. package/dist/core/message/message-base/message.js +9 -6
  56. package/dist/core/value-object/value-object.builder.js +2 -2
  57. package/dist/core/value-object/value-object.d.ts +1 -1
  58. package/dist/decorators/aggregate-es/handle.js +1 -1
  59. package/dist/decorators/aggregate-es/when.js +1 -1
  60. package/dist/meta/index.d.ts +0 -1
  61. package/dist/meta/index.js +0 -1
  62. package/dist/model/core/index.d.ts +1 -0
  63. package/dist/model/core/index.js +1 -0
  64. package/dist/model/core/model-metadata.d.ts +13 -0
  65. package/dist/model/core/model-metadata.js +2 -0
  66. package/dist/model/core/model.builder.d.ts +1 -1
  67. package/dist/model/core/model.builder.js +1 -1
  68. package/dist/model/core/model.d.ts +12 -15
  69. package/dist/model/core/model.js +37 -32
  70. package/dist/model/domain.d.ts +4 -0
  71. package/dist/model/domain.js +10 -2
  72. package/dist/model/meta/model-domain.d.ts +0 -1
  73. package/dist/model/meta/model-domain.js +3 -3
  74. package/dist/model/model-registry.js +4 -4
  75. package/dist/package.json +1 -1
  76. package/package.json +1 -2
  77. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.model-metadata.d.ts +0 -9
  78. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.model-metadata.js +0 -22
  79. package/dist/core/enum/enum.builder.d.ts +0 -9
  80. package/dist/core/enum/enum.builder.js +0 -20
  81. package/dist/core/id/interface.d.ts +0 -4
  82. package/dist/core/id/services/index.d.ts +0 -2
  83. package/dist/core/id/services/snowflake.d.ts +0 -8
  84. package/dist/core/id/services/snowflake.js +0 -14
  85. package/dist/core/id/services/uuid4.d.ts +0 -5
  86. package/dist/core/id/services/uuid4.js +0 -18
  87. package/dist/core/model-with-id/index.d.ts +0 -2
  88. package/dist/core/model-with-id/index.js +0 -18
  89. package/dist/core/model-with-id/model-with-id.builder.d.ts +0 -11
  90. package/dist/core/model-with-id/model-with-id.builder.js +0 -22
  91. package/dist/core/model-with-id/model-with-id.d.ts +0 -9
  92. package/dist/core/model-with-id/model-with-id.js +0 -17
  93. package/dist/meta/id.metadata.d.ts +0 -4
  94. package/dist/meta/id.metadata.js +0 -16
  95. /package/dist/core/{id/interface.js → aggregate/event-sourced-aggregate/event-sourced-aggregate-model-metadata.js} +0 -0
@@ -3,49 +3,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ModelBase = exports.ModelMetadata = void 0;
6
+ exports.ModelBase = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const meta_1 = require("../meta");
9
9
  const errors_1 = require("./errors");
10
- class ModelMetadata {
11
- constructor(modelClass) {
12
- this.modelClass = modelClass;
13
- }
14
- get modelMutable() {
15
- return (0, meta_1.getModelMutable)(this.modelClass) ?? false;
16
- }
17
- get modelName() {
18
- return (0, meta_1.getModelName)(this.modelClass);
10
+ class ModelBase {
11
+ static isModel(model) {
12
+ return model instanceof ModelBase;
19
13
  }
20
- get modelVersion() {
21
- return (0, meta_1.getModelVersion)(this.modelClass);
14
+ static modelMutable() {
15
+ return (0, meta_1.getModelMutable)(this) ?? false;
22
16
  }
23
- get modelId() {
24
- return (0, meta_1.getModelId)(this.modelClass);
17
+ static modelName() {
18
+ return (0, meta_1.getModelName)(this);
25
19
  }
26
- get ownPropsValidator() {
27
- return (0, meta_1.getOwnPropsValidator)(this.modelClass);
20
+ static modelVersion() {
21
+ return (0, meta_1.getModelVersion)(this);
28
22
  }
29
- get propsValidators() {
30
- return (0, meta_1.getPropsValidators)(this.modelClass);
23
+ static modelId() {
24
+ return (0, meta_1.getModelId)(this);
31
25
  }
32
- get ownStaticValues() {
33
- return (0, meta_1.getOwnStaticValues)(this.modelClass);
26
+ static ownPropsValidator() {
27
+ return (0, meta_1.getOwnPropsValidator)(this);
34
28
  }
35
- get ownPropsMap() {
36
- return (0, meta_1.getOwnPropsMap)(this.modelClass.prototype);
29
+ static propsValidators() {
30
+ return (0, meta_1.getPropsValidators)(this);
37
31
  }
38
- get propsMap() {
39
- return (0, meta_1.getPropsMap)(this.modelClass.prototype);
32
+ static ownStaticValues() {
33
+ return (0, meta_1.getOwnStaticValues)(this);
40
34
  }
41
- }
42
- exports.ModelMetadata = ModelMetadata;
43
- class ModelBase {
44
- static isModel(model) {
45
- return model instanceof ModelBase;
35
+ static ownPropsMap() {
36
+ return (0, meta_1.getOwnPropsMap)(this.prototype);
46
37
  }
47
- static modelMetadata() {
48
- return new ModelMetadata(this);
38
+ static propsMap() {
39
+ return (0, meta_1.getPropsMap)(this.prototype);
49
40
  }
50
41
  constructor() {
51
42
  this._props = ModelBase.EMPTY_PROPS;
@@ -67,7 +58,18 @@ class ModelBase {
67
58
  });
68
59
  }
69
60
  modelMetadata() {
70
- return this.constructor.modelMetadata();
61
+ const modelClass = this.constructor;
62
+ return {
63
+ modelMutable: modelClass.modelMutable(),
64
+ modelId: modelClass.modelId(),
65
+ modelName: modelClass.modelName(),
66
+ modelVersion: modelClass.modelVersion(),
67
+ ownPropsValidator: modelClass.ownPropsValidator(),
68
+ propsValidators: modelClass.propsValidators(),
69
+ ownStaticValues: modelClass.ownStaticValues(),
70
+ ownPropsMap: modelClass.ownPropsMap(),
71
+ propsMap: modelClass.propsMap(),
72
+ };
71
73
  }
72
74
  validateProps(props) {
73
75
  const propsValidators = this.modelMetadata().propsValidators;
@@ -89,6 +91,9 @@ class ModelBase {
89
91
  }
90
92
  });
91
93
  }
94
+ metadata() {
95
+ return {};
96
+ }
92
97
  initializeProps(props) {
93
98
  if (!this.propsIsEmpty())
94
99
  throw new errors_1.PropsInitializedError();
@@ -1,5 +1,6 @@
1
1
  import { ModelRegistry } from "./model-registry";
2
2
  export type DomainName = string;
3
+ export declare const DEFAULT_DOMAIN = "__default__";
3
4
  export declare class Domain {
4
5
  readonly name: DomainName;
5
6
  readonly modelRegistry: ModelRegistry;
@@ -12,7 +13,10 @@ export declare class DomainManager {
12
13
  static instance(): DomainManager;
13
14
  private constructor();
14
15
  private _domains;
16
+ isDefaultDomain(domain: Domain): boolean;
15
17
  hasDomain(domainName: DomainName): boolean;
18
+ getDomain(): Domain;
19
+ getDomain(domainName: typeof DEFAULT_DOMAIN): Domain;
16
20
  getDomain(domainName: DomainName): Domain | undefined;
17
21
  addDomain(domain: Domain): void;
18
22
  deleteDomain(domainName: DomainName): void;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.domainManager = exports.DomainManager = exports.DomainMap = exports.Domain = void 0;
3
+ exports.domainManager = exports.DomainManager = exports.DomainMap = exports.Domain = exports.DEFAULT_DOMAIN = void 0;
4
4
  const model_registry_1 = require("./model-registry");
5
+ exports.DEFAULT_DOMAIN = "__default__";
5
6
  class Domain {
6
7
  constructor(name) {
7
8
  this.name = name;
@@ -16,16 +17,23 @@ class DomainManager {
16
17
  static instance() {
17
18
  if (!this._instance)
18
19
  this._instance = new DomainManager();
20
+ this._instance.addDomain(new Domain(exports.DEFAULT_DOMAIN));
19
21
  return this._instance;
20
22
  }
21
23
  constructor() {
22
24
  this._domains = new DomainMap();
23
25
  }
26
+ isDefaultDomain(domain) {
27
+ return domain.name === exports.DEFAULT_DOMAIN;
28
+ }
24
29
  hasDomain(domainName) {
25
30
  return this._domains.has(domainName);
26
31
  }
27
32
  getDomain(domainName) {
28
- return this._domains.get(domainName);
33
+ if (domainName)
34
+ return this._domains.get(domainName);
35
+ if (!domainName)
36
+ return this._domains.get(exports.DEFAULT_DOMAIN);
29
37
  }
30
38
  addDomain(domain) {
31
39
  if (this.hasDomain(domain.name))
@@ -1,5 +1,4 @@
1
1
  import { AnyModel, ModelClass } from "../core";
2
2
  export declare const ModelDomainMetaKey: unique symbol;
3
- export declare const DEFAULT_MODEL_DOMAIN = "default";
4
3
  export declare const defineModelDomain: <T extends AnyModel>(target: ModelClass<T>, domainName: string) => void;
5
4
  export declare const getModelDomain: <T extends AnyModel>(target: ModelClass<T>) => string;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelDomain = exports.defineModelDomain = exports.DEFAULT_MODEL_DOMAIN = exports.ModelDomainMetaKey = void 0;
3
+ exports.getModelDomain = exports.defineModelDomain = exports.ModelDomainMetaKey = void 0;
4
+ const domain_1 = require("../domain");
4
5
  exports.ModelDomainMetaKey = Symbol.for("MODEL_DOMAIN");
5
- exports.DEFAULT_MODEL_DOMAIN = "default";
6
6
  const defineModelDomain = (target, domainName) => {
7
7
  Reflect.defineMetadata(exports.ModelDomainMetaKey, domainName, target);
8
8
  };
9
9
  exports.defineModelDomain = defineModelDomain;
10
10
  const getModelDomain = (target) => {
11
11
  if (!Reflect.hasOwnMetadata(exports.ModelDomainMetaKey, target))
12
- (0, exports.defineModelDomain)(target, exports.DEFAULT_MODEL_DOMAIN);
12
+ (0, exports.defineModelDomain)(target, domain_1.DEFAULT_DOMAIN);
13
13
  return Reflect.getOwnMetadata(exports.ModelDomainMetaKey, target);
14
14
  };
15
15
  exports.getModelDomain = getModelDomain;
@@ -37,14 +37,14 @@ class ModelRegistry {
37
37
  modelVersion = p2;
38
38
  }
39
39
  else {
40
- modelName = p1.modelMetadata().modelName;
41
- modelVersion = p1.modelMetadata().modelVersion;
40
+ modelName = p1.modelName();
41
+ modelVersion = p1.modelVersion();
42
42
  }
43
43
  return Boolean(this.getModel(modelName, modelVersion));
44
44
  }
45
45
  registerModel(modelClass) {
46
- const modelName = modelClass.modelMetadata().modelName;
47
- const modelVersion = modelClass.modelMetadata().modelVersion;
46
+ const modelName = modelClass.modelName();
47
+ const modelVersion = modelClass.modelVersion();
48
48
  if (this.hasRegisteredModel(modelName, modelVersion))
49
49
  throw new Error(`Model ${modelName} with version ${modelVersion} has been registered`);
50
50
  const modelVersionMap = this.getModelVersionMap(modelName);
package/dist/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"ddd-node","version":"21.0.2","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","nodejs-snowflake":"^2.0.1","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
1
+ {"name":"ddd-node","version":"22.0.0","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddd-node",
3
- "version": "21.0.2",
3
+ "version": "22.0.0",
4
4
  "description": "Domain Driven Design base for NodeJs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -40,7 +40,6 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "lodash": "^4.17.21",
43
- "nodejs-snowflake": "^2.0.1",
44
43
  "reflect-metadata": "^0.1.13",
45
44
  "tsc-alias": "^1.8.8",
46
45
  "type-fest": "^4.20.1",
@@ -1,9 +0,0 @@
1
- import { AnyEventSourcedAggregate, EventSourcedAggregateClass } from "..";
2
- export declare class ESAModelMetadata<T extends AnyEventSourcedAggregate> {
3
- private aggregateClass;
4
- constructor(aggregateClass: EventSourcedAggregateClass<T>);
5
- get ownEventApplierMap(): import("../../../meta").EventApplierMap;
6
- get eventApplierMap(): import("../../../meta").EventApplierMap;
7
- get ownCommandHandlerMap(): import("../../../meta").CommandHandlerMap;
8
- get commandHandlerMap(): import("../../../meta").CommandHandlerMap;
9
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ESAModelMetadata = void 0;
4
- const meta_1 = require("../../../meta");
5
- class ESAModelMetadata {
6
- constructor(aggregateClass) {
7
- this.aggregateClass = aggregateClass;
8
- }
9
- get ownEventApplierMap() {
10
- return (0, meta_1.getOwnEventApplierMap)(this.aggregateClass.prototype);
11
- }
12
- get eventApplierMap() {
13
- return (0, meta_1.getEventApplierMap)(this.aggregateClass.prototype);
14
- }
15
- get ownCommandHandlerMap() {
16
- return (0, meta_1.getOwnCommandHandlerMap)(this.aggregateClass.prototype);
17
- }
18
- get commandHandlerMap() {
19
- return (0, meta_1.getCommandHandlerMap)(this.aggregateClass.prototype);
20
- }
21
- }
22
- exports.ESAModelMetadata = ESAModelMetadata;
@@ -1,9 +0,0 @@
1
- import { ModelBuilder } from "../../model";
2
- import { AnyEnum, EnumClassWithTypedConstructor, EnumValue } from "./enum";
3
- export declare class EnumBuilder<T extends AnyEnum> extends ModelBuilder<T> {
4
- private enumClass;
5
- protected _value: EnumValue;
6
- constructor(enumClass: EnumClassWithTypedConstructor<T>);
7
- withValue(value: EnumValue): this;
8
- build(): T;
9
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnumBuilder = void 0;
4
- const model_1 = require("../../model");
5
- class EnumBuilder extends model_1.ModelBuilder {
6
- constructor(enumClass) {
7
- super();
8
- this.enumClass = enumClass;
9
- }
10
- withValue(value) {
11
- this._value = value;
12
- return this;
13
- }
14
- build() {
15
- if (!this._value)
16
- throw new Error("The value must be set before build");
17
- return this.enumClass.parse(this._value);
18
- }
19
- }
20
- exports.EnumBuilder = EnumBuilder;
@@ -1,4 +0,0 @@
1
- export interface IIdService {
2
- validateValue(value: string): void;
3
- generateValue(): string;
4
- }
@@ -1,2 +0,0 @@
1
- export * from "./snowflake";
2
- export * from "./uuid4";
@@ -1,8 +0,0 @@
1
- import { SnowflakeOpts } from "nodejs-snowflake";
2
- import { IIdService } from "../interface";
3
- export declare class SnowflakeIdService implements IIdService {
4
- private _snowflake;
5
- constructor(options?: SnowflakeOpts);
6
- validateValue(value: string): void;
7
- generateValue(): string;
8
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SnowflakeIdService = void 0;
4
- const nodejs_snowflake_1 = require("nodejs-snowflake");
5
- class SnowflakeIdService {
6
- constructor(options) {
7
- this._snowflake = new nodejs_snowflake_1.Snowflake(options);
8
- }
9
- validateValue(value) { }
10
- generateValue() {
11
- return this._snowflake.getUniqueID().toString(16);
12
- }
13
- }
14
- exports.SnowflakeIdService = SnowflakeIdService;
@@ -1,5 +0,0 @@
1
- import { IIdService } from "../interface";
2
- export declare class Uuid4Service implements IIdService {
3
- validateValue(value: string): void;
4
- generateValue(): string;
5
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Uuid4Service = void 0;
4
- const uuid_1 = require("uuid");
5
- class Uuid4Service {
6
- validateValue(value) {
7
- const isUuid = (0, uuid_1.validate)(value);
8
- const isV4 = (0, uuid_1.version)(value) === 4;
9
- if (!isUuid)
10
- throw new Error("Id value is invalid for uuid type");
11
- if (!isV4)
12
- throw new Error("Version of uuid value must be 4");
13
- }
14
- generateValue() {
15
- return (0, uuid_1.v4)();
16
- }
17
- }
18
- exports.Uuid4Service = Uuid4Service;
@@ -1,2 +0,0 @@
1
- export * from "./model-with-id";
2
- export * from "./model-with-id.builder";
@@ -1,18 +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-with-id"), exports);
18
- __exportStar(require("./model-with-id.builder"), exports);
@@ -1,11 +0,0 @@
1
- import { ModelBuilder } from "../../model";
2
- import { IIdService, Id } from "../id";
3
- import { AnyModelWithId } from "./model-with-id";
4
- export declare abstract class ModelWithIdBuilder<T extends AnyModelWithId> extends ModelBuilder<T> {
5
- protected _id?: Id;
6
- protected _idService?: IIdService;
7
- getIdService(): IIdService;
8
- getId(): Id;
9
- withId(id: Id): this;
10
- withIdService(idService: IIdService): this;
11
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelWithIdBuilder = void 0;
4
- const model_1 = require("../../model");
5
- const id_1 = require("../id");
6
- class ModelWithIdBuilder extends model_1.ModelBuilder {
7
- getIdService() {
8
- return this._idService ?? new id_1.Uuid4Service();
9
- }
10
- getId() {
11
- return this._id ?? new id_1.Id(this.getIdService().generateValue());
12
- }
13
- withId(id) {
14
- this._id = id;
15
- return this;
16
- }
17
- withIdService(idService) {
18
- this._idService = idService;
19
- return this;
20
- }
21
- }
22
- exports.ModelWithIdBuilder = ModelWithIdBuilder;
@@ -1,9 +0,0 @@
1
- import { ModelBase, Props } from "../../model";
2
- import { Id } from "../id";
3
- export declare class ModelWithId<P extends Props> extends ModelBase<P> {
4
- protected readonly _id: Id;
5
- constructor(id: Id);
6
- id(): Id;
7
- hasId(id: Id): boolean;
8
- }
9
- export type AnyModelWithId = ModelWithId<Props>;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelWithId = void 0;
4
- const model_1 = require("../../model");
5
- class ModelWithId extends model_1.ModelBase {
6
- constructor(id) {
7
- super();
8
- this._id = id;
9
- }
10
- id() {
11
- return this._id;
12
- }
13
- hasId(id) {
14
- return this._id.equals(id);
15
- }
16
- }
17
- exports.ModelWithId = ModelWithId;
@@ -1,4 +0,0 @@
1
- import { IIdService } from "../core";
2
- export declare const IdServiceMetaKey: unique symbol;
3
- export declare const defineIdService: (target: object, idService: IIdService) => void;
4
- export declare const getIdService: (target: object) => IIdService;
@@ -1,16 +0,0 @@
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
- (0, exports.defineIdService)(target, new core_1.Uuid4Service());
14
- return idService();
15
- };
16
- exports.getIdService = getIdService;