@steroidsjs/nest 1.4.30 → 1.4.33

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/nest",
3
- "version": "1.4.30",
3
+ "version": "1.4.33",
4
4
  "scripts": {
5
5
  "build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/",
6
6
  "watch": "tsc -p tsconfig-debug.json",
@@ -1,3 +1,9 @@
1
+ import { ValidationArguments } from 'class-validator';
1
2
  import { IBaseFieldOptions } from './BaseField';
2
3
  export declare const normalizeDate: (value: any) => any;
3
- export declare function DateField(options?: IBaseFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
4
+ export declare const normalizeFunctionDate: (value: any, args?: ValidationArguments) => any;
5
+ export interface IDateFieldOptions extends IBaseFieldOptions {
6
+ minDate?: string | Date | Function;
7
+ maxDate?: string | Date | Function;
8
+ }
9
+ export declare function DateField(options?: IDateFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -1,22 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DateField = exports.normalizeDate = void 0;
3
+ exports.DateField = exports.normalizeFunctionDate = exports.normalizeDate = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const typeorm_1 = require("typeorm");
6
6
  const class_validator_1 = require("class-validator");
7
7
  const date_fns_1 = require("date-fns");
8
8
  const BaseField_1 = require("./BaseField");
9
9
  const Transform_1 = require("../Transform");
10
- const normalizeDate = value => {
10
+ const MinDate_1 = require("../validators/MinDate");
11
+ const MaxDate_1 = require("../validators/MaxDate");
12
+ const normalizeDate = (value) => {
11
13
  if (!value) {
12
14
  return value;
13
15
  }
14
16
  if (typeof value === 'string') {
15
17
  value = (0, date_fns_1.parseISO)(value);
16
18
  }
17
- return (0, date_fns_1.formatISO9075)(value, { representation: 'date' });
19
+ try {
20
+ return (0, date_fns_1.formatISO9075)(value, { representation: 'date' });
21
+ }
22
+ catch (e) {
23
+ throw new Error('Wrong date: ' + value);
24
+ }
18
25
  };
19
26
  exports.normalizeDate = normalizeDate;
27
+ const normalizeFunctionDate = (value, args) => {
28
+ if (typeof value === 'function') {
29
+ value = value(args);
30
+ }
31
+ return (0, exports.normalizeDate)(value);
32
+ };
33
+ exports.normalizeFunctionDate = normalizeFunctionDate;
20
34
  function DateField(options = {}) {
21
35
  return (0, common_1.applyDecorators)(...[
22
36
  (0, BaseField_1.BaseField)(options, {
@@ -32,6 +46,14 @@ function DateField(options = {}) {
32
46
  (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDate)(value), Transform_1.TRANSFORM_TYPE_FROM_DB),
33
47
  (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDate)(value), Transform_1.TRANSFORM_TYPE_TO_DB),
34
48
  options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value),
49
+ options.minDate && (0, MinDate_1.MinDate)(options.minDate, {
50
+ each: options.isArray,
51
+ message: (args) => `Выбрана дата раньше минимально допустимой (${(0, exports.normalizeFunctionDate)(options.minDate, args)})`,
52
+ }),
53
+ options.maxDate && (0, MaxDate_1.MaxDate)(options.maxDate, {
54
+ each: options.isArray,
55
+ message: (args) => `Выбрана дата позже максимально допустимой (${(0, exports.normalizeFunctionDate)(options.maxDate, args)})`,
56
+ }),
35
57
  (0, class_validator_1.IsISO8601)({
36
58
  message: 'Некорректный формат даты',
37
59
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"DateField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/DateField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAsD;AACtD,uCAAiD;AACjD,2CAAyD;AACzD,4CAAqF;AAE9E,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE;IACjC,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;KAC3B;IAED,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEF,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,qBAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,kCAAsB,CAAC;QACpE,IAAA,qBAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,gCAAoB,CAAC;QAClE,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QACxD,IAAA,2BAAS,EAAC;YACN,OAAO,EAAE,0BAA0B;SACtC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AArBD,8BAqBC"}
1
+ {"version":3,"file":"DateField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/DateField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2E;AAC3E,uCAAiD;AACjD,2CAAyD;AACzD,4CAAqF;AACrF,mDAA8C;AAC9C,mDAA8C;AAEvC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE;IACnC,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;KAC3B;IAED,IAAI;QACA,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;KAC3D;IAAC,OAAO,CAAC,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;KAC3C;AACL,CAAC,CAAC;AAbW,QAAA,aAAa,iBAaxB;AAEK,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,IAA0B,EAAE,EAAE;IACvE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC7B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,qBAAqB,yBAMhC;AAOF,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,qBAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,kCAAsB,CAAC;QACpE,IAAA,qBAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,gCAAoB,CAAC;QAClE,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QACxD,OAAO,CAAC,OAAO,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,OAAO,EAAE;YACxC,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,8CAA8C,IAAA,6BAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;SACnH,CAAC;QACF,OAAO,CAAC,OAAO,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,OAAO,EAAE;YACxC,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,8CAA8C,IAAA,6BAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;SACnH,CAAC;QACF,IAAA,2BAAS,EAAC;YACN,OAAO,EAAE,0BAA0B;SACtC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AA7BD,8BA6BC"}
@@ -23,6 +23,8 @@ function EmailField(options = {}) {
23
23
  }),
24
24
  options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null && typeof value !== 'undefined'),
25
25
  (0, class_validator_1.IsEmail)({
26
+ allow_display_name: true,
27
+ }, {
26
28
  message: 'Некорректный email адрес',
27
29
  }),
28
30
  ].filter(Boolean));
@@ -1 +1 @@
1
- {"version":3,"file":"EmailField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/EmailField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAoD;AACpD,2CAAyD;AAMzD,SAAgB,UAAU,CAAC,UAA8B,EAAE;IACvD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;KAC3B;IAED,OAAO,IAAA,wBAAe,EAAC,GAAG;QAClB,IAAA,qBAAS,EAAC,OAAO,EAAC;YACd,aAAa,EAAE,YAAY;YAC3B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;QACjG,IAAA,yBAAO,EAAC;YACJ,OAAO,EAAE,0BAA0B;SACtC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAvBD,gCAuBC"}
1
+ {"version":3,"file":"EmailField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/EmailField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAoD;AACpD,2CAAyD;AAMzD,SAAgB,UAAU,CAAC,UAA8B,EAAE;IACvD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;KAC3B;IAED,OAAO,IAAA,wBAAe,EAAC,GAAG;QAClB,IAAA,qBAAS,EAAC,OAAO,EAAC;YACd,aAAa,EAAE,YAAY;YAC3B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;QACjG,IAAA,yBAAO,EAAC;YACJ,kBAAkB,EAAE,IAAI;SAC3B,EAAE;YACC,OAAO,EAAE,0BAA0B;SACtC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAzBD,gCAyBC"}
@@ -11,6 +11,7 @@ import { IEmailFieldOptions } from './EmailField';
11
11
  import { IPhoneFieldOptions } from './PhoneField';
12
12
  import { IStringFieldOptions } from './StringField';
13
13
  import { IIntegerFieldOptions } from './IntegerField';
14
+ import { IDateFieldOptions } from './DateField';
14
15
  export { BooleanField } from './BooleanField';
15
16
  export { CoordinateField } from './CoordinateField';
16
17
  export { CreateTimeField } from './CreateTimeField';
@@ -33,4 +34,4 @@ export { UpdateTimeField } from './UpdateTimeField';
33
34
  export { RelationField } from './RelationField';
34
35
  export { RelationIdField } from './RelationIdField';
35
36
  export { ImageField } from './ImageField';
36
- export declare type IAllFieldOptions = ICreateTimeFieldOptions & IDateTimeFieldColumnOptions & IDecimalFieldOptions & IEnumFieldOptions & IExtendFieldOptions & IFileField & IRelationFieldOptions & IRelationIdFieldOptions & IUpdateTimeFieldOptions & IEmailFieldOptions & IPhoneFieldOptions & IStringFieldOptions & IIntegerFieldOptions;
37
+ export declare type IAllFieldOptions = ICreateTimeFieldOptions & IDateTimeFieldColumnOptions & IDecimalFieldOptions & IEnumFieldOptions & IExtendFieldOptions & IFileField & IRelationFieldOptions & IRelationIdFieldOptions & IUpdateTimeFieldOptions & IEmailFieldOptions & IPhoneFieldOptions & IStringFieldOptions & IIntegerFieldOptions & IDateFieldOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/index.ts"],"names":[],"mappings":";;;AAcA,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AACnB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/index.ts"],"names":[],"mappings":";;;AAeA,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AACnB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function MaxDate(maxDate: string | Date | Function, validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaxDate = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const DateField_1 = require("../fields/DateField");
6
+ function MaxDate(maxDate, validationOptions) {
7
+ return function (object, propertyName) {
8
+ (0, class_validator_1.registerDecorator)({
9
+ name: 'minDate',
10
+ target: object.constructor,
11
+ propertyName,
12
+ constraints: [maxDate],
13
+ options: validationOptions,
14
+ validator: {
15
+ validate: function (value, args) {
16
+ return new Date((0, DateField_1.normalizeDate)(value)) <= new Date((0, DateField_1.normalizeFunctionDate)(args.constraints[0], args));
17
+ },
18
+ },
19
+ });
20
+ };
21
+ }
22
+ exports.MaxDate = MaxDate;
23
+ //# sourceMappingURL=MaxDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaxDate.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/validators/MaxDate.ts"],"names":[],"mappings":";;;AAAA,qDAA0F;AAC1F,mDAAyE;AAEzE,SAAgB,OAAO,CAAC,OAAiC,EAAE,iBAAqC;IAC5F,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,WAAW,EAAE,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,EAAE,UAAU,KAAU,EAAE,IAAyB;oBACrD,OAAO,IAAI,IAAI,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAA,iCAAqB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxG,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAfD,0BAeC"}
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function MinDate(minDate: string | Date | Function, validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MinDate = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const DateField_1 = require("../fields/DateField");
6
+ function MinDate(minDate, validationOptions) {
7
+ return function (object, propertyName) {
8
+ (0, class_validator_1.registerDecorator)({
9
+ name: 'minDate',
10
+ target: object.constructor,
11
+ propertyName,
12
+ constraints: [minDate],
13
+ options: validationOptions,
14
+ validator: {
15
+ validate: function (value, args) {
16
+ return new Date((0, DateField_1.normalizeDate)(value)) >= new Date((0, DateField_1.normalizeFunctionDate)(args.constraints[0], args));
17
+ },
18
+ },
19
+ });
20
+ };
21
+ }
22
+ exports.MinDate = MinDate;
23
+ //# sourceMappingURL=MinDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinDate.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/validators/MinDate.ts"],"names":[],"mappings":";;;AAAA,qDAA0F;AAC1F,mDAAyE;AAEzE,SAAgB,OAAO,CAAC,OAAiC,EAAE,iBAAqC;IAC5F,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,IAAA,mCAAiB,EAAC;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,WAAW,EAAE,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,EAAE,UAAU,KAAU,EAAE,IAAyB;oBACrD,OAAO,IAAI,IAAI,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAA,iCAAqB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxG,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAfD,0BAeC"}
@@ -30,6 +30,9 @@ class ValidationHelper {
30
30
  }
31
31
  static async validateByInstances(dto, params = null, validatorsInstances = null) {
32
32
  var _a, _b, _c;
33
+ if (!dto) {
34
+ return;
35
+ }
33
36
  const errors = {};
34
37
  const keys = (0, BaseField_1.isMetaClass)(dto.constructor) ? (0, BaseField_1.getMetaFields)(dto.constructor) : Object.keys(dto);
35
38
  for (const key of keys) {
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ class CrudService extends ReadService_1.ReadService {
62
62
  relations.forEach((relation) => {
63
63
  var _a;
64
64
  if (((_a = model === null || model === void 0 ? void 0 : model[relation]) === null || _a === void 0 ? void 0 : _a.length) > 0) {
65
- throw new exceptions_1.UserException('Нельзя удалить, есть связные элементы');
65
+ throw new exceptions_1.UserException('Нельзя удалить, есть связные элементы (' + relation + ')');
66
66
  }
67
67
  });
68
68
  }
@@ -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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"}