custom-class-validator-tools 1.0.15 → 1.0.18
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.d.ts +46 -0
- package/dist/index.js +64 -0
- package/dist/src/decorator/transform/any-to-bigint.decorator.d.ts +2 -0
- package/dist/src/decorator/transform/any-to-bigint.decorator.js +40 -0
- package/dist/src/decorator/transform/any-to-number.decorator.d.ts +2 -0
- package/dist/src/decorator/transform/any-to-number.decorator.js +43 -0
- package/dist/src/decorator/transform/any-to-string.decorator.d.ts +2 -0
- package/dist/src/decorator/transform/any-to-string.decorator.js +15 -0
- package/dist/src/decorator/transform/number-to-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/transform/number-to-boolean.decorator.js +22 -0
- package/dist/src/decorator/transform/string-to-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/transform/string-to-boolean.decorator.js +24 -0
- package/dist/src/decorator/validate/function/string-validator.function.d.ts +1 -0
- package/dist/src/decorator/validate/function/string-validator.function.js +13 -0
- package/dist/src/decorator/validate/is-not-empty-bigint-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-bigint-string.decorator.js +49 -0
- package/dist/src/decorator/validate/is-not-empty-bigint.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-bigint.decorator.js +23 -0
- package/dist/src/decorator/validate/is-not-empty-boolean-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-boolean-string.decorator.js +23 -0
- package/dist/src/decorator/validate/is-not-empty-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-boolean.decorator.js +23 -0
- package/dist/src/decorator/validate/is-not-empty-number-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-not-empty-number-string.decorator.js +54 -0
- package/dist/src/decorator/validate/is-not-empty-number.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-not-empty-number.decorator.js +51 -0
- package/dist/src/decorator/validate/is-not-empty-sql-date-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-sql-date-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-not-empty-sql-date-time-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-not-empty-sql-date-time-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-not-empty-sql-time-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-not-empty-sql-time-string.decorator.js +51 -0
- package/dist/src/decorator/validate/is-not-empty-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-not-empty-string.decorator.js +24 -0
- package/dist/src/decorator/validate/is-nullable-bigint.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-nullable-bigint.decorator.js +24 -0
- package/dist/src/decorator/validate/is-nullable-boolean-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-nullable-boolean-string.decorator.js +24 -0
- package/dist/src/decorator/validate/is-nullable-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-nullable-boolean.decorator.js +24 -0
- package/dist/src/decorator/validate/is-nullable-number-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-nullable-number-string.decorator.js +54 -0
- package/dist/src/decorator/validate/is-nullable-number.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-nullable-number.decorator.js +53 -0
- package/dist/src/decorator/validate/is-nullable-sql-date-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-nullable-sql-date-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-nullable-sql-date-time-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-nullable-sql-date-time-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-nullable-sql-time-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-nullable-sql-time-string.decorator.js +53 -0
- package/dist/src/decorator/validate/is-nullable-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-nullable-string.decorator.js +26 -0
- package/dist/src/decorator/validate/is-nullable.decorator.d.ts +1 -0
- package/dist/src/decorator/validate/is-nullable.decorator.js +11 -0
- package/dist/src/decorator/validate/is-optional-bigint.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-optional-bigint.decorator.js +24 -0
- package/dist/src/decorator/validate/is-optional-boolean-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-optional-boolean-string.decorator.js +24 -0
- package/dist/src/decorator/validate/is-optional-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-optional-boolean.decorator.js +24 -0
- package/dist/src/decorator/validate/is-optional-number-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-optional-number-string.decorator.js +53 -0
- package/dist/src/decorator/validate/is-optional-number.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-optional-number.decorator.js +52 -0
- package/dist/src/decorator/validate/is-optional-sql-date-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-optional-sql-date-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-optional-sql-date-time-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-optional-sql-date-time-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-optional-sql-time-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-optional-sql-time-string.decorator.js +56 -0
- package/dist/src/decorator/validate/is-optional-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-optional-string.decorator.js +26 -0
- package/dist/src/decorator/validate/is-undefinable-bigint.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-undefinable-bigint.decorator.js +24 -0
- package/dist/src/decorator/validate/is-undefinable-boolean-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-undefinable-boolean-string.decorator.js +24 -0
- package/dist/src/decorator/validate/is-undefinable-boolean.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-undefinable-boolean.decorator.js +24 -0
- package/dist/src/decorator/validate/is-undefinable-number-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-undefinable-number-string.decorator.js +54 -0
- package/dist/src/decorator/validate/is-undefinable-number.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-undefinable-number.decorator.js +53 -0
- package/dist/src/decorator/validate/is-undefinable-sql-date-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-undefinable-sql-date-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-undefinable-sql-date-time-string.decorator.d.ts +2 -0
- package/dist/src/decorator/validate/is-undefinable-sql-date-time-string.decorator.js +30 -0
- package/dist/src/decorator/validate/is-undefinable-sql-time.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-undefinable-sql-time.decorator.js +57 -0
- package/dist/src/decorator/validate/is-undefinable-string.decorator.d.ts +4 -0
- package/dist/src/decorator/validate/is-undefinable-string.decorator.js +26 -0
- package/dist/src/decorator/validate/is-undefinable.decorator.d.ts +1 -0
- package/dist/src/decorator/validate/is-undefinable.decorator.js +11 -0
- package/dist/src/function/validate-with-header.decorators.d.ts +2 -0
- package/dist/src/function/validate-with-header.decorators.js +33 -0
- package/dist/src/util/is-boolean.d.ts +2 -0
- package/dist/src/util/is-boolean.js +11 -0
- package/dist/src/util/is-empty.d.ts +12 -0
- package/dist/src/util/is-empty.js +80 -0
- package/package.json +1 -1
|
@@ -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.IsOptionalNumber = void 0;
|
|
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
|
+
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
|
+
},
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.IsOptionalNumber = IsOptionalNumber;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IsOptionalSqlDateString = void 0;
|
|
7
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
8
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
+
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
10
|
+
const class_validator_1 = require("class-validator");
|
|
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
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.IsOptionalSqlDateString = IsOptionalSqlDateString;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IsOptionalSqlDateTimeString = void 0;
|
|
7
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
8
|
+
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
9
|
+
const class_validator_1 = require("class-validator");
|
|
10
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
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
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.IsOptionalSqlDateTimeString = IsOptionalSqlDateTimeString;
|
|
@@ -0,0 +1,56 @@
|
|
|
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.IsOptionalSqlTimeString = void 0;
|
|
27
|
+
const FF = __importStar(require("fp-ts/function"));
|
|
28
|
+
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
|
+
},
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
exports.IsOptionalSqlTimeString = IsOptionalSqlTimeString;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsOptionalString = void 0;
|
|
4
|
+
const is_boolean_1 = require("../../util/is-boolean");
|
|
5
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
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
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.IsOptionalString = IsOptionalString;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsUndefinableBigInt = void 0;
|
|
4
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
5
|
+
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
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.IsUndefinableBigInt = IsUndefinableBigInt;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsUndefinableBooleanString = void 0;
|
|
4
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
5
|
+
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
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.IsUndefinableBooleanString = IsUndefinableBooleanString;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsUndefinableBoolean = void 0;
|
|
4
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
5
|
+
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
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.IsUndefinableBoolean = IsUndefinableBoolean;
|
|
@@ -0,0 +1,54 @@
|
|
|
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.IsUndefinableNumberString = void 0;
|
|
27
|
+
const is_boolean_1 = require("../../util/is-boolean");
|
|
28
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
29
|
+
const class_validator_1 = require("class-validator");
|
|
30
|
+
const FF = __importStar(require("fp-ts/function"));
|
|
31
|
+
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
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.IsUndefinableNumberString = IsUndefinableNumberString;
|
|
@@ -0,0 +1,53 @@
|
|
|
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.IsUndefinableNumber = void 0;
|
|
27
|
+
const is_boolean_1 = require("../../util/is-boolean");
|
|
28
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
29
|
+
const class_validator_1 = require("class-validator");
|
|
30
|
+
const FF = __importStar(require("fp-ts/function"));
|
|
31
|
+
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
|
+
},
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.IsUndefinableNumber = IsUndefinableNumber;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IsUndefinableSQLDateString = void 0;
|
|
7
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
8
|
+
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
9
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
10
|
+
const class_validator_1 = require("class-validator");
|
|
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
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.IsUndefinableSQLDateString = IsUndefinableSQLDateString;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IsUndefinableSQLDateTimeString = void 0;
|
|
7
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
8
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
+
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
10
|
+
const class_validator_1 = require("class-validator");
|
|
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
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.IsUndefinableSQLDateTimeString = IsUndefinableSQLDateTimeString;
|
|
@@ -0,0 +1,57 @@
|
|
|
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.IsUndefinableSQLTimeString = void 0;
|
|
27
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
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
|
+
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
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.IsUndefinableSQLTimeString = IsUndefinableSQLTimeString;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsUndefinableString = void 0;
|
|
4
|
+
const is_boolean_1 = require("../../util/is-boolean");
|
|
5
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
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
|
+
},
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.IsUndefinableString = IsUndefinableString;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function IsUndefinable(): PropertyDecorator;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsUndefinable = void 0;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const is_empty_1 = require("../../util/is-empty");
|
|
6
|
+
function IsUndefinable() {
|
|
7
|
+
return (0, class_validator_1.ValidateIf)((_, value) => {
|
|
8
|
+
return (0, is_empty_1.isNotUndefined)(value);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
exports.IsUndefinable = IsUndefinable;
|