custom-class-validator-tools 1.0.13 → 1.0.16

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/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // 2022-06-12 14:53:54
2
+ // 2022-07-14 10:39:43
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- // 2022-06-12 14:53:54
18
+ // 2022-07-14 10:39:43
19
19
  __exportStar(require("./src/decorator/validate/function/string-validator.function"), exports);
20
20
  __exportStar(require("./src/decorator/transform/any-to-bigint.decorator"), exports);
21
21
  __exportStar(require("./src/decorator/transform/any-to-number.decorator"), exports);
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsNotEmptyNumberString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsNotEmptyNumberString(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,8 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsNotEmptyNumberString = void 0;
4
27
  const is_boolean_1 = require("../../util/is-boolean");
28
+ const is_boolean_2 = require("../../util/is-boolean");
5
29
  const class_validator_1 = require("class-validator");
30
+ const FF = __importStar(require("fp-ts/function"));
31
+ const FO = __importStar(require("fp-ts/Option"));
6
32
  function IsNotEmptyNumberString(validationOptions) {
7
33
  return function (object, propertyName) {
8
34
  (0, class_validator_1.registerDecorator)({
@@ -12,7 +38,11 @@ function IsNotEmptyNumberString(validationOptions) {
12
38
  options: validationOptions,
13
39
  validator: {
14
40
  validate(value) {
15
- return typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(Number(value)));
41
+ const numberValue = Number(value);
42
+ const isNumber = typeof value === 'string' && value.length > 0 && (0, is_boolean_2.isFalse)(isNaN(numberValue));
43
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 === 0, () => {
44
+ return (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 !== 0;
45
+ }));
16
46
  },
17
47
  defaultMessage(validationArguments) {
18
48
  return `${validationArguments?.property} sould be number string`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsNotEmptyNumber(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsNotEmptyNumber(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,8 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsNotEmptyNumber = void 0;
4
- const class_validator_1 = require("class-validator");
5
27
  const is_boolean_1 = require("../../util/is-boolean");
28
+ const FF = __importStar(require("fp-ts/function"));
29
+ const FO = __importStar(require("fp-ts/Option"));
30
+ const class_validator_1 = require("class-validator");
31
+ const is_boolean_2 = require("../../util/is-boolean");
6
32
  function IsNotEmptyNumber(validationOptions) {
7
33
  return function (object, propertyName) {
8
34
  (0, class_validator_1.registerDecorator)({
@@ -12,7 +38,8 @@ function IsNotEmptyNumber(validationOptions) {
12
38
  options: validationOptions,
13
39
  validator: {
14
40
  validate(value) {
15
- return typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value));
41
+ const isNumber = typeof value === 'number' && (0, is_boolean_2.isFalse)(isNaN(value));
42
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && value % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && value % 1 !== 0));
16
43
  },
17
44
  defaultMessage(validationArguments) {
18
45
  return `${validationArguments?.property} should be number`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsNullableNumberString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsNullableNumberString(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,9 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsNullableNumberString = void 0;
4
27
  const class_validator_1 = require("class-validator");
5
28
  const is_boolean_1 = require("../../util/is-boolean");
6
29
  const is_empty_1 = require("../../util/is-empty");
30
+ const FF = __importStar(require("fp-ts/function"));
31
+ const FO = __importStar(require("fp-ts/Option"));
7
32
  function IsNullableNumberString(validationOptions) {
8
33
  return function (object, propertyName) {
9
34
  (0, class_validator_1.registerDecorator)({
@@ -13,7 +38,11 @@ function IsNullableNumberString(validationOptions) {
13
38
  options: validationOptions,
14
39
  validator: {
15
40
  validate(value) {
16
- return (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(Number(value)))) || (0, is_empty_1.isNull)(value);
41
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isNull)(predicate)), FO.fold(() => {
42
+ const numberValue = Number(value);
43
+ const isNumber = (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(numberValue))) || (0, is_empty_1.isNull)(value);
44
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 !== 0));
45
+ }, () => true));
17
46
  },
18
47
  defaultMessage(validationArguments) {
19
48
  return `${validationArguments?.property} should be number`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsNullableNumber(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsNullableNumber(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,9 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsNullableNumber = void 0;
4
27
  const class_validator_1 = require("class-validator");
5
28
  const is_empty_1 = require("../../util/is-empty");
6
29
  const is_boolean_1 = require("../../util/is-boolean");
30
+ const FF = __importStar(require("fp-ts/function"));
31
+ const FO = __importStar(require("fp-ts/Option"));
7
32
  function IsNullableNumber(validationOptions) {
8
33
  return function (object, propertyName) {
9
34
  (0, class_validator_1.registerDecorator)({
@@ -13,7 +38,10 @@ function IsNullableNumber(validationOptions) {
13
38
  options: validationOptions,
14
39
  validator: {
15
40
  validate(value) {
16
- return (typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value))) || (0, is_empty_1.isNull)(value);
41
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isNull)(predicate)), FO.fold(() => {
42
+ const isNumber = (typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value))) || (0, is_empty_1.isNull)(value);
43
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && value % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && value % 1 !== 0));
44
+ }, () => true));
17
45
  },
18
46
  defaultMessage(validationArguments) {
19
47
  return `${validationArguments?.property} should be number or null`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalNumberString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsOptionalNumberString(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,9 +1,33 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsOptionalNumberString = void 0;
4
27
  const is_boolean_1 = require("../../util/is-boolean");
5
- const is_empty_1 = require("../../util/is-empty");
6
28
  const class_validator_1 = require("class-validator");
29
+ const FF = __importStar(require("fp-ts/function"));
30
+ const FO = __importStar(require("fp-ts/Option"));
7
31
  function IsOptionalNumberString(validationOptions) {
8
32
  return function (object, propertyName) {
9
33
  (0, class_validator_1.registerDecorator)({
@@ -13,7 +37,11 @@ function IsOptionalNumberString(validationOptions) {
13
37
  options: validationOptions,
14
38
  validator: {
15
39
  validate(value) {
16
- return (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(Number(value)))) || (0, is_empty_1.isEmptySimple)(value);
40
+ return FF.pipe(value, FO.fromNullable, FO.fold(() => true, () => {
41
+ const numberValue = Number(value);
42
+ const isNumber = typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(numberValue));
43
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 !== 0));
44
+ }));
17
45
  },
18
46
  defaultMessage(validationArguments) {
19
47
  return `${validationArguments?.property} should be number`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalNumber(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsOptionalNumber(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,8 +1,32 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsOptionalNumber = void 0;
4
27
  const is_boolean_1 = require("../../util/is-boolean");
5
- const is_empty_1 = require("../../util/is-empty");
28
+ const FF = __importStar(require("fp-ts/function"));
29
+ const FO = __importStar(require("fp-ts/Option"));
6
30
  const class_validator_1 = require("class-validator");
7
31
  function IsOptionalNumber(validationOptions) {
8
32
  return function (object, propertyName) {
@@ -13,7 +37,10 @@ function IsOptionalNumber(validationOptions) {
13
37
  options: validationOptions,
14
38
  validator: {
15
39
  validate(value) {
16
- return (typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value))) || (0, is_empty_1.isEmptySimple)(value);
40
+ return FF.pipe(value, FO.fromNullable, FO.fold(() => true, () => {
41
+ const isNumber = typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value));
42
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && value % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && value % 1 !== 0));
43
+ }));
17
44
  },
18
45
  defaultMessage(validationArguments) {
19
46
  return `${validationArguments?.property} should be number or null or undefined`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableNumberString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsUndefinableNumberString(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,9 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsUndefinableNumberString = void 0;
4
27
  const is_boolean_1 = require("../../util/is-boolean");
5
28
  const is_empty_1 = require("../../util/is-empty");
6
29
  const class_validator_1 = require("class-validator");
30
+ const FF = __importStar(require("fp-ts/function"));
31
+ const FO = __importStar(require("fp-ts/Option"));
7
32
  function IsUndefinableNumberString(validationOptions) {
8
33
  return function (object, propertyName) {
9
34
  (0, class_validator_1.registerDecorator)({
@@ -13,7 +38,11 @@ function IsUndefinableNumberString(validationOptions) {
13
38
  options: validationOptions,
14
39
  validator: {
15
40
  validate(value) {
16
- return (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(Number(value)))) || (0, is_empty_1.isUndefined)(value);
41
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isUndefined)(predicate)), FO.fold(() => {
42
+ const numberValue = Number(value);
43
+ const isNumber = (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(numberValue))) || (0, is_empty_1.isUndefined)(value);
44
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && numberValue % 1 !== 0));
45
+ }, () => true));
17
46
  },
18
47
  defaultMessage(validationArguments) {
19
48
  return `${validationArguments?.property} should be number`;
@@ -1,2 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableNumber(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare function IsUndefinableNumber(validationOptions?: ValidationOptions & {
3
+ isFloat?: boolean;
4
+ }): (object: Object, propertyName: string) => void;
@@ -1,9 +1,34 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.IsUndefinableNumber = void 0;
4
27
  const is_boolean_1 = require("../../util/is-boolean");
5
28
  const is_empty_1 = require("../../util/is-empty");
6
29
  const class_validator_1 = require("class-validator");
30
+ const FF = __importStar(require("fp-ts/function"));
31
+ const FO = __importStar(require("fp-ts/Option"));
7
32
  function IsUndefinableNumber(validationOptions) {
8
33
  return function (object, propertyName) {
9
34
  (0, class_validator_1.registerDecorator)({
@@ -13,7 +38,10 @@ function IsUndefinableNumber(validationOptions) {
13
38
  options: validationOptions,
14
39
  validator: {
15
40
  validate(value) {
16
- return (typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value))) || (0, is_empty_1.isUndefined)(value);
41
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isUndefined)(predicate)), FO.fold(() => {
42
+ const isNumber = (typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value))) || (0, is_empty_1.isUndefined)(value);
43
+ return FF.pipe(validationOptions?.isFloat ?? false, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => (0, is_boolean_1.isTrue)(isNumber) && value % 1 === 0, () => (0, is_boolean_1.isTrue)(isNumber) && value % 1 !== 0));
44
+ }, () => true));
17
45
  },
18
46
  defaultMessage(validationArguments) {
19
47
  return `${validationArguments?.property} should be number or undefined`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "custom-class-validator-tools",
3
- "version": "1.0.13",
3
+ "version": "1.0.16",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",