custom-class-validator-tools 1.0.55 → 1.1.0

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.
Files changed (89) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +4 -0
  3. package/dist/src/decorator/validate/is-not-empty-bigint-string.decorator.d.ts +1 -1
  4. package/dist/src/decorator/validate/is-not-empty-bigint-string.decorator.js +15 -18
  5. package/dist/src/decorator/validate/is-not-empty-bigint.decorator.d.ts +1 -1
  6. package/dist/src/decorator/validate/is-not-empty-bigint.decorator.js +12 -17
  7. package/dist/src/decorator/validate/is-not-empty-boolean-number.decorator.d.ts +4 -0
  8. package/dist/src/decorator/validate/is-not-empty-boolean-number.decorator.js +51 -0
  9. package/dist/src/decorator/validate/is-not-empty-boolean-string.decorator.d.ts +1 -1
  10. package/dist/src/decorator/validate/is-not-empty-boolean-string.decorator.js +14 -17
  11. package/dist/src/decorator/validate/is-not-empty-boolean.decorator.d.ts +1 -1
  12. package/dist/src/decorator/validate/is-not-empty-boolean.decorator.js +12 -17
  13. package/dist/src/decorator/validate/is-not-empty-number-string.decorator.d.ts +2 -2
  14. package/dist/src/decorator/validate/is-not-empty-number-string.decorator.js +19 -23
  15. package/dist/src/decorator/validate/is-not-empty-number.decorator.d.ts +2 -2
  16. package/dist/src/decorator/validate/is-not-empty-number.decorator.js +17 -21
  17. package/dist/src/decorator/validate/is-not-empty-sql-date-string.decorator.d.ts +1 -1
  18. package/dist/src/decorator/validate/is-not-empty-sql-date-string.decorator.js +13 -19
  19. package/dist/src/decorator/validate/is-not-empty-sql-date-time-string.decorator.d.ts +1 -1
  20. package/dist/src/decorator/validate/is-not-empty-sql-date-time-string.decorator.js +13 -19
  21. package/dist/src/decorator/validate/is-not-empty-sql-time-string.decorator.d.ts +2 -2
  22. package/dist/src/decorator/validate/is-not-empty-sql-time-string.decorator.js +18 -21
  23. package/dist/src/decorator/validate/is-not-empty-string.decorator.d.ts +2 -2
  24. package/dist/src/decorator/validate/is-not-empty-string.decorator.js +12 -17
  25. package/dist/src/decorator/validate/is-nullable-bigint.decorator.d.ts +1 -1
  26. package/dist/src/decorator/validate/is-nullable-bigint.decorator.js +12 -17
  27. package/dist/src/decorator/validate/is-nullable-boolean-number.decorator.d.ts +4 -0
  28. package/dist/src/decorator/validate/is-nullable-boolean-number.decorator.js +52 -0
  29. package/dist/src/decorator/validate/is-nullable-boolean-string.decorator.d.ts +1 -1
  30. package/dist/src/decorator/validate/is-nullable-boolean-string.decorator.js +14 -17
  31. package/dist/src/decorator/validate/is-nullable-boolean.decorator.d.ts +1 -1
  32. package/dist/src/decorator/validate/is-nullable-boolean.decorator.js +12 -17
  33. package/dist/src/decorator/validate/is-nullable-number-string.decorator.d.ts +2 -2
  34. package/dist/src/decorator/validate/is-nullable-number-string.decorator.js +20 -23
  35. package/dist/src/decorator/validate/is-nullable-number.decorator.d.ts +2 -2
  36. package/dist/src/decorator/validate/is-nullable-number.decorator.js +19 -22
  37. package/dist/src/decorator/validate/is-nullable-sql-date-string.decorator.d.ts +1 -1
  38. package/dist/src/decorator/validate/is-nullable-sql-date-string.decorator.js +16 -19
  39. package/dist/src/decorator/validate/is-nullable-sql-date-time-string.decorator.d.ts +1 -1
  40. package/dist/src/decorator/validate/is-nullable-sql-date-time-string.decorator.js +16 -19
  41. package/dist/src/decorator/validate/is-nullable-sql-time-string.decorator.d.ts +2 -2
  42. package/dist/src/decorator/validate/is-nullable-sql-time-string.decorator.js +20 -23
  43. package/dist/src/decorator/validate/is-nullable-string.decorator.d.ts +2 -2
  44. package/dist/src/decorator/validate/is-nullable-string.decorator.js +13 -18
  45. package/dist/src/decorator/validate/is-nullable.decorator.d.ts +1 -1
  46. package/dist/src/decorator/validate/is-nullable.decorator.js +2 -2
  47. package/dist/src/decorator/validate/is-optional-bigint.decorator.d.ts +1 -1
  48. package/dist/src/decorator/validate/is-optional-bigint.decorator.js +12 -17
  49. package/dist/src/decorator/validate/is-optional-boolean-string.decorator.d.ts +1 -1
  50. package/dist/src/decorator/validate/is-optional-boolean-string.decorator.js +14 -17
  51. package/dist/src/decorator/validate/is-optional-boolean.decorator.d.ts +1 -1
  52. package/dist/src/decorator/validate/is-optional-boolean.decorator.js +12 -17
  53. package/dist/src/decorator/validate/is-optional-number-boolean.decorator.d.ts +4 -0
  54. package/dist/src/decorator/validate/is-optional-number-boolean.decorator.js +52 -0
  55. package/dist/src/decorator/validate/is-optional-number-string.decorator.d.ts +2 -2
  56. package/dist/src/decorator/validate/is-optional-number-string.decorator.js +19 -22
  57. package/dist/src/decorator/validate/is-optional-number.decorator.d.ts +2 -2
  58. package/dist/src/decorator/validate/is-optional-number.decorator.js +19 -22
  59. package/dist/src/decorator/validate/is-optional-sql-date-string.decorator.d.ts +1 -1
  60. package/dist/src/decorator/validate/is-optional-sql-date-string.decorator.js +16 -19
  61. package/dist/src/decorator/validate/is-optional-sql-date-time-string.decorator.d.ts +1 -1
  62. package/dist/src/decorator/validate/is-optional-sql-date-time-string.decorator.js +15 -18
  63. package/dist/src/decorator/validate/is-optional-sql-time-string.decorator.d.ts +2 -2
  64. package/dist/src/decorator/validate/is-optional-sql-time-string.decorator.js +23 -26
  65. package/dist/src/decorator/validate/is-optional-string.decorator.d.ts +2 -2
  66. package/dist/src/decorator/validate/is-optional-string.decorator.js +13 -18
  67. package/dist/src/decorator/validate/is-undefinable-bigint.decorator.d.ts +1 -1
  68. package/dist/src/decorator/validate/is-undefinable-bigint.decorator.js +13 -18
  69. package/dist/src/decorator/validate/is-undefinable-boolean-number.decorator.d.ts +4 -0
  70. package/dist/src/decorator/validate/is-undefinable-boolean-number.decorator.js +52 -0
  71. package/dist/src/decorator/validate/is-undefinable-boolean-string.decorator.d.ts +1 -1
  72. package/dist/src/decorator/validate/is-undefinable-boolean-string.decorator.js +13 -18
  73. package/dist/src/decorator/validate/is-undefinable-boolean.decorator.d.ts +1 -1
  74. package/dist/src/decorator/validate/is-undefinable-boolean.decorator.js +13 -18
  75. package/dist/src/decorator/validate/is-undefinable-number-string.decorator.d.ts +2 -2
  76. package/dist/src/decorator/validate/is-undefinable-number-string.decorator.js +21 -23
  77. package/dist/src/decorator/validate/is-undefinable-number.decorator.d.ts +2 -2
  78. package/dist/src/decorator/validate/is-undefinable-number.decorator.js +19 -22
  79. package/dist/src/decorator/validate/is-undefinable-sql-date-string.decorator.d.ts +1 -1
  80. package/dist/src/decorator/validate/is-undefinable-sql-date-string.decorator.js +13 -18
  81. package/dist/src/decorator/validate/is-undefinable-sql-date-time-string.decorator.d.ts +1 -1
  82. package/dist/src/decorator/validate/is-undefinable-sql-date-time-string.decorator.js +14 -19
  83. package/dist/src/decorator/validate/is-undefinable-sql-time.decorator.d.ts +2 -2
  84. package/dist/src/decorator/validate/is-undefinable-sql-time.decorator.js +24 -27
  85. package/dist/src/decorator/validate/is-undefinable-string.decorator.d.ts +2 -2
  86. package/dist/src/decorator/validate/is-undefinable-string.decorator.js +13 -18
  87. package/dist/src/decorator/validate/is-undefinable.decorator.d.ts +1 -1
  88. package/dist/src/decorator/validate/is-undefinable.decorator.js +2 -2
  89. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalBoolean(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsOptionalBoolean: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -3,22 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsOptionalBoolean = void 0;
4
4
  const class_validator_1 = require("class-validator");
5
5
  const is_empty_1 = require("../../util/is-empty");
6
- function IsOptionalBoolean(validationOptions) {
7
- return function (object, propertyName) {
8
- (0, class_validator_1.registerDecorator)({
9
- name: 'IsOptionalBoolean',
10
- target: object.constructor,
11
- propertyName: propertyName,
12
- options: validationOptions,
13
- validator: {
14
- validate(value) {
15
- return typeof value === 'boolean' || (0, is_empty_1.isEmptySimple)(value);
16
- },
17
- defaultMessage(validationArguments) {
18
- return `${validationArguments?.property} should be boolean or null or undefined`;
19
- },
6
+ const isOptionalBoolean = (value) => typeof value === 'boolean' || (0, is_empty_1.isEmptySimple)(value);
7
+ const IsOptionalBoolean = (validationOptions) => {
8
+ return (0, class_validator_1.ValidateBy)({
9
+ name: 'IsOptionalBoolean',
10
+ constraints: [validationOptions],
11
+ validator: {
12
+ validate: (value) => isOptionalBoolean(value),
13
+ defaultMessage(validationArguments) {
14
+ return `${validationArguments?.property} should be boolean or null or undefined`;
20
15
  },
21
- });
22
- };
23
- }
16
+ },
17
+ }, validationOptions);
18
+ };
24
19
  exports.IsOptionalBoolean = IsOptionalBoolean;
@@ -0,0 +1,4 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare const IsOptionalNumberBoolean: (validationOptions?: ValidationOptions & {
3
+ strict?: boolean;
4
+ }) => PropertyDecorator;
@@ -0,0 +1,52 @@
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
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.IsOptionalNumberBoolean = void 0;
27
+ const class_validator_1 = require("class-validator");
28
+ const FF = __importStar(require("fp-ts/function"));
29
+ const FO = __importStar(require("fp-ts/Option"));
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const is_empty_1 = require("../../util/is-empty");
32
+ const strictValues = [1, 0];
33
+ const isOptionalNumberBoolean = (value, validationOptions) => {
34
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isNotEmptySimple)(predicate)), FO.fold(() => true, () => {
35
+ return FF.pipe(value, FO.fromPredicate(predicate => typeof predicate === 'number' && (0, is_boolean_1.isFalse)(isNaN(predicate))), FO.map(numberValue => {
36
+ return FF.pipe(validationOptions?.strict ?? true, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => true, () => strictValues.includes(numberValue)));
37
+ }), FO.fold(() => false, right => right));
38
+ }));
39
+ };
40
+ const IsOptionalNumberBoolean = (validationOptions) => {
41
+ return (0, class_validator_1.ValidateBy)({
42
+ name: 'IsOptionalNumberBoolean',
43
+ constraints: [validationOptions],
44
+ validator: {
45
+ validate: (value) => isOptionalNumberBoolean(value, validationOptions),
46
+ defaultMessage(validationArguments) {
47
+ return `${validationArguments?.property} should be boolean number or null or undefined`;
48
+ },
49
+ },
50
+ }, validationOptions);
51
+ };
52
+ exports.IsOptionalNumberBoolean = IsOptionalNumberBoolean;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalNumberString(validationOptions?: ValidationOptions & {
2
+ export declare const IsOptionalNumberString: (validationOptions?: ValidationOptions & {
3
3
  isFloat?: boolean;
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -24,30 +24,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IsOptionalNumberString = void 0;
27
- const is_boolean_1 = require("../../util/is-boolean");
28
27
  const class_validator_1 = require("class-validator");
29
28
  const FF = __importStar(require("fp-ts/function"));
30
29
  const FO = __importStar(require("fp-ts/Option"));
31
- function IsOptionalNumberString(validationOptions) {
32
- return function (object, propertyName) {
33
- (0, class_validator_1.registerDecorator)({
34
- name: 'IsOptionalNumberString',
35
- target: object.constructor,
36
- propertyName: propertyName,
37
- options: validationOptions,
38
- validator: {
39
- validate(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)));
44
- }));
45
- },
46
- defaultMessage(validationArguments) {
47
- return `${validationArguments?.property} should be number`;
48
- },
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const isOptionalNumberString = (value, validationOptions) => {
32
+ return FF.pipe(value, FO.fromNullable, FO.fold(() => true, () => {
33
+ const numberValue = Number(value);
34
+ const isNumber = typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(numberValue));
35
+ 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)));
36
+ }));
37
+ };
38
+ const IsOptionalNumberString = (validationOptions) => {
39
+ return (0, class_validator_1.ValidateBy)({
40
+ name: 'IsOptionalString',
41
+ constraints: [validationOptions],
42
+ validator: {
43
+ validate: (value) => isOptionalNumberString(value, validationOptions),
44
+ defaultMessage(validationArguments) {
45
+ return `${validationArguments?.property} should be string or null or undefined`;
49
46
  },
50
- });
51
- };
52
- }
47
+ },
48
+ }, validationOptions);
49
+ };
53
50
  exports.IsOptionalNumberString = IsOptionalNumberString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalNumber(validationOptions?: ValidationOptions & {
2
+ export declare const IsOptionalNumber: (validationOptions?: ValidationOptions & {
3
3
  isFloat?: boolean;
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -24,29 +24,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IsOptionalNumber = void 0;
27
- const is_boolean_1 = require("../../util/is-boolean");
27
+ const class_validator_1 = require("class-validator");
28
28
  const FF = __importStar(require("fp-ts/function"));
29
29
  const FO = __importStar(require("fp-ts/Option"));
30
- const class_validator_1 = require("class-validator");
31
- function IsOptionalNumber(validationOptions) {
32
- return function (object, propertyName) {
33
- (0, class_validator_1.registerDecorator)({
34
- name: 'IsOptionalNumber',
35
- target: object.constructor,
36
- propertyName: propertyName,
37
- options: validationOptions,
38
- validator: {
39
- validate(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)));
43
- }));
44
- },
45
- defaultMessage(validationArguments) {
46
- return `${validationArguments?.property} should be number or null or undefined`;
47
- },
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const isOptionalNumber = (value, validationOptions) => {
32
+ return FF.pipe(value, FO.fromNullable, FO.fold(() => true, () => {
33
+ const isNumber = typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value));
34
+ 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)));
35
+ }));
36
+ };
37
+ const IsOptionalNumber = (validationOptions) => {
38
+ return (0, class_validator_1.ValidateBy)({
39
+ name: 'IsOptionalNumber',
40
+ constraints: [validationOptions],
41
+ validator: {
42
+ validate: (value) => isOptionalNumber(value, validationOptions),
43
+ defaultMessage(validationArguments) {
44
+ return `${validationArguments?.property} should be number or null or undefined`;
48
45
  },
49
- });
50
- };
51
- }
46
+ },
47
+ }, validationOptions);
48
+ };
52
49
  exports.IsOptionalNumber = IsOptionalNumber;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalSqlDateString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsOptionalSqlDateString: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -4,27 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IsOptionalSqlDateString = void 0;
7
- const is_empty_1 = require("../../util/is-empty");
7
+ const class_validator_1 = require("class-validator");
8
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
9
  const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
10
- const class_validator_1 = require("class-validator");
10
+ const is_empty_1 = require("../../util/is-empty");
11
11
  dayjs_1.default.extend(customParseFormat_1.default);
12
- function IsOptionalSqlDateString(validationOptions) {
13
- return function (object, propertyName) {
14
- (0, class_validator_1.registerDecorator)({
15
- name: 'IsOptionalSqlDateString',
16
- target: object.constructor,
17
- propertyName: propertyName,
18
- options: validationOptions,
19
- validator: {
20
- validate(value) {
21
- return (0, is_empty_1.isEmptySimple)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD', true).isValid());
22
- },
23
- defaultMessage(validationArguments) {
24
- return `${validationArguments?.property} should be YYYY-MM-DD`;
25
- },
12
+ const isOptionalSqlDateString = (value) => {
13
+ return (0, is_empty_1.isEmptySimple)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD', true).isValid());
14
+ };
15
+ const IsOptionalSqlDateString = (validationOptions) => {
16
+ return (0, class_validator_1.ValidateBy)({
17
+ name: 'IsOptionalSqlDateString',
18
+ constraints: [validationOptions],
19
+ validator: {
20
+ validate: (value) => isOptionalSqlDateString(value),
21
+ defaultMessage(validationArguments) {
22
+ return `${validationArguments?.property} should be YYYY-MM-DD or null or undefined`;
26
23
  },
27
- });
28
- };
29
- }
24
+ },
25
+ }, validationOptions);
26
+ };
30
27
  exports.IsOptionalSqlDateString = IsOptionalSqlDateString;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalSqlDateTimeString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsOptionalSqlDateTimeString: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -4,27 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IsOptionalSqlDateTimeString = void 0;
7
+ const class_validator_1 = require("class-validator");
7
8
  const dayjs_1 = __importDefault(require("dayjs"));
8
9
  const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
9
- const class_validator_1 = require("class-validator");
10
10
  const is_empty_1 = require("../../util/is-empty");
11
11
  dayjs_1.default.extend(customParseFormat_1.default);
12
- function IsOptionalSqlDateTimeString(validationOptions) {
13
- return function (object, propertyName) {
14
- (0, class_validator_1.registerDecorator)({
15
- name: 'IsOptionalSqlDateTimeString',
16
- target: object.constructor,
17
- propertyName: propertyName,
18
- options: validationOptions,
19
- validator: {
20
- validate(value) {
21
- return (0, is_empty_1.isEmptySimple)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD HH:mm:ss', true).isValid());
22
- },
23
- defaultMessage(validationArguments) {
24
- return `${validationArguments?.property} should be YYYY-MM-DD hh:mm:ss`;
25
- },
12
+ const isOptionalSqlDateTimeString = (value) => {
13
+ return (0, is_empty_1.isEmptySimple)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD HH:mm:ss', true).isValid());
14
+ };
15
+ const IsOptionalSqlDateTimeString = (validationOptions) => {
16
+ return (0, class_validator_1.ValidateBy)({
17
+ name: 'IsOptionalSqlDateTimeString',
18
+ constraints: [validationOptions],
19
+ validator: {
20
+ validate: (value) => isOptionalSqlDateTimeString(value),
21
+ defaultMessage(validationArguments) {
22
+ return `${validationArguments?.property} should be YYYY-MM-DD hh:mm:ss`;
26
23
  },
27
- });
28
- };
29
- }
24
+ },
25
+ }, validationOptions);
26
+ };
30
27
  exports.IsOptionalSqlDateTimeString = IsOptionalSqlDateTimeString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalSqlTimeString(validationOptions?: ValidationOptions & {
2
+ export declare const IsOptionalSqlTimeString: (validationOptions?: ValidationOptions & {
3
3
  format?: 'hh:mm' | 'hh:mm:ss';
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -24,33 +24,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IsOptionalSqlTimeString = void 0;
27
+ const class_validator_1 = require("class-validator");
27
28
  const FF = __importStar(require("fp-ts/function"));
28
29
  const FO = __importStar(require("fp-ts/Option"));
29
- const class_validator_1 = require("class-validator");
30
- function IsOptionalSqlTimeString(validationOptions) {
31
- return function (object, propertyName) {
32
- (0, class_validator_1.registerDecorator)({
33
- name: 'IsOptionalSQLTimeString',
34
- target: object.constructor,
35
- propertyName: propertyName,
36
- options: validationOptions,
37
- validator: {
38
- validate(value) {
39
- return FF.pipe(value, FO.fromNullable, FO.fold(() => true, right => {
40
- return FF.pipe(right, FO.fromPredicate(refinement => typeof refinement === 'string'), FO.fold(() => false, () => {
41
- return FF.pipe(validationOptions?.format, FO.fromPredicate(refinement => refinement === 'hh:mm'), FO.fold(() => {
42
- return RegExp(/^(?:(?:([01]\d|2[0-3]):)?([0-5]\d):)?([0-5]\d)$/).test(value);
43
- }, () => {
44
- return RegExp(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/).test(value);
45
- }));
46
- }));
47
- }));
48
- },
49
- defaultMessage(validationArguments) {
50
- return `${validationArguments?.property} should be YYYY-MM-DD hh:mm:ss`;
51
- },
30
+ const isOptionalSqlTimeString = (value, validationOptions) => {
31
+ return FF.pipe(value, FO.fromNullable, FO.fold(() => true, right => {
32
+ return FF.pipe(right, FO.fromPredicate(refinement => typeof refinement === 'string'), FO.fold(() => false, () => {
33
+ return FF.pipe(validationOptions?.format, FO.fromPredicate(refinement => refinement === 'hh:mm'), FO.fold(() => {
34
+ return RegExp(/^(?:(?:([01]\d|2[0-3]):)?([0-5]\d):)?([0-5]\d)$/).test(value);
35
+ }, () => {
36
+ return RegExp(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/).test(value);
37
+ }));
38
+ }));
39
+ }));
40
+ };
41
+ const IsOptionalSqlTimeString = (validationOptions) => {
42
+ return (0, class_validator_1.ValidateBy)({
43
+ name: 'IsOptionalSqlTimeString',
44
+ constraints: [validationOptions],
45
+ validator: {
46
+ validate: (value) => isOptionalSqlTimeString(value, validationOptions),
47
+ defaultMessage(validationArguments) {
48
+ return `${validationArguments?.property} should be YYYY-MM-DD ${validationOptions?.format ?? 'hh:mm:ss'} or null or undefined`;
52
49
  },
53
- });
54
- };
55
- }
50
+ },
51
+ }, validationOptions);
52
+ };
56
53
  exports.IsOptionalSqlTimeString = IsOptionalSqlTimeString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsOptionalString(validationOptions?: ValidationOptions & {
2
+ export declare const IsOptionalString: (validationOptions?: ValidationOptions & {
3
3
  blank?: boolean;
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -1,26 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsOptionalString = void 0;
4
+ const class_validator_1 = require("class-validator");
4
5
  const is_boolean_1 = require("../../util/is-boolean");
5
6
  const is_empty_1 = require("../../util/is-empty");
6
- const class_validator_1 = require("class-validator");
7
7
  const string_validator_function_1 = require("./function/string-validator.function");
8
- function IsOptionalString(validationOptions) {
9
- return function (object, propertyName) {
10
- (0, class_validator_1.registerDecorator)({
11
- name: 'IsOptionalString',
12
- target: object.constructor,
13
- propertyName: propertyName,
14
- options: validationOptions,
15
- validator: {
16
- validate(value) {
17
- return (0, is_boolean_1.isTrue)((0, string_validator_function_1.stringValidator)(value, validationOptions?.blank)) || (0, is_empty_1.isEmptySimple)(value);
18
- },
19
- defaultMessage(validationArguments) {
20
- return `${validationArguments?.property} should be string or null or undefined`;
21
- },
8
+ const isOptionalString = (value, validationOptions) => (0, is_boolean_1.isTrue)((0, string_validator_function_1.stringValidator)(value, validationOptions?.blank)) || (0, is_empty_1.isEmptySimple)(value);
9
+ const IsOptionalString = (validationOptions) => {
10
+ return (0, class_validator_1.ValidateBy)({
11
+ name: 'IsOptionalString',
12
+ constraints: [validationOptions],
13
+ validator: {
14
+ validate: (value) => isOptionalString(value, validationOptions),
15
+ defaultMessage(validationArguments) {
16
+ return `${validationArguments?.property} should be string or null or undefined`;
22
17
  },
23
- });
24
- };
25
- }
18
+ },
19
+ }, validationOptions);
20
+ };
26
21
  exports.IsOptionalString = IsOptionalString;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableBigInt(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsUndefinableBigInt: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -1,24 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsUndefinableBigInt = void 0;
4
- const is_empty_1 = require("../../util/is-empty");
5
4
  const class_validator_1 = require("class-validator");
6
- function IsUndefinableBigInt(validationOptions) {
7
- return function (object, propertyName) {
8
- (0, class_validator_1.registerDecorator)({
9
- name: 'IsUndefinableBigInt',
10
- target: object.constructor,
11
- propertyName: propertyName,
12
- options: validationOptions,
13
- validator: {
14
- validate(value) {
15
- return typeof value === 'bigint' || (0, is_empty_1.isUndefined)(value);
16
- },
17
- defaultMessage(validationArguments) {
18
- return `${validationArguments?.property} should be string or undefined`;
19
- },
5
+ const is_empty_1 = require("../../util/is-empty");
6
+ const isUndefinableBigInt = (value) => typeof value === 'bigint' || (0, is_empty_1.isUndefined)(value);
7
+ const IsUndefinableBigInt = (validationOptions) => {
8
+ return (0, class_validator_1.ValidateBy)({
9
+ name: 'IsUndefinableBigInt',
10
+ constraints: [validationOptions],
11
+ validator: {
12
+ validate: (value) => isUndefinableBigInt(value),
13
+ defaultMessage(validationArguments) {
14
+ return `${validationArguments?.property} should be bigint or null or undefined`;
20
15
  },
21
- });
22
- };
23
- }
16
+ },
17
+ }, validationOptions);
18
+ };
24
19
  exports.IsUndefinableBigInt = IsUndefinableBigInt;
@@ -0,0 +1,4 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare const IsUndefinableBooleanNumber: (validationOptions?: ValidationOptions & {
3
+ strict?: boolean;
4
+ }) => PropertyDecorator;
@@ -0,0 +1,52 @@
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
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.IsUndefinableBooleanNumber = void 0;
27
+ const class_validator_1 = require("class-validator");
28
+ const FF = __importStar(require("fp-ts/function"));
29
+ const FO = __importStar(require("fp-ts/Option"));
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const is_empty_1 = require("../../util/is-empty");
32
+ const strictValues = [1, 0];
33
+ const isUndefinableBooleanNumber = (value, validationOptions) => {
34
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isNotUndefined)(predicate)), FO.fold(() => true, notUndefinedValue => {
35
+ return FF.pipe(notUndefinedValue, FO.fromPredicate(predicate => typeof predicate === 'number' && (0, is_boolean_1.isFalse)(isNaN(predicate))), FO.map(numberValue => {
36
+ return FF.pipe(validationOptions?.strict ?? true, FO.fromPredicate(predicate => (0, is_boolean_1.isTrue)(predicate)), FO.fold(() => true, () => strictValues.includes(numberValue)));
37
+ }), FO.fold(() => false, right => right));
38
+ }));
39
+ };
40
+ const IsUndefinableBooleanNumber = (validationOptions) => {
41
+ return (0, class_validator_1.ValidateBy)({
42
+ name: 'IsUndefinableBooleanNumber',
43
+ constraints: [validationOptions],
44
+ validator: {
45
+ validate: (value) => isUndefinableBooleanNumber(value, validationOptions),
46
+ defaultMessage(validationArguments) {
47
+ return `${validationArguments?.property} should be boolean number or undefined`;
48
+ },
49
+ },
50
+ }, validationOptions);
51
+ };
52
+ exports.IsUndefinableBooleanNumber = IsUndefinableBooleanNumber;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableBooleanString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsUndefinableBooleanString: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -1,24 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsUndefinableBooleanString = void 0;
4
- const is_empty_1 = require("../../util/is-empty");
5
4
  const class_validator_1 = require("class-validator");
6
- function IsUndefinableBooleanString(validationOptions) {
7
- return function (object, propertyName) {
8
- (0, class_validator_1.registerDecorator)({
9
- name: 'IsUndefinableBooleanString',
10
- target: object.constructor,
11
- propertyName: propertyName,
12
- options: validationOptions,
13
- validator: {
14
- validate(value) {
15
- return (typeof value === 'string' && value.length > 0 && ['true', 'false'].includes(value)) || (0, is_empty_1.isUndefined)(value);
16
- },
17
- defaultMessage(validationArguments) {
18
- return `${validationArguments?.property} should be boolean or null or undefined`;
19
- },
5
+ const is_empty_1 = require("../../util/is-empty");
6
+ const isUndefinableBooleanString = (value) => (typeof value === 'string' && value.length > 0 && ['true', 'false'].includes(value)) || (0, is_empty_1.isUndefined)(value);
7
+ const IsUndefinableBooleanString = (validationOptions) => {
8
+ return (0, class_validator_1.ValidateBy)({
9
+ name: 'IsUndefinableBooleanString',
10
+ constraints: [validationOptions],
11
+ validator: {
12
+ validate: (value) => isUndefinableBooleanString(value),
13
+ defaultMessage(validationArguments) {
14
+ return `${validationArguments?.property} should be boolean string or null or undefined`;
20
15
  },
21
- });
22
- };
23
- }
16
+ },
17
+ }, validationOptions);
18
+ };
24
19
  exports.IsUndefinableBooleanString = IsUndefinableBooleanString;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableBoolean(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsUndefinableBoolean: (validationOptions?: ValidationOptions) => PropertyDecorator;