ddd-node 13.0.0 → 14.0.1

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 (104) hide show
  1. package/.editorconfig +12 -0
  2. package/dist/core/aggregate/base.d.ts +12 -0
  3. package/dist/core/aggregate/base.js +15 -0
  4. package/dist/core/aggregate/event-sourced-aggregate.d.ts +48 -0
  5. package/dist/core/{aggregate.js → aggregate/event-sourced-aggregate.js} +28 -77
  6. package/dist/core/aggregate/index.d.ts +3 -0
  7. package/dist/core/aggregate/index.js +3 -0
  8. package/dist/core/aggregate/state-aggregate.d.ts +22 -0
  9. package/dist/core/aggregate/state-aggregate.js +35 -0
  10. package/dist/core/aggregate/types.d.ts +4 -0
  11. package/dist/core/aggregate/types.js +1 -0
  12. package/dist/core/entity.d.ts +4 -4
  13. package/dist/core/entity.js +2 -6
  14. package/dist/core/enum.d.ts +3 -2
  15. package/dist/core/enum.js +9 -22
  16. package/dist/core/id/common/index.d.ts +2 -0
  17. package/dist/core/id/common/index.js +2 -0
  18. package/dist/core/id/common/snowflake.d.ts +9 -0
  19. package/dist/core/id/common/snowflake.js +13 -0
  20. package/dist/core/id/common/uuid4.d.ts +6 -0
  21. package/dist/core/id/common/uuid4.js +17 -0
  22. package/dist/core/id/id.d.ts +7 -5
  23. package/dist/core/id/id.js +13 -8
  24. package/dist/core/id/index.d.ts +2 -2
  25. package/dist/core/id/index.js +3 -19
  26. package/dist/core/id/interface.d.ts +10 -0
  27. package/dist/core/id/interface.js +1 -0
  28. package/dist/core/index.d.ts +0 -1
  29. package/dist/core/index.js +8 -25
  30. package/dist/core/message/command.d.ts +8 -5
  31. package/dist/core/message/command.js +10 -9
  32. package/dist/core/message/event.d.ts +9 -7
  33. package/dist/core/message/event.js +9 -11
  34. package/dist/core/message/index.js +3 -19
  35. package/dist/core/message/message.d.ts +6 -2
  36. package/dist/core/message/message.js +13 -14
  37. package/dist/core/model/errors.d.ts +3 -0
  38. package/dist/core/model/errors.js +5 -0
  39. package/dist/core/model/index.js +2 -18
  40. package/dist/core/model/model-with-id.d.ts +7 -7
  41. package/dist/core/model/model-with-id.js +8 -12
  42. package/dist/core/model/model.d.ts +16 -14
  43. package/dist/core/model/model.js +24 -33
  44. package/dist/core/repository.d.ts +2 -2
  45. package/dist/core/repository.js +1 -2
  46. package/dist/core/value-object.d.ts +4 -3
  47. package/dist/core/value-object.js +8 -12
  48. package/dist/decorators/{aggregate → aggregate-es}/handle.d.ts +1 -1
  49. package/dist/decorators/aggregate-es/handle.js +9 -0
  50. package/dist/decorators/aggregate-es/index.js +2 -0
  51. package/dist/decorators/{aggregate → aggregate-es}/when.d.ts +1 -1
  52. package/dist/decorators/aggregate-es/when.js +9 -0
  53. package/dist/decorators/id.d.ts +2 -2
  54. package/dist/decorators/id.js +3 -7
  55. package/dist/decorators/index.d.ts +1 -1
  56. package/dist/decorators/index.js +3 -19
  57. package/dist/decorators/model/enum.d.ts +2 -2
  58. package/dist/decorators/model/enum.js +3 -7
  59. package/dist/decorators/model/index.js +5 -21
  60. package/dist/decorators/model/model-name.d.ts +2 -2
  61. package/dist/decorators/model/model-name.js +3 -7
  62. package/dist/decorators/model/prop.d.ts +1 -1
  63. package/dist/decorators/model/prop.js +3 -7
  64. package/dist/decorators/model/static.d.ts +3 -3
  65. package/dist/decorators/model/static.js +4 -8
  66. package/dist/decorators/model/validator.d.ts +3 -3
  67. package/dist/decorators/model/validator.js +3 -7
  68. package/dist/decorators/type.js +1 -2
  69. package/dist/index.js +5 -21
  70. package/dist/meta/aggregate.metadata.d.ts +5 -5
  71. package/dist/meta/aggregate.metadata.js +19 -22
  72. package/dist/meta/helpers/index.js +1 -17
  73. package/dist/meta/helpers/static-value.d.ts +1 -1
  74. package/dist/meta/helpers/static-value.js +1 -5
  75. package/dist/meta/id.metadata.d.ts +4 -4
  76. package/dist/meta/id.metadata.js +10 -10
  77. package/dist/meta/index.js +4 -20
  78. package/dist/meta/model.metadata.d.ts +1 -1
  79. package/dist/meta/model.metadata.js +22 -37
  80. package/dist/types/class-static.js +1 -2
  81. package/dist/types/class.js +1 -2
  82. package/dist/types/index.js +2 -18
  83. package/dist/utils/index.js +1 -17
  84. package/dist/utils/to-array.js +2 -8
  85. package/package.json +27 -3
  86. package/ts-loader.js +4 -0
  87. package/tsconfig.json +29 -22
  88. package/tsconfig.spec.json +5 -0
  89. package/dist/core/aggregate.d.ts +0 -71
  90. package/dist/core/error.d.ts +0 -4
  91. package/dist/core/error.js +0 -9
  92. package/dist/core/id/built/index.d.ts +0 -2
  93. package/dist/core/id/built/index.js +0 -18
  94. package/dist/core/id/built/snowflake.generator.d.ts +0 -8
  95. package/dist/core/id/built/snowflake.generator.js +0 -16
  96. package/dist/core/id/built/uuid4.generator.d.ts +0 -5
  97. package/dist/core/id/built/uuid4.generator.js +0 -16
  98. package/dist/core/id/id-generator.d.ts +0 -8
  99. package/dist/core/id/id-generator.js +0 -17
  100. package/dist/decorators/aggregate/handle.js +0 -13
  101. package/dist/decorators/aggregate/index.js +0 -18
  102. package/dist/decorators/aggregate/when.js +0 -13
  103. package/tsconfig.build.json +0 -7
  104. /package/dist/decorators/{aggregate → aggregate-es}/index.d.ts +0 -0
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Enum = void 0;
4
- const static_1 = require("./static");
5
- const Enum = (value) => {
1
+ import { Static } from "./static";
2
+ export const Enum = (value) => {
6
3
  return (target, key) => {
7
- (0, static_1.Static)(() => new target(value))(target, key);
4
+ Static(() => new target(value))(target, key);
8
5
  };
9
6
  };
10
- exports.Enum = Enum;
@@ -1,21 +1,5 @@
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-name"), exports);
19
- __exportStar(require("./validator"), exports);
20
- __exportStar(require("./static"), exports);
21
- __exportStar(require("./enum"), exports);
1
+ export * from "./prop";
2
+ export * from "./model-name";
3
+ export * from "./validator";
4
+ export * from "./static";
5
+ export * from "./enum";
@@ -1,2 +1,2 @@
1
- import { ModelClass } from "../../core/index";
2
- export declare const ModelName: (name?: string) => <T extends ModelClass<import("../../core/index").AnyModel>>(target: T) => void;
1
+ import { ModelClass } from "../../core";
2
+ export declare const ModelName: (name?: string) => <T extends ModelClass<import("../../core").AnyModel>>(target: T) => void;
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelName = void 0;
4
- const _meta_1 = require("../../meta/index");
5
- const ModelName = (name) => {
1
+ import { setModelName } from "../../meta";
2
+ export const ModelName = (name) => {
6
3
  return (target) => {
7
- (0, _meta_1.setModelName)(target, name);
4
+ setModelName(target, name);
8
5
  };
9
6
  };
10
- exports.ModelName = ModelName;
@@ -1,2 +1,2 @@
1
- import { AnyModel, PropKey, PropsOf } from "../../core/index";
1
+ import { AnyModel, PropKey, PropsOf } from "../../core";
2
2
  export declare const Prop: <T extends AnyModel>(propKey?: keyof PropsOf<T> | undefined) => (target: T, key: PropKey) => void;
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Prop = void 0;
4
- const _meta_1 = require("../../meta/index");
5
- const Prop = (propKey) => {
1
+ import { setProp } from "../../meta";
2
+ export const Prop = (propKey) => {
6
3
  return (target, key) => {
7
- (0, _meta_1.setProp)(target, key, propKey !== null && propKey !== void 0 ? propKey : key);
4
+ setProp(target, key, propKey ?? key);
8
5
  };
9
6
  };
10
- exports.Prop = Prop;
@@ -1,3 +1,3 @@
1
- import { ModelClass } from "../../core/index";
2
- import { StaticValueBuilder } from "../../meta/index";
3
- export declare const Static: <T extends ModelClass<import("../../core/index").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: string) => void;
1
+ import { ModelClass } from "../../core";
2
+ import { StaticValueBuilder } from "../../meta";
3
+ export declare const Static: <T extends ModelClass<import("../../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: string) => void;
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Static = void 0;
4
- const _meta_1 = require("../../meta/index");
5
- const Static = (builder) => {
1
+ import { getStaticValue, setStaticValue } from "../../meta";
2
+ export const Static = (builder) => {
6
3
  return (target, key) => {
7
- (0, _meta_1.setStaticValue)(target, key, builder);
4
+ setStaticValue(target, key, builder);
8
5
  Object.defineProperty(target, key, {
9
6
  configurable: false,
10
7
  enumerable: true,
11
8
  get() {
12
- return (0, _meta_1.getStaticValue)(target, key);
9
+ return getStaticValue(target, key);
13
10
  },
14
11
  set() {
15
12
  throw new Error("Static value is readonly");
@@ -17,4 +14,3 @@ const Static = (builder) => {
17
14
  });
18
15
  };
19
16
  };
20
- exports.Static = Static;
@@ -1,3 +1,3 @@
1
- import { ModelClass } from "../../core/index";
2
- import { PropsValidator } from "../../meta/index";
3
- export declare const Validator: <T extends ModelClass<import("../../core/index").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(validator?: PropsValidator<I> | undefined) => (target: T) => void;
1
+ import { ModelClass } from "../../core";
2
+ import { PropsValidator } from "../../meta";
3
+ export declare const Validator: <T extends ModelClass<import("../../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(validator?: PropsValidator<I> | undefined) => (target: T) => void;
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Validator = void 0;
4
- const _meta_1 = require("../../meta/index");
5
- const Validator = (validator) => {
1
+ import { setPropsValidator } from "../../meta";
2
+ export const Validator = (validator) => {
6
3
  return (target) => {
7
4
  if (validator)
8
- (0, _meta_1.setPropsValidator)(target, validator);
5
+ setPropsValidator(target, validator);
9
6
  };
10
7
  };
11
- exports.Validator = Validator;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
package/dist/index.js CHANGED
@@ -1,21 +1,5 @@
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);
1
+ export * from "./meta";
2
+ export * from "./core";
3
+ export * from "./decorators";
4
+ export * from "./types";
5
+ export * from "./utils";
@@ -1,8 +1,8 @@
1
- import { AnyCommand, AnyEvent, CommandHandler, EventApplier } from "../core/index";
1
+ import { AnyCommand, AnyEvent, CommandHandler, EventApplier } from "../core";
2
2
  import "reflect-metadata";
3
- export declare const EventAppliersMetaKey: unique symbol;
4
- export declare const getEventAppliersMap: (target: object) => Map<string, EventApplier>;
3
+ export declare const EventApplierMapMetaKey: unique symbol;
4
+ export declare const getEventApplierMap: (target: object) => Map<string, EventApplier>;
5
5
  export declare const defineEventApplier: <T extends AnyEvent>(target: object, eventName: string, applier: EventApplier<T>) => void;
6
- export declare const CommandHandlersMetaKey: unique symbol;
7
- export declare const getCommandHandlersMap: (target: object) => Map<string, CommandHandler>;
6
+ export declare const CommandHandlerMapMetaKey: unique symbol;
7
+ export declare const getCommandHandlerMap: (target: object) => Map<string, CommandHandler>;
8
8
  export declare const defineCommandHandler: <T extends AnyCommand>(target: object, commandName: string, handler: CommandHandler<T>) => void;
@@ -1,30 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineCommandHandler = exports.getCommandHandlersMap = exports.CommandHandlersMetaKey = exports.defineEventApplier = exports.getEventAppliersMap = exports.EventAppliersMetaKey = void 0;
4
- require("reflect-metadata");
1
+ import "reflect-metadata";
5
2
  // Event applier map
6
- exports.EventAppliersMetaKey = Symbol.for("EVENT_APPLIERS");
7
- const getEventAppliersMap = (target) => {
8
- return (Reflect.getMetadata(exports.EventAppliersMetaKey, target) ||
9
- new 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
10
  };
11
- exports.getEventAppliersMap = getEventAppliersMap;
12
- const defineEventApplier = (target, eventName, applier) => {
13
- const eventAppliersMap = (0, exports.getEventAppliersMap)(target);
11
+ export const defineEventApplier = (target, eventName, applier) => {
12
+ const eventAppliersMap = getEventApplierMap(target);
14
13
  eventAppliersMap.set(eventName, applier);
15
- Reflect.defineMetadata(exports.EventAppliersMetaKey, eventAppliersMap, target);
16
14
  };
17
- exports.defineEventApplier = defineEventApplier;
18
15
  // Command handler map
19
- exports.CommandHandlersMetaKey = Symbol.for("COMMAND_HANDLERS");
20
- const getCommandHandlersMap = (target) => {
21
- return (Reflect.getMetadata(exports.CommandHandlersMetaKey, target) ||
22
- new 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
23
  };
24
- exports.getCommandHandlersMap = getCommandHandlersMap;
25
- const defineCommandHandler = (target, commandName, handler) => {
26
- const commandHandlersMap = (0, exports.getCommandHandlersMap)(target);
24
+ export const defineCommandHandler = (target, commandName, handler) => {
25
+ const commandHandlersMap = getCommandHandlerMap(target);
27
26
  commandHandlersMap.set(commandName, handler);
28
- Reflect.defineMetadata(exports.CommandHandlersMetaKey, commandHandlersMap, target);
29
27
  };
30
- exports.defineCommandHandler = defineCommandHandler;
@@ -1,17 +1 @@
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
+ export * from "./static-value";
@@ -1,4 +1,4 @@
1
- import { AnyModel } from "../../core/index";
1
+ import { AnyModel } from "../../core";
2
2
  export type StaticValueBuilder<T extends AnyModel = AnyModel> = () => T;
3
3
  export declare class StaticValue<T extends AnyModel = AnyModel> {
4
4
  private _value;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StaticValue = void 0;
4
- class StaticValue {
1
+ export class StaticValue {
5
2
  constructor(value) {
6
3
  this._value = value;
7
4
  }
@@ -12,4 +9,3 @@ class StaticValue {
12
9
  return this._value;
13
10
  }
14
11
  }
15
- exports.StaticValue = StaticValue;
@@ -1,4 +1,4 @@
1
- import { IdGeneratorBase } from "../core/index";
2
- export declare const IdGeneratorMetaKey: unique symbol;
3
- export declare const defineIdGenerator: (target: object, idGenerator: IdGeneratorBase) => void;
4
- export declare const getIdGenerator: (target: object) => any;
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,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIdGenerator = exports.defineIdGenerator = exports.IdGeneratorMetaKey = void 0;
4
- exports.IdGeneratorMetaKey = Symbol.for("ID_GENERATOR");
5
- const defineIdGenerator = (target, idGenerator) => {
6
- Reflect.defineMetadata(exports.IdGeneratorMetaKey, idGenerator, target);
1
+ import { Uuid4Service } from "../core";
2
+ export const IdServiceMetaKey = Symbol.for("ID_SERVICE");
3
+ export const defineIdService = (target, idService) => {
4
+ Reflect.defineMetadata(IdServiceMetaKey, idService, target);
7
5
  };
8
- exports.defineIdGenerator = defineIdGenerator;
9
- const getIdGenerator = (target) => {
10
- return Reflect.getMetadata(exports.IdGeneratorMetaKey, target);
6
+ export const getIdService = (target) => {
7
+ const idService = () => Reflect.getMetadata(IdServiceMetaKey, target);
8
+ if (idService())
9
+ return idService();
10
+ Reflect.defineMetadata(IdServiceMetaKey, new Uuid4Service(), target);
11
+ return idService();
11
12
  };
12
- exports.getIdGenerator = getIdGenerator;
@@ -1,20 +1,4 @@
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
+ export * from "./helpers";
2
+ export * from "./aggregate.metadata";
3
+ export * from "./id.metadata";
4
+ export * from "./model.metadata";
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass, PropKey, PropsOf } from "../core/index";
1
+ import { AnyModel, ModelClass, PropKey, PropsOf } from "../core";
2
2
  import { StaticValue, StaticValueBuilder } from "./helpers/static-value";
3
3
  export declare class PropsMap<T extends AnyModel = AnyModel> extends Map<PropKey, keyof PropsOf<T>> {
4
4
  }
@@ -1,29 +1,23 @@
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/index");
5
- const static_value_1 = require("./helpers/static-value");
1
+ import { ModelBase } from "../core";
2
+ import { StaticValue } from "./helpers/static-value";
6
3
  const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
7
4
  // Prop keys map is a Map<Key, TargetPropKey>;
8
- class PropsMap extends Map {
5
+ export class PropsMap extends Map {
9
6
  }
10
- exports.PropsMap = PropsMap;
11
7
  // target is prototype
12
- const getOwnPropsMap = (target) => {
8
+ export const getOwnPropsMap = (target) => {
13
9
  const ownPropsMap = () => Reflect.getOwnMetadata(OwnPropsMapMetaKey, target);
14
10
  if (!ownPropsMap())
15
11
  Reflect.defineMetadata(OwnPropsMapMetaKey, new PropsMap(), target);
16
12
  return ownPropsMap();
17
13
  };
18
- exports.getOwnPropsMap = getOwnPropsMap;
19
- const setProp = (target, key, targetPropKey) => {
20
- const ownPropsMap = (0, exports.getOwnPropsMap)(target);
14
+ export const setProp = (target, key, targetPropKey) => {
15
+ const ownPropsMap = getOwnPropsMap(target);
21
16
  if (targetPropKey)
22
17
  ownPropsMap.set(key, targetPropKey);
23
18
  };
24
- exports.setProp = setProp;
25
19
  const PropsMapMetaKey = Symbol.for("PROPS_MAP");
26
- const getPropsMap = (target) => {
20
+ export const getPropsMap = (target) => {
27
21
  const propsMap = () => Reflect.getOwnMetadata(PropsMapMetaKey, target);
28
22
  if (propsMap())
29
23
  return propsMap();
@@ -32,8 +26,8 @@ const getPropsMap = (target) => {
32
26
  const result = new PropsMap();
33
27
  const ownPropsMapList = [];
34
28
  do {
35
- if (_core_1.ModelBase.isModel(_target)) {
36
- const ownPropsMap = (0, exports.getOwnPropsMap)(_target);
29
+ if (ModelBase.isModel(_target)) {
30
+ const ownPropsMap = getOwnPropsMap(_target);
37
31
  ownPropsMapList.unshift(ownPropsMap);
38
32
  }
39
33
  _target = Reflect.getPrototypeOf(_target);
@@ -46,52 +40,43 @@ const getPropsMap = (target) => {
46
40
  Reflect.defineMetadata(PropsMapMetaKey, buildPropsMap(target), target);
47
41
  return propsMap();
48
42
  };
49
- exports.getPropsMap = getPropsMap;
50
43
  //
51
44
  const ModelNameMetaKey = Symbol.for("MODEL_NAME");
52
- const setModelName = (target, name) => {
53
- Reflect.defineMetadata(ModelNameMetaKey, name !== null && name !== void 0 ? name : target.name, target);
45
+ export const setModelName = (target, name) => {
46
+ Reflect.defineMetadata(ModelNameMetaKey, name ?? target.name, target);
54
47
  };
55
- exports.setModelName = setModelName;
56
- const getModelName = (target) => {
48
+ export const getModelName = (target) => {
57
49
  const modelName = () => Reflect.getMetadata(ModelNameMetaKey, target);
58
50
  if (!modelName())
59
- (0, exports.setModelName)(target);
51
+ setModelName(target);
60
52
  return modelName();
61
53
  };
62
- exports.getModelName = getModelName;
63
54
  const PropsValidatorMetaKey = Symbol.for("PROPS_VALIDATOR");
64
- const setPropsValidator = (target, validator) => {
55
+ export const setPropsValidator = (target, validator) => {
65
56
  Reflect.defineMetadata(PropsValidatorMetaKey, validator, target);
66
57
  };
67
- exports.setPropsValidator = setPropsValidator;
68
- const getPropsValidator = (target) => {
58
+ export const getPropsValidator = (target) => {
69
59
  return Reflect.getMetadata(PropsValidatorMetaKey, target);
70
60
  };
71
- exports.getPropsValidator = getPropsValidator;
72
61
  //
73
62
  const OwnStaticValuesMetaKey = Symbol.for("OWN_STATIC_VALUES");
74
- const getOwnStaticValues = (target) => {
63
+ export const getOwnStaticValues = (target) => {
75
64
  const ownStaticValues = () => Reflect.getOwnMetadata(OwnStaticValuesMetaKey, target);
76
65
  if (!ownStaticValues())
77
66
  Reflect.defineMetadata(OwnStaticValuesMetaKey, new Map(), target);
78
67
  return ownStaticValues();
79
68
  };
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));
69
+ export const setStaticValue = (target, key, value) => {
70
+ const staticValues = getOwnStaticValues(target);
71
+ staticValues.set(key, new StaticValue(value));
84
72
  };
85
- exports.setStaticValue = setStaticValue;
86
- const getStaticValue = (target, key) => {
87
- var _a;
73
+ export const getStaticValue = (target, key) => {
88
74
  let _target = target;
89
75
  do {
90
- const staticValues = (0, exports.getOwnStaticValues)(_target);
76
+ const staticValues = getOwnStaticValues(_target);
91
77
  if (staticValues.has(key))
92
- return (_a = staticValues.get(key)) === null || _a === void 0 ? void 0 : _a.value;
78
+ return staticValues.get(key)?.value;
93
79
  _target = Reflect.getPrototypeOf(_target);
94
80
  } while (_target !== null);
95
81
  return undefined;
96
82
  };
97
- exports.getStaticValue = getStaticValue;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,18 +1,2 @@
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);
1
+ export * from "./class";
2
+ export * from "./class-static";
@@ -1,17 +1 @@
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);
1
+ export * from "./to-array";
@@ -1,9 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toArray = void 0;
4
- const toArray = (value) => {
5
- if (Array.isArray(value))
6
- return value;
7
- return [value];
1
+ export const toArray = (value) => {
2
+ return Array.isArray(value) ? value : [value];
8
3
  };
9
- exports.toArray = toArray;
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "ddd-node",
3
- "version": "13.0.0",
3
+ "version": "14.0.1",
4
+ "type": "module",
4
5
  "description": "Domain Driven Design base for NodeJs",
5
6
  "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
6
8
  "scripts": {
7
- "build": "rm -rf dist && tsc --project tsconfig.build.json && tsc-alias -p tsconfig.build.json",
8
- "example": "ts-node -r tsconfig-paths/register test/example/main.ts"
9
+ "build": "rm -rf dist && tsc -p src/tsconfig.build.json && tsc-alias -p src/tsconfig.build.json",
10
+ "test": "mocha"
9
11
  },
10
12
  "repository": {
11
13
  "type": "git",
@@ -21,8 +23,16 @@
21
23
  "author": "Quoc Dai",
22
24
  "license": "ISC",
23
25
  "devDependencies": {
26
+ "@types/chai": "^4.3.16",
24
27
  "@types/lodash": "^4.14.200",
28
+ "@types/mocha": "^10.0.6",
29
+ "@types/source-map-support": "^0.5.10",
25
30
  "@types/uuid": "^9.0.6",
31
+ "chai": "^5.1.1",
32
+ "chai-deep-match": "^1.2.1",
33
+ "ddd-node": "file:dist",
34
+ "mocha": "^10.4.0",
35
+ "source-map-support": "^0.5.21",
26
36
  "ts-node": "^10.9.1",
27
37
  "tsconfig-paths": "^4.2.0",
28
38
  "typescript": "^5.2.2"
@@ -34,5 +44,19 @@
34
44
  "tsc-alias": "^1.8.8",
35
45
  "type-fest": "^4.15.0",
36
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
37
61
  }
38
62
  }
package/ts-loader.js ADDED
@@ -0,0 +1,4 @@
1
+ import { register } from "node:module";
2
+ import { pathToFileURL } from "node:url";
3
+
4
+ register("ts-node/esm", pathToFileURL("./"));