ddd-node 34.0.0 → 34.1.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.
@@ -1,10 +1,10 @@
1
- import { ModelPropsValidator } from "../meta";
1
+ import { ModelPropsValidateFn, ModelPropsValidator } from "../meta";
2
2
  import { AnyDomainModel, DomainModelClass } from "../model";
3
3
  export type ModelOptions<T extends AnyDomainModel = AnyDomainModel> = {
4
4
  name?: string;
5
5
  version?: number;
6
6
  domain?: string;
7
- propsValidator?: ModelPropsValidator<T>;
7
+ propsValidator?: ModelPropsValidator<T> | ModelPropsValidateFn<T>;
8
8
  autoRegisterModel?: boolean;
9
9
  };
10
10
  export declare const DEFAULT_MODEL_OPTIONS: ModelOptions;
@@ -45,8 +45,14 @@ function Model(p1, p2, p3) {
45
45
  const domain = domainManager.getDomain(domainName);
46
46
  domain.modelRegistry.registerModel(target);
47
47
  }
48
- if (modelOptions === null || modelOptions === void 0 ? void 0 : modelOptions.propsValidator)
49
- (0, meta_1.defineModelPropGettersValidator)(target, modelOptions.propsValidator);
48
+ if (modelOptions === null || modelOptions === void 0 ? void 0 : modelOptions.propsValidator) {
49
+ if (typeof modelOptions.propsValidator === "function")
50
+ (0, meta_1.defineModelPropGettersValidator)(target, {
51
+ validate: modelOptions.propsValidator,
52
+ });
53
+ else
54
+ (0, meta_1.defineModelPropGettersValidator)(target, modelOptions.propsValidator);
55
+ }
50
56
  };
51
57
  }
52
58
  exports.Model = Model;
@@ -1,2 +1,2 @@
1
- import { AnyDomainModel, DomainModelClass, ModelPropsValidator } from "..";
2
- export declare const PropsValidator: <T extends AnyDomainModel>(target: DomainModelClass<T>, key: string, propertyDescriptor: TypedPropertyDescriptor<ModelPropsValidator<T>>) => void;
1
+ import { AnyDomainModel, DomainModelClass, ModelPropsValidateFn } from "..";
2
+ export declare const PropsValidator: <T extends AnyDomainModel>(target: DomainModelClass<T>, key: string, propertyDescriptor: TypedPropertyDescriptor<ModelPropsValidateFn<T>>) => void;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PropsValidator = void 0;
4
4
  const __1 = require("..");
5
5
  const PropsValidator = (target, key, propertyDescriptor) => {
6
- (0, __1.defineModelPropGettersValidator)(target, propertyDescriptor.value);
6
+ (0, __1.defineModelPropGettersValidator)(target, {
7
+ validate: propertyDescriptor.value.bind(target),
8
+ });
7
9
  };
8
10
  exports.PropsValidator = PropsValidator;
@@ -1,5 +1,8 @@
1
1
  import { AnyDomainModel, InferredProps } from "../model";
2
- export type ModelPropsValidator<T extends AnyDomainModel = AnyDomainModel> = (props: InferredProps<T>) => void;
2
+ export interface ModelPropsValidator<T extends AnyDomainModel = AnyDomainModel> {
3
+ validate(props: InferredProps<T>): void;
4
+ }
5
+ export type ModelPropsValidateFn<T extends AnyDomainModel> = ModelPropsValidator<T>["validate"];
3
6
  export declare const defineModelPropGettersValidator: <T extends AnyDomainModel>(target: object, validator: ModelPropsValidator<T>) => void;
4
7
  export declare const getOwnModelPropsValidator: <T extends AnyDomainModel>(target: object) => ModelPropsValidator<T> | undefined;
5
8
  export declare const MODEL_PROPS_VALIDATORS: unique symbol;
@@ -43,7 +43,9 @@ class DomainModel {
43
43
  }
44
44
  validateProps(props) {
45
45
  const modelPropsValidators = this.modelDescriptor().modelPropsValidators();
46
- modelPropsValidators.forEach((propsValidator) => propsValidator.call(this.constructor, props));
46
+ modelPropsValidators.forEach((propsValidator) => propsValidator.validate(props)
47
+ // propsValidator.call(this.constructor, props)
48
+ );
47
49
  }
48
50
  validate() {
49
51
  this.validateProps(this._props);
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"ddd-node","version":"34.0.0","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","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
+ {"name":"ddd-node","version":"34.1.0","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","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"}}