@steroidsjs/nest 1.3.1 → 1.3.4

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.3.1",
3
+ "version": "1.3.4",
4
4
  "scripts": {
5
5
  "build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/",
6
6
  "watch": "tsc -p tsconfig-debug.json",
@@ -6,7 +6,14 @@ const lodash_1 = require("lodash");
6
6
  const typeorm_1 = require("typeorm");
7
7
  const class_validator_1 = require("class-validator");
8
8
  const BaseField_1 = require("./BaseField");
9
+ const class_transformer_1 = require("class-transformer");
9
10
  function BooleanField(options = {}) {
11
+ const parseBoolean = (value) => {
12
+ if (value === 'false' || !value) {
13
+ return false;
14
+ }
15
+ return true;
16
+ };
10
17
  return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
11
18
  decoratorName: 'BooleanField',
12
19
  appType: 'boolean',
@@ -15,6 +22,11 @@ function BooleanField(options = {}) {
15
22
  type: options.dbType || 'boolean',
16
23
  default: (0, lodash_1.has)(options, 'defaultValue') ? options.defaultValue : false,
17
24
  nullable: (0, lodash_1.has)(options, 'nullable') ? options.nullable : false,
25
+ }), (0, class_transformer_1.Transform)(({ value }) => {
26
+ if (Array.isArray(value)) {
27
+ return value.map(parseBoolean);
28
+ }
29
+ return value === null ? value : parseBoolean(value);
18
30
  }), (0, class_validator_1.IsBoolean)({
19
31
  message: 'Должен быть булевом',
20
32
  }), (0, class_validator_1.IsOptional)());
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/BooleanField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAA+B;AAC/B,qDAAsD;AACtD,2CAAyD;AAEzD,SAAgB,YAAY,CAAC,UAA6B,EAAE;IACxD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;KACpB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;QACjC,OAAO,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK;QACrE,QAAQ,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;KACjE,CAAC,EACF,IAAA,2BAAS,EAAC;QACN,OAAO,EAAE,qBAAqB;KACjC,CAAC,EACF,IAAA,4BAAU,GAAE,CACf,CAAC;AACN,CAAC;AAjBD,oCAiBC"}
1
+ {"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/BooleanField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAA+B;AAC/B,qDAAsD;AACtD,2CAAyD;AACzD,yDAA4C;AAE5C,SAAgB,YAAY,CAAC,UAA6B,EAAE;IACxD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;KACpB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;QACjC,OAAO,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK;QACrE,QAAQ,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;KACjE,CAAC,EACF,IAAA,6BAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,EACF,IAAA,2BAAS,EAAC;QACN,OAAO,EAAE,qBAAqB;KACjC,CAAC,EACF,IAAA,4BAAU,GAAE,CACf,CAAC;AACN,CAAC;AA9BD,oCA8BC"}
@@ -1,12 +1,7 @@
1
1
  import { IBaseFieldOptions } from './BaseField';
2
- export declare const normalizeDateTime: (value: any) => string;
2
+ export declare const normalizeDateTime: (value: any, skipSeconds?: boolean) => any;
3
3
  export interface IDateTimeFieldColumnOptions extends IBaseFieldOptions {
4
4
  precision?: number;
5
+ skipSeconds?: boolean;
5
6
  }
6
- export declare const dateTimeTransformFromDb: ({ value }: {
7
- value: any;
8
- }) => string;
9
- export declare const dateTimeTransformToDb: ({ value }: {
10
- value: any;
11
- }) => string;
12
7
  export declare function DateTimeField(options?: IDateTimeFieldColumnOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DateTimeField = exports.dateTimeTransformToDb = exports.dateTimeTransformFromDb = exports.normalizeDateTime = void 0;
3
+ exports.DateTimeField = exports.normalizeDateTime = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const lodash_1 = require("lodash");
6
6
  const typeorm_1 = require("typeorm");
@@ -9,37 +9,35 @@ const class_transformer_1 = require("class-transformer");
9
9
  const BaseField_1 = require("./BaseField");
10
10
  const date_fns_1 = require("date-fns");
11
11
  const Transform_1 = require("../Transform");
12
- const normalizeDateTime = value => {
13
- if (!value) {
14
- return null;
15
- }
16
- if (typeof value === 'string') {
17
- value = (0, date_fns_1.parseISO)(value);
18
- }
19
- return (0, date_fns_1.formatISO9075)(value);
12
+ const normalizeDateTime = (value, skipSeconds = true) => {
13
+ return value
14
+ ? (0, date_fns_1.format)(typeof value === 'string'
15
+ ? (0, date_fns_1.parseISO)(value)
16
+ : value, 'yyyy-MM-dd HH:mm' + (!skipSeconds ? ':ss' : ''))
17
+ : value;
20
18
  };
21
19
  exports.normalizeDateTime = normalizeDateTime;
22
- const dateTimeTransformFromDb = ({ value }) => {
23
- return (0, exports.normalizeDateTime)(value);
24
- };
25
- exports.dateTimeTransformFromDb = dateTimeTransformFromDb;
26
- const dateTimeTransformToDb = ({ value }) => {
27
- return (0, exports.normalizeDateTime)(value);
28
- };
29
- exports.dateTimeTransformToDb = dateTimeTransformToDb;
30
20
  function DateTimeField(options = {}) {
31
- return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
32
- decoratorName: 'DateTimeField',
33
- appType: 'dateTime',
34
- jsType: 'string',
35
- }), (0, typeorm_1.Column)({
36
- type: 'timestamp',
37
- precision: (0, lodash_1.has)(options, 'precision') ? options.precision : 0,
38
- default: options.defaultValue,
39
- nullable: options.nullable,
40
- }), (0, class_validator_1.IsDate)({
41
- message: 'Некорректный формат даты',
42
- }), (0, class_transformer_1.Type)(() => Date), (0, Transform_1.Transform)(exports.dateTimeTransformFromDb, Transform_1.TRANSFORM_TYPE_FROM_DB), (0, Transform_1.Transform)(exports.dateTimeTransformToDb, Transform_1.TRANSFORM_TYPE_TO_DB));
21
+ return (0, common_1.applyDecorators)(...[
22
+ (0, BaseField_1.BaseField)(options, {
23
+ decoratorName: 'DateTimeField',
24
+ appType: 'dateTime',
25
+ jsType: 'string',
26
+ }),
27
+ (0, typeorm_1.Column)({
28
+ type: 'timestamp',
29
+ precision: (0, lodash_1.has)(options, 'precision') ? options.precision : 0,
30
+ default: options.defaultValue,
31
+ nullable: options.nullable,
32
+ }),
33
+ options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null && typeof value !== 'undefined'),
34
+ (0, class_validator_1.IsDateString)({
35
+ message: 'Некорректный формат даты',
36
+ }),
37
+ (0, class_transformer_1.Type)(() => Date),
38
+ (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDateTime)(value, options.skipSeconds), Transform_1.TRANSFORM_TYPE_FROM_DB),
39
+ (0, Transform_1.Transform)(({ value }) => (0, exports.normalizeDateTime)(value, options.skipSeconds), Transform_1.TRANSFORM_TYPE_TO_DB),
40
+ ].filter(Boolean));
43
41
  }
44
42
  exports.DateTimeField = DateTimeField;
45
43
  //# sourceMappingURL=DateTimeField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/DateTimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAA+B;AAC/B,qDAAuC;AACvC,yDAAuC;AACvC,2CAAyD;AACzD,uCAAiD;AACjD,4CAAqF;AAE9E,MAAM,iBAAiB,GAAG,KAAK,CAAC,EAAE;IACrC,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,IAAI,CAAC;KACf;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;KAC3B;IAED,OAAO,IAAA,wBAAa,EAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B;AAMK,MAAM,uBAAuB,GAAG,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;IAC/C,OAAO,IAAA,yBAAiB,EAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC;AAEM,MAAM,qBAAqB,GAAG,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;IAC7C,OAAO,IAAA,yBAAiB,EAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAA;AAFY,QAAA,qBAAqB,yBAEjC;AAED,SAAgB,aAAa,CAAC,UAAuC,EAAE;IACnE,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,wBAAM,EAAC;QACH,OAAO,EAAE,0BAA0B;KACtC,CAAC,EACF,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAChB,IAAA,qBAAS,EAAC,+BAAuB,EAAE,kCAAsB,CAAC,EAC1D,IAAA,qBAAS,EAAC,6BAAqB,EAAE,gCAAoB,CAAC,CACzD,CAAC;AACN,CAAC;AApBD,sCAoBC"}
1
+ {"version":3,"file":"DateTimeField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/DateTimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAA+B;AAC/B,qDAAyD;AACzD,yDAAuC;AACvC,2CAAyD;AACzD,uCAA0C;AAC1C,4CAAqF;AAE9E,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE;IAC3D,OAAO,KAAK;QACR,CAAC,CAAC,IAAA,iBAAM,EACJ,OAAO,KAAK,KAAK,QAAQ;YACrB,CAAC,CAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC;YACjB,CAAC,CAAC,KAAK,EACX,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD;QACD,CAAC,CAAC,KAAK,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B;AAQF,SAAgB,aAAa,CAAC,UAAuC,EAAE;IACnE,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,eAAe;YAC9B,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,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,8BAAY,EAAC;YACT,OAAO,EAAE,0BAA0B;SACtC,CAAC;QACF,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAChB,IAAA,qBAAS,EACL,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,yBAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAC1D,kCAAsB,CACzB;QACD,IAAA,qBAAS,EACL,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,IAAA,yBAAiB,EAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAC1D,gCAAoB,CACvB;KACJ,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AA7BD,sCA6BC"}
@@ -25,7 +25,7 @@ function IntegerField(options = {}) {
25
25
  if (Array.isArray(value)) {
26
26
  return value.map(valueItem => (0, lodash_1.toInteger)(valueItem));
27
27
  }
28
- return value === null ? value : (0, lodash_1.toInteger)(value);
28
+ return value === null || value === undefined ? value : (0, lodash_1.toInteger)(value);
29
29
  }),
30
30
  (0, class_validator_1.IsInt)({
31
31
  message: 'Должно быть числом',
@@ -1 +1 @@
1
- {"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/IntegerField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAA+C;AAC/C,qCAA+B;AAC/B,qDAA4E;AAC5E,2CAAyD;AACzD,yDAA4C;AAM5C,SAAgB,YAAY,CAAC,UAAgC,EAAE;IAC3D,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,SAAS;YAClB,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,6BAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;YAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAA,kBAAU,EAAC,SAAS,CAAC,CAAC,CAAC;aACxD;YACD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAE;QACH,IAAA,uBAAK,EAAC;YACF,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;KACtD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AA3BD,oCA2BC"}
1
+ {"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/IntegerField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAA+C;AAC/C,qCAA+B;AAC/B,qDAA4D;AAC5D,2CAAyD;AACzD,yDAA4C;AAM5C,SAAgB,YAAY,CAAC,UAAgC,EAAE;IAC3D,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,SAAS;YAClB,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,6BAAS,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE;YAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAA,kBAAU,EAAC,SAAS,CAAC,CAAC,CAAC;aACxD;YACD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAE;QACH,IAAA,uBAAK,EAAC;YACF,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;KACtD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AA3BD,oCA2BC"}