@steroidsjs/nest 1.4.30 → 1.4.31

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.31",
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,13 +1,15 @@
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
  }
@@ -17,6 +19,13 @@ const normalizeDate = value => {
17
19
  return (0, date_fns_1.formatISO9075)(value, { representation: 'date' });
18
20
  };
19
21
  exports.normalizeDate = normalizeDate;
22
+ const normalizeFunctionDate = (value, args) => {
23
+ if (typeof value === 'function') {
24
+ value = value(args);
25
+ }
26
+ return (0, exports.normalizeDate)(value);
27
+ };
28
+ exports.normalizeFunctionDate = normalizeFunctionDate;
20
29
  function DateField(options = {}) {
21
30
  return (0, common_1.applyDecorators)(...[
22
31
  (0, BaseField_1.BaseField)(options, {
@@ -32,6 +41,14 @@ function DateField(options = {}) {
32
41
  (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDate)(value), Transform_1.TRANSFORM_TYPE_FROM_DB),
33
42
  (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDate)(value), Transform_1.TRANSFORM_TYPE_TO_DB),
34
43
  options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value),
44
+ options.minDate && (0, MinDate_1.MinDate)(options.minDate, {
45
+ each: options.isArray,
46
+ message: (args) => `Выбрана дата раньше минимально допустимой (${typeof options.minDate === 'function' ? (0, exports.normalizeFunctionDate)(options.minDate, args) : (0, exports.normalizeDate)(options.minDate)})`,
47
+ }),
48
+ options.maxDate && (0, MaxDate_1.MaxDate)(options.maxDate, {
49
+ each: options.isArray,
50
+ message: (args) => `Выбрана дата позже максимально допустимой (${typeof options.maxDate === 'function' ? (0, exports.normalizeFunctionDate)(options.maxDate, args) : (0, exports.normalizeDate)(options.maxDate)})`,
51
+ }),
35
52
  (0, class_validator_1.IsISO8601)({
36
53
  message: 'Некорректный формат даты',
37
54
  }),
@@ -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,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;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,8CACf,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAA,6BAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,OAAO,CACxH,GAAG;SACN,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,8CACf,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAA,6BAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,OAAO,CACxH,GAAG;SACN,CAAC;QACF,IAAA,2BAAS,EAAC;YACN,OAAO,EAAE,0BAA0B;SACtC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAjCD,8BAiCC"}
@@ -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"}