custom-class-validator-tools 1.0.54 → 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 +2 -2
@@ -1,24 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsUndefinableBoolean = void 0;
4
- const is_empty_1 = require("../../util/is-empty");
5
4
  const class_validator_1 = require("class-validator");
6
- function IsUndefinableBoolean(validationOptions) {
7
- return function (object, propertyName) {
8
- (0, class_validator_1.registerDecorator)({
9
- name: 'IsUndefinableBoolean',
10
- target: object.constructor,
11
- propertyName: propertyName,
12
- options: validationOptions,
13
- validator: {
14
- validate(value) {
15
- return typeof value === 'boolean' || (0, is_empty_1.isUndefined)(value);
16
- },
17
- defaultMessage(validationArguments) {
18
- return `${validationArguments?.property} should be boolean or undefined`;
19
- },
5
+ const is_empty_1 = require("../../util/is-empty");
6
+ const isUndefinableBoolean = (value) => typeof value === 'boolean' || (0, is_empty_1.isUndefined)(value);
7
+ const IsUndefinableBoolean = (validationOptions) => {
8
+ return (0, class_validator_1.ValidateBy)({
9
+ name: 'IsUndefinedBoolean',
10
+ constraints: [validationOptions],
11
+ validator: {
12
+ validate: (value) => isUndefinableBoolean(value),
13
+ defaultMessage(validationArguments) {
14
+ return `${validationArguments?.property} should be boolean or undefined`;
20
15
  },
21
- });
22
- };
23
- }
16
+ },
17
+ }, validationOptions);
18
+ };
24
19
  exports.IsUndefinableBoolean = IsUndefinableBoolean;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableNumberString(validationOptions?: ValidationOptions & {
2
+ export declare const IsUndefinableNumberString: (validationOptions?: ValidationOptions & {
3
3
  isFloat?: boolean;
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -24,31 +24,29 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IsUndefinableNumberString = void 0;
27
- const is_boolean_1 = require("../../util/is-boolean");
28
- const is_empty_1 = require("../../util/is-empty");
29
27
  const class_validator_1 = require("class-validator");
30
28
  const FF = __importStar(require("fp-ts/function"));
31
29
  const FO = __importStar(require("fp-ts/Option"));
32
- function IsUndefinableNumberString(validationOptions) {
33
- return function (object, propertyName) {
34
- (0, class_validator_1.registerDecorator)({
35
- name: 'IsUndefinableNumberString',
36
- target: object.constructor,
37
- propertyName: propertyName,
38
- options: validationOptions,
39
- validator: {
40
- validate(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)));
45
- }, () => true));
46
- },
47
- defaultMessage(validationArguments) {
48
- return `${validationArguments?.property} should be number`;
49
- },
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const is_empty_1 = require("../../util/is-empty");
32
+ const isUndefinableNumberString = (value, validationOptions) => {
33
+ if ((0, is_empty_1.isUndefined)(value)) {
34
+ return true;
35
+ }
36
+ const numberValue = +value;
37
+ const isNumber = (typeof value === 'string' && value.length > 0 && (0, is_boolean_1.isFalse)(isNaN(numberValue))) || (0, is_empty_1.isUndefined)(value);
38
+ 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)));
39
+ };
40
+ const IsUndefinableNumberString = (validationOptions) => {
41
+ return (0, class_validator_1.ValidateBy)({
42
+ name: 'IsUndefinableNumberString',
43
+ constraints: [validationOptions],
44
+ validator: {
45
+ validate: (value) => isUndefinableNumberString(value, validationOptions),
46
+ defaultMessage(validationArguments) {
47
+ return `${validationArguments?.property} should be number or undefined`;
50
48
  },
51
- });
52
- };
53
- }
49
+ },
50
+ }, validationOptions);
51
+ };
54
52
  exports.IsUndefinableNumberString = IsUndefinableNumberString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableNumber(validationOptions?: ValidationOptions & {
2
+ export declare const IsUndefinableNumber: (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.IsUndefinableNumber = void 0;
27
- const is_boolean_1 = require("../../util/is-boolean");
28
- const is_empty_1 = require("../../util/is-empty");
29
27
  const class_validator_1 = require("class-validator");
30
28
  const FF = __importStar(require("fp-ts/function"));
31
29
  const FO = __importStar(require("fp-ts/Option"));
32
- function IsUndefinableNumber(validationOptions) {
33
- return function (object, propertyName) {
34
- (0, class_validator_1.registerDecorator)({
35
- name: 'IsUndefinableNumber',
36
- target: object.constructor,
37
- propertyName: propertyName,
38
- options: validationOptions,
39
- validator: {
40
- validate(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)));
44
- }, () => true));
45
- },
46
- defaultMessage(validationArguments) {
47
- return `${validationArguments?.property} should be number or undefined`;
48
- },
30
+ const is_boolean_1 = require("../../util/is-boolean");
31
+ const is_empty_1 = require("../../util/is-empty");
32
+ const isUndefinableNumber = (value, validationOptions) => {
33
+ return FF.pipe(value, FO.fromPredicate(predicate => (0, is_empty_1.isNotUndefined)(predicate)), FO.fold(() => true, () => {
34
+ const isNumber = typeof value === 'number' && (0, is_boolean_1.isFalse)(isNaN(value));
35
+ 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)));
36
+ }));
37
+ };
38
+ const IsUndefinableNumber = (validationOptions) => {
39
+ return (0, class_validator_1.ValidateBy)({
40
+ name: 'IsUndefinableNumber',
41
+ constraints: [validationOptions],
42
+ validator: {
43
+ validate: (value) => isUndefinableNumber(value, validationOptions),
44
+ defaultMessage(validationArguments) {
45
+ return `${validationArguments?.property} should be number or null or undefined`;
49
46
  },
50
- });
51
- };
52
- }
47
+ },
48
+ }, validationOptions);
49
+ };
53
50
  exports.IsUndefinableNumber = IsUndefinableNumber;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableSQLDateString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsUndefinableSQLDateString: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -4,27 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IsUndefinableSQLDateString = 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
10
  const is_empty_1 = require("../../util/is-empty");
10
- const class_validator_1 = require("class-validator");
11
11
  dayjs_1.default.extend(customParseFormat_1.default);
12
- function IsUndefinableSQLDateString(validationOptions) {
13
- return function (object, propertyName) {
14
- (0, class_validator_1.registerDecorator)({
15
- name: 'IsUndefinableSQLDateString',
16
- target: object.constructor,
17
- propertyName: propertyName,
18
- options: validationOptions,
19
- validator: {
20
- validate(value) {
21
- return (0, is_empty_1.isUndefined)(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 isUndefinableSQLDateString = (value) => (0, is_empty_1.isUndefined)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD', true).isValid());
13
+ const IsUndefinableSQLDateString = (validationOptions) => {
14
+ return (0, class_validator_1.ValidateBy)({
15
+ name: 'IsUndefinableSQLDateString',
16
+ constraints: [validationOptions],
17
+ validator: {
18
+ validate: (value) => isUndefinableSQLDateString(value),
19
+ defaultMessage(validationArguments) {
20
+ return `${validationArguments?.property} should be YYYY-MM-DD or undefined`;
26
21
  },
27
- });
28
- };
29
- }
22
+ },
23
+ }, validationOptions);
24
+ };
30
25
  exports.IsUndefinableSQLDateString = IsUndefinableSQLDateString;
@@ -1,2 +1,2 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableSQLDateTimeString(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
2
+ export declare const IsUndefinableSQLDateTimeString: (validationOptions?: ValidationOptions) => PropertyDecorator;
@@ -4,27 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IsUndefinableSQLDateTimeString = 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 IsUndefinableSQLDateTimeString(validationOptions) {
13
- return function (object, propertyName) {
14
- (0, class_validator_1.registerDecorator)({
15
- name: 'IsUndefinableSQLDateTimeString',
16
- target: object.constructor,
17
- propertyName: propertyName,
18
- options: validationOptions,
19
- validator: {
20
- validate(value) {
21
- return (0, is_empty_1.isUndefined)(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 isUndefinableSqlDateTimeString = (value) => (0, is_empty_1.isUndefined)(value) || (typeof value === 'string' && (0, dayjs_1.default)(value, 'YYYY-MM-DD HH:mm:ss', true).isValid());
13
+ const IsUndefinableSQLDateTimeString = (validationOptions) => {
14
+ return (0, class_validator_1.ValidateBy)({
15
+ name: 'IsUndefinableSQLDateTimeString',
16
+ constraints: [validationOptions],
17
+ validator: {
18
+ validate: (value) => isUndefinableSqlDateTimeString(value),
19
+ defaultMessage(validationArguments) {
20
+ return `${validationArguments?.property} should be YYYY-MM-DD hh:mm:ss or undefined`;
26
21
  },
27
- });
28
- };
29
- }
22
+ },
23
+ }, validationOptions);
24
+ };
30
25
  exports.IsUndefinableSQLDateTimeString = IsUndefinableSQLDateTimeString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableSQLTimeString(validationOptions?: ValidationOptions & {
2
+ export declare const IsUndefinableSQLTimeString: (validationOptions?: ValidationOptions & {
3
3
  format: 'hh:mm' | 'hh:mm:ss';
4
- }): (object: Object, propertyName: string) => void;
4
+ }) => PropertyDecorator;
@@ -24,34 +24,31 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IsUndefinableSQLTimeString = void 0;
27
- const is_empty_1 = require("../../util/is-empty");
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 IsUndefinableSQLTimeString(validationOptions) {
32
- return function (object, propertyName) {
33
- (0, class_validator_1.registerDecorator)({
34
- name: 'IsUndefinableSQLTimeString',
35
- target: object.constructor,
36
- propertyName: propertyName,
37
- options: validationOptions,
38
- validator: {
39
- validate(value) {
40
- return FF.pipe(value, FO.fromPredicate(refinement => (0, is_empty_1.isUndefined)(refinement)), FO.fold(() => {
41
- return FF.pipe(value, FO.fromPredicate(refinement => typeof refinement === 'string'), FO.fold(() => false, () => {
42
- return FF.pipe(validationOptions?.format, FO.fromPredicate(refinement => refinement === 'hh:mm'), FO.fold(() => {
43
- return RegExp(/^(?:(?:([01]\d|2[0-3]):)?([0-5]\d):)?([0-5]\d)$/).test(value);
44
- }, () => {
45
- return RegExp(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/).test(value);
46
- }));
47
- }));
48
- }, () => true));
49
- },
50
- defaultMessage(validationArguments) {
51
- return `${validationArguments?.property} should be YYYY-MM-DD hh:mm:ss`;
52
- },
30
+ const is_empty_1 = require("../../util/is-empty");
31
+ const isUndefinableSQLTimeString = (value, validationOptions) => {
32
+ return FF.pipe(value, FO.fromPredicate(refinement => (0, is_empty_1.isUndefined)(refinement)), FO.fold(() => {
33
+ return FF.pipe(value, FO.fromPredicate(refinement => typeof refinement === 'string'), FO.fold(() => false, () => {
34
+ return FF.pipe(validationOptions?.format, FO.fromPredicate(refinement => refinement === 'hh:mm'), FO.fold(() => {
35
+ return RegExp(/^(?:(?:([01]\d|2[0-3]):)?([0-5]\d):)?([0-5]\d)$/).test(value);
36
+ }, () => {
37
+ return RegExp(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/).test(value);
38
+ }));
39
+ }));
40
+ }, () => true));
41
+ };
42
+ const IsUndefinableSQLTimeString = (validationOptions) => {
43
+ return (0, class_validator_1.ValidateBy)({
44
+ name: 'IsUndefinableSQLTimeString',
45
+ constraints: [validationOptions],
46
+ validator: {
47
+ validate: (value) => isUndefinableSQLTimeString(value, validationOptions),
48
+ defaultMessage(validationArguments) {
49
+ return `${validationArguments?.property} should be YYYY-MM-DD ${validationOptions?.format ?? 'hh:mm:ss'} or undefined`;
53
50
  },
54
- });
55
- };
56
- }
51
+ },
52
+ }, validationOptions);
53
+ };
57
54
  exports.IsUndefinableSQLTimeString = IsUndefinableSQLTimeString;
@@ -1,4 +1,4 @@
1
1
  import { ValidationOptions } from 'class-validator';
2
- export declare function IsUndefinableString(validationOptions?: ValidationOptions & {
2
+ export declare const IsUndefinableString: (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.IsUndefinableString = 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 IsUndefinableString(validationOptions) {
9
- return function (object, propertyName) {
10
- (0, class_validator_1.registerDecorator)({
11
- name: 'IsUndefinableString',
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.isUndefined)(value);
18
- },
19
- defaultMessage(validationArguments) {
20
- return `${validationArguments?.property} should be string or undefined`;
21
- },
8
+ const isUndefinableString = (value, validationOptions) => (0, is_boolean_1.isTrue)((0, string_validator_function_1.stringValidator)(value, validationOptions?.blank)) || (0, is_empty_1.isUndefined)(value);
9
+ const IsUndefinableString = (validationOptions) => {
10
+ return (0, class_validator_1.ValidateBy)({
11
+ name: 'IsUndefinableString',
12
+ constraints: [validationOptions],
13
+ validator: {
14
+ validate: (value) => isUndefinableString(value, validationOptions),
15
+ defaultMessage(validationArguments) {
16
+ return `${validationArguments?.property} should be string or undefined`;
22
17
  },
23
- });
24
- };
25
- }
18
+ },
19
+ }, validationOptions);
20
+ };
26
21
  exports.IsUndefinableString = IsUndefinableString;
@@ -1 +1 @@
1
- export declare function IsUndefinable(): PropertyDecorator;
1
+ export declare const IsUndefinable: () => PropertyDecorator;
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsUndefinable = void 0;
4
4
  const class_validator_1 = require("class-validator");
5
5
  const is_empty_1 = require("../../util/is-empty");
6
- function IsUndefinable() {
6
+ const IsUndefinable = () => {
7
7
  return (0, class_validator_1.ValidateIf)((_, value) => {
8
8
  return (0, is_empty_1.isNotUndefined)(value);
9
9
  });
10
- }
10
+ };
11
11
  exports.IsUndefinable = IsUndefinable;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "custom-class-validator-tools",
3
- "version": "1.0.54",
3
+ "version": "1.1.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "class-transformer": "^0.5.1",
21
21
  "class-validator": "^0.14.0",
22
- "dayjs": "1.11.8",
22
+ "dayjs": "^1.11.10",
23
23
  "fp-ts": "^2.11.9"
24
24
  },
25
25
  "devDependencies": {