@steroidsjs/nest 1.3.15 → 1.3.18

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 (29) hide show
  1. package/package.json +1 -1
  2. package/src/infrastructure/decorators/fields/ExtendField.d.ts +1 -1
  3. package/src/infrastructure/decorators/fields/ExtendField.js +8 -4
  4. package/src/infrastructure/decorators/fields/ExtendField.js.map +1 -1
  5. package/src/infrastructure/pipes/CreateDtoPipe.js +5 -3
  6. package/src/infrastructure/pipes/CreateDtoPipe.js.map +1 -1
  7. package/src/usecases/dtos/SearchInputDto.js +4 -4
  8. package/src/usecases/dtos/SearchInputDto.js.map +1 -1
  9. package/src/usecases/exceptions/FieldValidatorException.d.ts +5 -0
  10. package/src/usecases/exceptions/FieldValidatorException.js +11 -0
  11. package/src/usecases/exceptions/FieldValidatorException.js.map +1 -0
  12. package/src/usecases/helpers/ConditionHelper.js +8 -8
  13. package/src/usecases/helpers/ConditionHelper.js.map +1 -1
  14. package/src/usecases/helpers/ValidationHelper.d.ts +6 -0
  15. package/src/usecases/helpers/ValidationHelper.js +59 -1
  16. package/src/usecases/helpers/ValidationHelper.js.map +1 -1
  17. package/src/usecases/interfaces/IValidator.d.ts +11 -0
  18. package/src/usecases/interfaces/IValidator.js +3 -0
  19. package/src/usecases/interfaces/IValidator.js.map +1 -0
  20. package/src/usecases/services/CrudService.d.ts +3 -0
  21. package/src/usecases/services/CrudService.js +18 -7
  22. package/src/usecases/services/CrudService.js.map +1 -1
  23. package/src/usecases/validators/Validator.d.ts +8 -0
  24. package/src/usecases/validators/Validator.js +19 -0
  25. package/src/usecases/validators/Validator.js.map +1 -0
  26. package/src/usecases/validators/index.d.ts +2 -0
  27. package/src/usecases/validators/index.js +115 -0
  28. package/src/usecases/validators/index.js.map +1 -0
  29. package/tsconfig.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/nest",
3
- "version": "1.3.15",
3
+ "version": "1.3.18",
4
4
  "scripts": {
5
5
  "build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/",
6
6
  "watch": "tsc -p tsconfig-debug.json",
@@ -2,4 +2,4 @@ import { IAllFieldOptions } from "./index";
2
2
  export interface IExtendFieldOptions {
3
3
  sourceFieldName?: string;
4
4
  }
5
- export declare function ExtendField(modelClass: any, options?: (string | Partial<IAllFieldOptions>)): (object: any, propertyName: any) => void;
5
+ export declare function ExtendField(ModelClass: any, options?: (string | Partial<IAllFieldOptions>)): (object: any, propertyName: any) => void;
@@ -2,18 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtendField = void 0;
4
4
  const BaseField_1 = require("./BaseField");
5
- function ExtendField(modelClass, options = {}) {
5
+ const Validator_1 = require("../../../usecases/validators/Validator");
6
+ function ExtendField(ModelClass, options = {}) {
6
7
  return (object, propertyName) => {
7
8
  if (typeof options === 'string') {
8
9
  options = { sourceFieldName: options };
9
10
  }
10
11
  const modelFieldName = options.sourceFieldName || propertyName;
11
12
  if (!modelFieldName) {
12
- throw new Error('Not found field "' + propertyName + '" in model "' + modelClass.name + '"');
13
+ throw new Error('Not found field "' + propertyName + '" in model "' + ModelClass.name + '"');
13
14
  }
14
- const extendOptions = (0, BaseField_1.getFieldOptions)(modelClass, modelFieldName);
15
- const decorator = (0, BaseField_1.getFieldDecorator)(modelClass, modelFieldName);
15
+ const extendOptions = (0, BaseField_1.getFieldOptions)(ModelClass, modelFieldName);
16
+ const decorator = (0, BaseField_1.getFieldDecorator)(ModelClass, modelFieldName);
16
17
  decorator(Object.assign(Object.assign({}, extendOptions), options))(object, propertyName);
18
+ (0, Validator_1.getFieldValidators)(ModelClass, modelFieldName).forEach(ValidatorClass => {
19
+ (0, Validator_1.Validator)(ValidatorClass)(object, propertyName);
20
+ });
17
21
  };
18
22
  }
19
23
  exports.ExtendField = ExtendField;
@@ -1 +1 @@
1
- {"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAO/D,SAAgB,WAAW,CAAC,UAAU,EAAE,UAAgD,EAAE;IACtF,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC;SACxC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,YAAY,CAAC;QAC/D,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;SAChG;QAGD,MAAM,aAAa,GAAG,IAAA,2BAAe,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,SAAS,iCAAK,aAAa,GAAK,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC;AACN,CAAC;AAhBD,kCAgBC"}
1
+ {"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAE/D,sEAAqF;AAMrF,SAAgB,WAAW,CAAC,UAAU,EAAE,UAAgD,EAAE;IACtF,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC;SACxC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,YAAY,CAAC;QAC/D,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;SAChG;QAGD,MAAM,aAAa,GAAG,IAAA,2BAAe,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,SAAS,iCAAK,aAAa,GAAK,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAGhE,IAAA,8BAAkB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACpE,IAAA,qBAAS,EAAC,cAAc,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AArBD,kCAqBC"}
@@ -13,9 +13,11 @@ const BaseField_1 = require("../decorators/fields/BaseField");
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  let CreateDtoPipe = class CreateDtoPipe {
15
15
  async transform(value, metadata) {
16
- return (0, BaseField_1.isMetaClass)(metadata.metatype)
17
- ? DataMapper_1.DataMapper.create(metadata.metatype, value)
18
- : (0, class_transformer_1.plainToInstance)(metadata.metatype, value);
16
+ value = (0, class_transformer_1.plainToInstance)(metadata.metatype, value);
17
+ if ((0, BaseField_1.isMetaClass)(metadata.metatype)) {
18
+ value = DataMapper_1.DataMapper.create(metadata.metatype, value);
19
+ }
20
+ return value;
19
21
  }
20
22
  };
21
23
  CreateDtoPipe = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"CreateDtoPipe.js","sourceRoot":"","sources":["../../../../src/infrastructure/pipes/CreateDtoPipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,kEAA6D;AAC7D,8DAA2D;AAC3D,yDAAkD;AAGlD,IAAa,aAAa,GAA1B,MAAa,aAAa;IACtB,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAClD,OAAO,IAAA,uBAAW,EAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC,CAAC,CAAC,uBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC7C,CAAC,CAAC,IAAA,mCAAe,EAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;CACJ,CAAA;AANY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAMzB;AANY,sCAAa"}
1
+ {"version":3,"file":"CreateDtoPipe.js","sourceRoot":"","sources":["../../../../src/infrastructure/pipes/CreateDtoPipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,kEAA6D;AAC7D,8DAA2D;AAC3D,yDAAkD;AAGlD,IAAa,aAAa,GAA1B,MAAa,aAAa;IACtB,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAElD,KAAK,GAAG,IAAA,mCAAe,EAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAElD,IAAI,IAAA,uBAAW,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAChC,KAAK,GAAG,uBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACvD;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAXY,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAWzB;AAXY,sCAAa"}
@@ -10,19 +10,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SearchInputDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
13
+ const fields_1 = require("../../infrastructure/decorators/fields");
14
14
  class SearchInputDto {
15
15
  }
16
16
  __decorate([
17
- (0, swagger_1.ApiProperty)({ required: false }),
17
+ (0, fields_1.IntegerField)({ nullable: true }),
18
18
  __metadata("design:type", Number)
19
19
  ], SearchInputDto.prototype, "page", void 0);
20
20
  __decorate([
21
- (0, swagger_1.ApiProperty)({ required: false }),
21
+ (0, fields_1.IntegerField)({ nullable: true }),
22
22
  __metadata("design:type", Number)
23
23
  ], SearchInputDto.prototype, "pageSize", void 0);
24
24
  __decorate([
25
- (0, swagger_1.ApiProperty)({ required: false }),
25
+ (0, fields_1.StringField)({ nullable: true }),
26
26
  __metadata("design:type", Object)
27
27
  ], SearchInputDto.prototype, "sort", void 0);
28
28
  exports.SearchInputDto = SearchInputDto;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInputDto.js","sourceRoot":"","sources":["../../../../src/usecases/dtos/SearchInputDto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA4C;AAQ5C,MAAa,cAAc;CAS1B;AAPG;IADC,IAAA,qBAAW,EAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;;4CACjB;AAGd;IADC,IAAA,qBAAW,EAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;;gDACb;AAGlB;IADC,IAAA,qBAAW,EAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;;4CACN;AAR7B,wCASC"}
1
+ {"version":3,"file":"SearchInputDto.js","sourceRoot":"","sources":["../../../../src/usecases/dtos/SearchInputDto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAAiF;AAQjF,MAAa,cAAc;CAU1B;AAPG;IADC,IAAA,qBAAY,EAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;;4CACjB;AAGd;IADC,IAAA,qBAAY,EAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;;gDACb;AAGlB;IADC,IAAA,oBAAW,EAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;;4CACL;AAT7B,wCAUC"}
@@ -0,0 +1,5 @@
1
+ export declare class FieldValidatorException {
2
+ message: any;
3
+ params: any;
4
+ constructor(message: string, params?: any);
5
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldValidatorException = void 0;
4
+ class FieldValidatorException {
5
+ constructor(message, params = null) {
6
+ this.message = message;
7
+ this.params = params;
8
+ }
9
+ }
10
+ exports.FieldValidatorException = FieldValidatorException;
11
+ //# sourceMappingURL=FieldValidatorException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldValidatorException.js","sourceRoot":"","sources":["../../../../src/usecases/exceptions/FieldValidatorException.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAuB;IAIhC,YAAY,OAAe,EAAE,MAAM,GAAG,IAAI;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AARD,0DAQC"}
@@ -14,14 +14,11 @@ class ConditionHelper {
14
14
  return new typeorm_1.Brackets(condition);
15
15
  }
16
16
  if (typeof condition === 'object' && !Array.isArray(condition)) {
17
- const result = Object.keys(condition || {}).reduce((obj, key) => {
18
- const value = condition[key];
19
- if (!filterEmpty || !isEmpty(value)) {
20
- (0, lodash_1.set)(obj, key, value);
21
- }
22
- return obj;
23
- }, {});
24
- return Object.keys(result).length === 0 ? emptyCondition : result;
17
+ return ConditionHelper._toTypeOrmInternal([
18
+ 'and',
19
+ ...Object.keys(condition || {})
20
+ .map(key => ['=', key, condition[key]]),
21
+ ], filterEmpty);
25
22
  }
26
23
  if (Array.isArray(condition) && condition.length > 1 && typeof condition[0] === 'string') {
27
24
  let operator = condition[0].toLowerCase();
@@ -36,6 +33,9 @@ class ConditionHelper {
36
33
  };
37
34
  const key = condition[1];
38
35
  const value = condition[2];
36
+ if (Array.isArray(value)) {
37
+ operator = 'in';
38
+ }
39
39
  switch (operator) {
40
40
  case 'filter':
41
41
  return ConditionHelper._toTypeOrmInternal(value, true);
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ConditionHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConditionHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ConditionHelper.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
1
  import { ValidatorOptions } from 'class-validator';
2
+ import { IValidator, IValidatorParams } from '../interfaces/IValidator';
2
3
  export declare function validateOrReject(dto: any, validatorOptions?: ValidatorOptions): Promise<void>;
4
+ export declare class ValidationHelper {
5
+ static validate(dto: any, params?: IValidatorParams, allValidators?: IValidator[]): Promise<void>;
6
+ protected static validateSingle(dto: any): Promise<void>;
7
+ protected static validateByInstances(dto: any, params?: IValidatorParams, validatorsInstances?: IValidator[]): Promise<void>;
8
+ }
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateOrReject = void 0;
3
+ exports.ValidationHelper = exports.validateOrReject = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  const class_validator_1 = require("class-validator");
5
6
  const exceptions_1 = require("../exceptions");
7
+ const FieldValidatorException_1 = require("../exceptions/FieldValidatorException");
8
+ const BaseField_1 = require("../../infrastructure/decorators/fields/BaseField");
9
+ const Validator_1 = require("../validators/Validator");
6
10
  const defaultValidatorOptions = {
7
11
  whitelist: false,
8
12
  };
@@ -13,4 +17,58 @@ async function validateOrReject(dto, validatorOptions) {
13
17
  }
14
18
  }
15
19
  exports.validateOrReject = validateOrReject;
20
+ class ValidationHelper {
21
+ static async validate(dto, params = null, allValidators = null) {
22
+ await ValidationHelper.validateSingle(dto);
23
+ await ValidationHelper.validateByInstances(dto, params, allValidators);
24
+ }
25
+ static async validateSingle(dto) {
26
+ const errors = await (0, class_validator_1.validate)(dto, defaultValidatorOptions);
27
+ if (errors.length) {
28
+ throw new exceptions_1.ValidationException(errors);
29
+ }
30
+ }
31
+ static async validateByInstances(dto, params = null, validatorsInstances = null) {
32
+ var _a, _b, _c;
33
+ const errors = {};
34
+ const keys = (0, BaseField_1.isMetaClass)(dto.constructor) ? (0, BaseField_1.getMetaFields)(dto.constructor) : Object.keys(dto);
35
+ for (const key of keys) {
36
+ const value = dto[key];
37
+ const nextParams = Object.assign(Object.assign({}, params), { name: key, prevModel: ((_a = params.prevModel) === null || _a === void 0 ? void 0 : _a[key]) || null, nextModel: ((_b = params.nextModel) === null || _b === void 0 ? void 0 : _b[key]) || null });
38
+ try {
39
+ if (Array.isArray(value)) {
40
+ for (const valueItem of value) {
41
+ await ValidationHelper.validateByInstances(valueItem, nextParams, validatorsInstances);
42
+ }
43
+ }
44
+ else if (value && (0, lodash_1.isObject)(value)) {
45
+ await ValidationHelper.validateByInstances(value, nextParams, validatorsInstances);
46
+ }
47
+ else {
48
+ const validatorsClasses = (0, Validator_1.getFieldValidators)(dto.constructor, key);
49
+ for (const validatorClass of validatorsClasses) {
50
+ const validator = (validatorsInstances || []).find(item => item instanceof validatorClass);
51
+ if (!validator) {
52
+ throw new Error(`Not found validator instance for "${dto.constructor.name}.${key}."`
53
+ + ' Please add it to CrudService.validators array.');
54
+ }
55
+ await validator.validate(dto, Object.assign(Object.assign({}, params), { name: key }));
56
+ }
57
+ }
58
+ }
59
+ catch (e) {
60
+ if (e instanceof FieldValidatorException_1.FieldValidatorException) {
61
+ errors[((_c = e.params) === null || _c === void 0 ? void 0 : _c.name) || key] = e.message;
62
+ }
63
+ else {
64
+ throw e;
65
+ }
66
+ }
67
+ }
68
+ if (Object.keys(errors).length > 0) {
69
+ throw new exceptions_1.ValidationException(errors);
70
+ }
71
+ }
72
+ }
73
+ exports.ValidationHelper = ValidationHelper;
16
74
  //# sourceMappingURL=ValidationHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAC3D,8CAAkD;AAElD,MAAM,uBAAuB,GAAqB;IAC9C,SAAS,EAAE,KAAK;CACnB,CAAC;AAEK,KAAK,UAAU,gBAAgB,CAAC,GAAQ,EAAE,gBAAmC;IAChF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EACzB,GAAG,kCACC,uBAAuB,GAAK,gBAAgB,EACnD,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,EAAE;QACf,MAAM,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;KACzC;AACL,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ContextDto } from '../dtos/ContextDto';
2
+ export interface IValidatorParams {
3
+ name?: string;
4
+ prevModel?: any;
5
+ nextModel?: any;
6
+ context?: ContextDto;
7
+ params?: Record<string, unknown>;
8
+ }
9
+ export interface IValidator {
10
+ validate(dto: any, params: IValidatorParams): any;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IValidator.js","sourceRoot":"","sources":["../../../../src/usecases/interfaces/IValidator.ts"],"names":[],"mappings":""}
@@ -4,10 +4,12 @@ import { ISearchInputDto } from '../dtos/SearchInputDto';
4
4
  import { SearchResultDto } from '../dtos/SearchResultDto';
5
5
  import SearchQuery from '../base/SearchQuery';
6
6
  import { ContextDto } from '../dtos/ContextDto';
7
+ import { IValidator, IValidatorParams } from '../interfaces/IValidator';
7
8
  export declare class CrudService<TModel, TSearchDto = ISearchInputDto, TSaveDto = TModel> {
8
9
  protected primaryKey: string;
9
10
  protected repository: ICrudRepository<TModel>;
10
11
  protected modelClass: any;
12
+ validators: IValidator[];
11
13
  init(repository: ICrudRepository<TModel>, ModelClass: any): void;
12
14
  search(dto: TSearchDto, context?: ContextDto | null): Promise<SearchResultDto<TModel>>;
13
15
  search<TSchema>(dto: TSearchDto, context?: ContextDto | null, schemaClass?: Type<TSchema>): Promise<SearchResultDto<Type<TSchema>>>;
@@ -24,4 +26,5 @@ export declare class CrudService<TModel, TSearchDto = ISearchInputDto, TSaveDto
24
26
  removeInternal(id: number, context?: ContextDto): Promise<void>;
25
27
  protected modelToSchema<TSchema>(model: TModel, schemaClass: Type<TSchema>): Type<TSchema>;
26
28
  protected dtoToModel(dto: TSaveDto): TModel;
29
+ protected validate(dto: any, params?: IValidatorParams): Promise<void>;
27
30
  }
@@ -15,7 +15,9 @@ class CrudService {
15
15
  this.modelClass = ModelClass;
16
16
  }
17
17
  async search(dto, context = null, schemaClass = null) {
18
- await (0, ValidationHelper_1.validateOrReject)(dto);
18
+ await this.validate(dto, {
19
+ context,
20
+ });
19
21
  const result = await this.repository.search(dto, schemaClass ? SearchQuery_1.default.createFromSchema(schemaClass) : new SearchQuery_1.default());
20
22
  if (schemaClass) {
21
23
  result.items = result.items.map((model) => this.modelToSchema(model, schemaClass));
@@ -35,18 +37,19 @@ class CrudService {
35
37
  return await this.repository.findMany(searchQuery);
36
38
  }
37
39
  async create(dto, context = null, schemaClass = null) {
38
- await (0, ValidationHelper_1.validateOrReject)(dto);
39
40
  const nextModel = await this.dtoToModel(dto);
41
+ await this.validate(dto, {
42
+ nextModel,
43
+ context,
44
+ });
40
45
  await this.saveInternal(null, nextModel, context);
41
46
  return schemaClass ? this.findById(nextModel[this.primaryKey], context, schemaClass) : nextModel;
42
47
  }
43
48
  async update(rawId, dto, context = null, schemaClass = null) {
44
49
  const id = (0, lodash_1.toInteger)(rawId);
45
- await (0, ValidationHelper_1.validateOrReject)(dto);
46
- const searchQuery = new SearchQuery_1.default();
47
- searchQuery.condition = { [this.primaryKey]: id };
48
- searchQuery.relations = (0, BaseField_1.getMetaRelations)(dto.constructor);
49
- let prevModel = await this.findOne(searchQuery);
50
+ let prevModel = await this.findOne((new SearchQuery_1.default())
51
+ .where({ [this.primaryKey]: id })
52
+ .with((0, BaseField_1.getMetaRelations)(dto.constructor)));
50
53
  if (!prevModel) {
51
54
  throw new Error('Not found model by id: ' + id);
52
55
  }
@@ -55,6 +58,11 @@ class CrudService {
55
58
  DataMapper_1.DataMapper.applyValues(nextModel, prevModel);
56
59
  DataMapper_1.DataMapper.applyValues(nextModel, this.dtoToModel(dto));
57
60
  nextModel[this.primaryKey] = id;
61
+ await this.validate(dto, {
62
+ prevModel,
63
+ nextModel,
64
+ context,
65
+ });
58
66
  await this.saveInternal(prevModel, nextModel, context);
59
67
  return schemaClass ? this.findById(id, context, schemaClass) : nextModel;
60
68
  }
@@ -81,6 +89,9 @@ class CrudService {
81
89
  }
82
90
  return DataMapper_1.DataMapper.create(this.modelClass, dto);
83
91
  }
92
+ async validate(dto, params) {
93
+ await ValidationHelper_1.ValidationHelper.validate(dto, params, this.validators);
94
+ }
84
95
  }
85
96
  exports.CrudService = CrudService;
86
97
  //# sourceMappingURL=CrudService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const STEROIDS_META_VALIDATOR_CLASSES = "steroids_meta_validator_classes";
2
+ export interface ITableOptions {
3
+ name: string;
4
+ label?: string;
5
+ modelClass?: any;
6
+ }
7
+ export declare const getFieldValidators: (MetaClass: any, fieldName: any) => any;
8
+ export declare function Validator(ValidatorClass: any): (object: any, fieldName: any) => void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Validator = exports.getFieldValidators = exports.STEROIDS_META_VALIDATOR_CLASSES = void 0;
4
+ exports.STEROIDS_META_VALIDATOR_CLASSES = 'steroids_meta_validator_classes';
5
+ const getFieldValidators = (MetaClass, fieldName) => {
6
+ return Reflect.getMetadata(exports.STEROIDS_META_VALIDATOR_CLASSES, MetaClass.prototype, fieldName) || [];
7
+ };
8
+ exports.getFieldValidators = getFieldValidators;
9
+ function Validator(ValidatorClass) {
10
+ return (object, fieldName) => {
11
+ const validatorClasses = Reflect.getMetadata(exports.STEROIDS_META_VALIDATOR_CLASSES, object, fieldName) || [];
12
+ if (!validatorClasses.includes(ValidatorClass)) {
13
+ validatorClasses.push(ValidatorClass);
14
+ }
15
+ Reflect.defineMetadata(exports.STEROIDS_META_VALIDATOR_CLASSES, validatorClasses, object, fieldName);
16
+ };
17
+ }
18
+ exports.Validator = Validator;
19
+ //# sourceMappingURL=Validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../../src/usecases/validators/Validator.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG,iCAAiC,CAAC;AAQ1E,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IACvD,OAAO,OAAO,CAAC,WAAW,CAAC,uCAA+B,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACtG,CAAC,CAAA;AAFY,QAAA,kBAAkB,sBAE9B;AAED,SAAgB,SAAS,CAAC,cAAc;IACpC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;QAGzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,uCAA+B,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QACvG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC5C,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACzC;QACD,OAAO,CAAC,cAAc,CAAC,uCAA+B,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjG,CAAC,CAAC;AACN,CAAC;AAVD,8BAUC"}
@@ -0,0 +1,2 @@
1
+ export { Allow, IsDefined, IsOptional, Validate, ValidateBy, ValidateIf, ValidateNested, ValidatePromise, IsLatLong, IsLatitude, IsLongitude, Equals, NotEquals, IsEmpty, IsNotEmpty, IsIn, IsNotIn, IsDivisibleBy, IsPositive, IsNegative, Max, Min, MinDate, MaxDate, Contains, NotContains, IsAlpha, IsAlphanumeric, IsDecimal, IsAscii, IsBase64, IsByteLength, IsCreditCard, IsCurrency, IsEmail, IsFQDN, IsFullWidth, IsHalfWidth, IsVariableWidth, IsHexColor, IsHexadecimal, IsMACAddress, IsIP, IsPort, IsISBN, IsISIN, IsISO8601, IsJSON, IsJWT, IsLowercase, IsMobilePhone, IsISO31661Alpha2, IsISO31661Alpha3, IsMongoId, IsMultibyte, IsSurrogatePair, IsUrl, IsUUID, IsFirebasePushId, IsUppercase, Length, MaxLength, MinLength, Matches, IsPhoneNumber, IsMilitaryTime, IsHash, IsISSN, IsDateString, IsBooleanString, IsNumberString, IsBase32, IsBIC, IsBtcAddress, IsDataURI, IsEAN, IsEthereumAddress, IsHSL, IsIBAN, IsIdentityCard, IsISRC, IsLocale, IsMagnetURI, IsMimeType, IsOctal, IsPassportNumber, IsPostalCode, IsRFC3339, IsRgbColor, IsSemVer, IsBoolean, IsDate, IsNumber, IsEnum, IsInt, IsString, IsArray, IsObject, ArrayContains, ArrayNotContains, ArrayNotEmpty, ArrayMinSize, ArrayMaxSize, ArrayUnique, IsNotEmptyObject, IsInstance, } from 'class-validator';
2
+ export { Validator } from './Validator';
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsLowercase = exports.IsJWT = exports.IsJSON = exports.IsISO8601 = exports.IsISIN = exports.IsISBN = exports.IsPort = exports.IsIP = exports.IsMACAddress = exports.IsHexadecimal = exports.IsHexColor = exports.IsVariableWidth = exports.IsHalfWidth = exports.IsFullWidth = exports.IsFQDN = exports.IsEmail = exports.IsCurrency = exports.IsCreditCard = exports.IsByteLength = exports.IsBase64 = exports.IsAscii = exports.IsDecimal = exports.IsAlphanumeric = exports.IsAlpha = exports.NotContains = exports.Contains = exports.MaxDate = exports.MinDate = exports.Min = exports.Max = exports.IsNegative = exports.IsPositive = exports.IsDivisibleBy = exports.IsNotIn = exports.IsIn = exports.IsNotEmpty = exports.IsEmpty = exports.NotEquals = exports.Equals = exports.IsLongitude = exports.IsLatitude = exports.IsLatLong = exports.ValidatePromise = exports.ValidateNested = exports.ValidateIf = exports.ValidateBy = exports.Validate = exports.IsOptional = exports.IsDefined = exports.Allow = void 0;
4
+ exports.ArrayNotContains = exports.ArrayContains = exports.IsObject = exports.IsArray = exports.IsString = exports.IsInt = exports.IsEnum = exports.IsNumber = exports.IsDate = exports.IsBoolean = exports.IsSemVer = exports.IsRgbColor = exports.IsRFC3339 = exports.IsPostalCode = exports.IsPassportNumber = exports.IsOctal = exports.IsMimeType = exports.IsMagnetURI = exports.IsLocale = exports.IsISRC = exports.IsIdentityCard = exports.IsIBAN = exports.IsHSL = exports.IsEthereumAddress = exports.IsEAN = exports.IsDataURI = exports.IsBtcAddress = exports.IsBIC = exports.IsBase32 = exports.IsNumberString = exports.IsBooleanString = exports.IsDateString = exports.IsISSN = exports.IsHash = exports.IsMilitaryTime = exports.IsPhoneNumber = exports.Matches = exports.MinLength = exports.MaxLength = exports.Length = exports.IsUppercase = exports.IsFirebasePushId = exports.IsUUID = exports.IsUrl = exports.IsSurrogatePair = exports.IsMultibyte = exports.IsMongoId = exports.IsISO31661Alpha3 = exports.IsISO31661Alpha2 = exports.IsMobilePhone = void 0;
5
+ exports.Validator = exports.IsInstance = exports.IsNotEmptyObject = exports.ArrayUnique = exports.ArrayMaxSize = exports.ArrayMinSize = exports.ArrayNotEmpty = void 0;
6
+ var class_validator_1 = require("class-validator");
7
+ Object.defineProperty(exports, "Allow", { enumerable: true, get: function () { return class_validator_1.Allow; } });
8
+ Object.defineProperty(exports, "IsDefined", { enumerable: true, get: function () { return class_validator_1.IsDefined; } });
9
+ Object.defineProperty(exports, "IsOptional", { enumerable: true, get: function () { return class_validator_1.IsOptional; } });
10
+ Object.defineProperty(exports, "Validate", { enumerable: true, get: function () { return class_validator_1.Validate; } });
11
+ Object.defineProperty(exports, "ValidateBy", { enumerable: true, get: function () { return class_validator_1.ValidateBy; } });
12
+ Object.defineProperty(exports, "ValidateIf", { enumerable: true, get: function () { return class_validator_1.ValidateIf; } });
13
+ Object.defineProperty(exports, "ValidateNested", { enumerable: true, get: function () { return class_validator_1.ValidateNested; } });
14
+ Object.defineProperty(exports, "ValidatePromise", { enumerable: true, get: function () { return class_validator_1.ValidatePromise; } });
15
+ Object.defineProperty(exports, "IsLatLong", { enumerable: true, get: function () { return class_validator_1.IsLatLong; } });
16
+ Object.defineProperty(exports, "IsLatitude", { enumerable: true, get: function () { return class_validator_1.IsLatitude; } });
17
+ Object.defineProperty(exports, "IsLongitude", { enumerable: true, get: function () { return class_validator_1.IsLongitude; } });
18
+ Object.defineProperty(exports, "Equals", { enumerable: true, get: function () { return class_validator_1.Equals; } });
19
+ Object.defineProperty(exports, "NotEquals", { enumerable: true, get: function () { return class_validator_1.NotEquals; } });
20
+ Object.defineProperty(exports, "IsEmpty", { enumerable: true, get: function () { return class_validator_1.IsEmpty; } });
21
+ Object.defineProperty(exports, "IsNotEmpty", { enumerable: true, get: function () { return class_validator_1.IsNotEmpty; } });
22
+ Object.defineProperty(exports, "IsIn", { enumerable: true, get: function () { return class_validator_1.IsIn; } });
23
+ Object.defineProperty(exports, "IsNotIn", { enumerable: true, get: function () { return class_validator_1.IsNotIn; } });
24
+ Object.defineProperty(exports, "IsDivisibleBy", { enumerable: true, get: function () { return class_validator_1.IsDivisibleBy; } });
25
+ Object.defineProperty(exports, "IsPositive", { enumerable: true, get: function () { return class_validator_1.IsPositive; } });
26
+ Object.defineProperty(exports, "IsNegative", { enumerable: true, get: function () { return class_validator_1.IsNegative; } });
27
+ Object.defineProperty(exports, "Max", { enumerable: true, get: function () { return class_validator_1.Max; } });
28
+ Object.defineProperty(exports, "Min", { enumerable: true, get: function () { return class_validator_1.Min; } });
29
+ Object.defineProperty(exports, "MinDate", { enumerable: true, get: function () { return class_validator_1.MinDate; } });
30
+ Object.defineProperty(exports, "MaxDate", { enumerable: true, get: function () { return class_validator_1.MaxDate; } });
31
+ Object.defineProperty(exports, "Contains", { enumerable: true, get: function () { return class_validator_1.Contains; } });
32
+ Object.defineProperty(exports, "NotContains", { enumerable: true, get: function () { return class_validator_1.NotContains; } });
33
+ Object.defineProperty(exports, "IsAlpha", { enumerable: true, get: function () { return class_validator_1.IsAlpha; } });
34
+ Object.defineProperty(exports, "IsAlphanumeric", { enumerable: true, get: function () { return class_validator_1.IsAlphanumeric; } });
35
+ Object.defineProperty(exports, "IsDecimal", { enumerable: true, get: function () { return class_validator_1.IsDecimal; } });
36
+ Object.defineProperty(exports, "IsAscii", { enumerable: true, get: function () { return class_validator_1.IsAscii; } });
37
+ Object.defineProperty(exports, "IsBase64", { enumerable: true, get: function () { return class_validator_1.IsBase64; } });
38
+ Object.defineProperty(exports, "IsByteLength", { enumerable: true, get: function () { return class_validator_1.IsByteLength; } });
39
+ Object.defineProperty(exports, "IsCreditCard", { enumerable: true, get: function () { return class_validator_1.IsCreditCard; } });
40
+ Object.defineProperty(exports, "IsCurrency", { enumerable: true, get: function () { return class_validator_1.IsCurrency; } });
41
+ Object.defineProperty(exports, "IsEmail", { enumerable: true, get: function () { return class_validator_1.IsEmail; } });
42
+ Object.defineProperty(exports, "IsFQDN", { enumerable: true, get: function () { return class_validator_1.IsFQDN; } });
43
+ Object.defineProperty(exports, "IsFullWidth", { enumerable: true, get: function () { return class_validator_1.IsFullWidth; } });
44
+ Object.defineProperty(exports, "IsHalfWidth", { enumerable: true, get: function () { return class_validator_1.IsHalfWidth; } });
45
+ Object.defineProperty(exports, "IsVariableWidth", { enumerable: true, get: function () { return class_validator_1.IsVariableWidth; } });
46
+ Object.defineProperty(exports, "IsHexColor", { enumerable: true, get: function () { return class_validator_1.IsHexColor; } });
47
+ Object.defineProperty(exports, "IsHexadecimal", { enumerable: true, get: function () { return class_validator_1.IsHexadecimal; } });
48
+ Object.defineProperty(exports, "IsMACAddress", { enumerable: true, get: function () { return class_validator_1.IsMACAddress; } });
49
+ Object.defineProperty(exports, "IsIP", { enumerable: true, get: function () { return class_validator_1.IsIP; } });
50
+ Object.defineProperty(exports, "IsPort", { enumerable: true, get: function () { return class_validator_1.IsPort; } });
51
+ Object.defineProperty(exports, "IsISBN", { enumerable: true, get: function () { return class_validator_1.IsISBN; } });
52
+ Object.defineProperty(exports, "IsISIN", { enumerable: true, get: function () { return class_validator_1.IsISIN; } });
53
+ Object.defineProperty(exports, "IsISO8601", { enumerable: true, get: function () { return class_validator_1.IsISO8601; } });
54
+ Object.defineProperty(exports, "IsJSON", { enumerable: true, get: function () { return class_validator_1.IsJSON; } });
55
+ Object.defineProperty(exports, "IsJWT", { enumerable: true, get: function () { return class_validator_1.IsJWT; } });
56
+ Object.defineProperty(exports, "IsLowercase", { enumerable: true, get: function () { return class_validator_1.IsLowercase; } });
57
+ Object.defineProperty(exports, "IsMobilePhone", { enumerable: true, get: function () { return class_validator_1.IsMobilePhone; } });
58
+ Object.defineProperty(exports, "IsISO31661Alpha2", { enumerable: true, get: function () { return class_validator_1.IsISO31661Alpha2; } });
59
+ Object.defineProperty(exports, "IsISO31661Alpha3", { enumerable: true, get: function () { return class_validator_1.IsISO31661Alpha3; } });
60
+ Object.defineProperty(exports, "IsMongoId", { enumerable: true, get: function () { return class_validator_1.IsMongoId; } });
61
+ Object.defineProperty(exports, "IsMultibyte", { enumerable: true, get: function () { return class_validator_1.IsMultibyte; } });
62
+ Object.defineProperty(exports, "IsSurrogatePair", { enumerable: true, get: function () { return class_validator_1.IsSurrogatePair; } });
63
+ Object.defineProperty(exports, "IsUrl", { enumerable: true, get: function () { return class_validator_1.IsUrl; } });
64
+ Object.defineProperty(exports, "IsUUID", { enumerable: true, get: function () { return class_validator_1.IsUUID; } });
65
+ Object.defineProperty(exports, "IsFirebasePushId", { enumerable: true, get: function () { return class_validator_1.IsFirebasePushId; } });
66
+ Object.defineProperty(exports, "IsUppercase", { enumerable: true, get: function () { return class_validator_1.IsUppercase; } });
67
+ Object.defineProperty(exports, "Length", { enumerable: true, get: function () { return class_validator_1.Length; } });
68
+ Object.defineProperty(exports, "MaxLength", { enumerable: true, get: function () { return class_validator_1.MaxLength; } });
69
+ Object.defineProperty(exports, "MinLength", { enumerable: true, get: function () { return class_validator_1.MinLength; } });
70
+ Object.defineProperty(exports, "Matches", { enumerable: true, get: function () { return class_validator_1.Matches; } });
71
+ Object.defineProperty(exports, "IsPhoneNumber", { enumerable: true, get: function () { return class_validator_1.IsPhoneNumber; } });
72
+ Object.defineProperty(exports, "IsMilitaryTime", { enumerable: true, get: function () { return class_validator_1.IsMilitaryTime; } });
73
+ Object.defineProperty(exports, "IsHash", { enumerable: true, get: function () { return class_validator_1.IsHash; } });
74
+ Object.defineProperty(exports, "IsISSN", { enumerable: true, get: function () { return class_validator_1.IsISSN; } });
75
+ Object.defineProperty(exports, "IsDateString", { enumerable: true, get: function () { return class_validator_1.IsDateString; } });
76
+ Object.defineProperty(exports, "IsBooleanString", { enumerable: true, get: function () { return class_validator_1.IsBooleanString; } });
77
+ Object.defineProperty(exports, "IsNumberString", { enumerable: true, get: function () { return class_validator_1.IsNumberString; } });
78
+ Object.defineProperty(exports, "IsBase32", { enumerable: true, get: function () { return class_validator_1.IsBase32; } });
79
+ Object.defineProperty(exports, "IsBIC", { enumerable: true, get: function () { return class_validator_1.IsBIC; } });
80
+ Object.defineProperty(exports, "IsBtcAddress", { enumerable: true, get: function () { return class_validator_1.IsBtcAddress; } });
81
+ Object.defineProperty(exports, "IsDataURI", { enumerable: true, get: function () { return class_validator_1.IsDataURI; } });
82
+ Object.defineProperty(exports, "IsEAN", { enumerable: true, get: function () { return class_validator_1.IsEAN; } });
83
+ Object.defineProperty(exports, "IsEthereumAddress", { enumerable: true, get: function () { return class_validator_1.IsEthereumAddress; } });
84
+ Object.defineProperty(exports, "IsHSL", { enumerable: true, get: function () { return class_validator_1.IsHSL; } });
85
+ Object.defineProperty(exports, "IsIBAN", { enumerable: true, get: function () { return class_validator_1.IsIBAN; } });
86
+ Object.defineProperty(exports, "IsIdentityCard", { enumerable: true, get: function () { return class_validator_1.IsIdentityCard; } });
87
+ Object.defineProperty(exports, "IsISRC", { enumerable: true, get: function () { return class_validator_1.IsISRC; } });
88
+ Object.defineProperty(exports, "IsLocale", { enumerable: true, get: function () { return class_validator_1.IsLocale; } });
89
+ Object.defineProperty(exports, "IsMagnetURI", { enumerable: true, get: function () { return class_validator_1.IsMagnetURI; } });
90
+ Object.defineProperty(exports, "IsMimeType", { enumerable: true, get: function () { return class_validator_1.IsMimeType; } });
91
+ Object.defineProperty(exports, "IsOctal", { enumerable: true, get: function () { return class_validator_1.IsOctal; } });
92
+ Object.defineProperty(exports, "IsPassportNumber", { enumerable: true, get: function () { return class_validator_1.IsPassportNumber; } });
93
+ Object.defineProperty(exports, "IsPostalCode", { enumerable: true, get: function () { return class_validator_1.IsPostalCode; } });
94
+ Object.defineProperty(exports, "IsRFC3339", { enumerable: true, get: function () { return class_validator_1.IsRFC3339; } });
95
+ Object.defineProperty(exports, "IsRgbColor", { enumerable: true, get: function () { return class_validator_1.IsRgbColor; } });
96
+ Object.defineProperty(exports, "IsSemVer", { enumerable: true, get: function () { return class_validator_1.IsSemVer; } });
97
+ Object.defineProperty(exports, "IsBoolean", { enumerable: true, get: function () { return class_validator_1.IsBoolean; } });
98
+ Object.defineProperty(exports, "IsDate", { enumerable: true, get: function () { return class_validator_1.IsDate; } });
99
+ Object.defineProperty(exports, "IsNumber", { enumerable: true, get: function () { return class_validator_1.IsNumber; } });
100
+ Object.defineProperty(exports, "IsEnum", { enumerable: true, get: function () { return class_validator_1.IsEnum; } });
101
+ Object.defineProperty(exports, "IsInt", { enumerable: true, get: function () { return class_validator_1.IsInt; } });
102
+ Object.defineProperty(exports, "IsString", { enumerable: true, get: function () { return class_validator_1.IsString; } });
103
+ Object.defineProperty(exports, "IsArray", { enumerable: true, get: function () { return class_validator_1.IsArray; } });
104
+ Object.defineProperty(exports, "IsObject", { enumerable: true, get: function () { return class_validator_1.IsObject; } });
105
+ Object.defineProperty(exports, "ArrayContains", { enumerable: true, get: function () { return class_validator_1.ArrayContains; } });
106
+ Object.defineProperty(exports, "ArrayNotContains", { enumerable: true, get: function () { return class_validator_1.ArrayNotContains; } });
107
+ Object.defineProperty(exports, "ArrayNotEmpty", { enumerable: true, get: function () { return class_validator_1.ArrayNotEmpty; } });
108
+ Object.defineProperty(exports, "ArrayMinSize", { enumerable: true, get: function () { return class_validator_1.ArrayMinSize; } });
109
+ Object.defineProperty(exports, "ArrayMaxSize", { enumerable: true, get: function () { return class_validator_1.ArrayMaxSize; } });
110
+ Object.defineProperty(exports, "ArrayUnique", { enumerable: true, get: function () { return class_validator_1.ArrayUnique; } });
111
+ Object.defineProperty(exports, "IsNotEmptyObject", { enumerable: true, get: function () { return class_validator_1.IsNotEmptyObject; } });
112
+ Object.defineProperty(exports, "IsInstance", { enumerable: true, get: function () { return class_validator_1.IsInstance; } });
113
+ var Validator_1 = require("./Validator");
114
+ Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return Validator_1.Validator; } });
115
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/usecases/validators/index.ts"],"names":[],"mappings":"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"}