@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 +1 -1
- package/src/infrastructure/decorators/fields/DateField.d.ts +7 -1
- package/src/infrastructure/decorators/fields/DateField.js +19 -2
- package/src/infrastructure/decorators/fields/DateField.js.map +1 -1
- package/src/infrastructure/decorators/fields/index.d.ts +2 -1
- package/src/infrastructure/decorators/fields/index.js.map +1 -1
- package/src/infrastructure/decorators/validators/MaxDate.d.ts +2 -0
- package/src/infrastructure/decorators/validators/MaxDate.js +23 -0
- package/src/infrastructure/decorators/validators/MaxDate.js.map +1 -0
- package/src/infrastructure/decorators/validators/MinDate.d.ts +2 -0
- package/src/infrastructure/decorators/validators/MinDate.js +23 -0
- package/src/infrastructure/decorators/validators/MinDate.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -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
|
|
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
|
|
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,
|
|
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":";;;
|
|
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,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,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"}
|