fluent-ts-validator
Version:
A fluent validator written in TypeScript
114 lines • 3.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const validation_1 = require("../validation");
const common_1 = require("../validators/common");
class CommonValidatorBuilderImpl {
constructor(validationRule) {
this.validationRule = validationRule;
}
/*
* ==================
* Validation options
* ==================
*/
withFailureCode(errorCode) {
this.validationRule.setErrorCode(errorCode);
return this;
}
withFailureMessage(errorMessage) {
this.validationRule.setErrorMessage(errorMessage);
return this;
}
withSeverity(severity) {
this.validationRule.setSeverity(severity);
return this;
}
withPropertyName(name) {
this.validationRule.setPropertyName(name);
return this;
}
whenDefined() {
this.validationRule.addCondition(new validation_1.WhenDefinedCondition(this.validationRule.lambdaExpression));
return this;
}
whenNotNull() {
this.validationRule.addCondition(new validation_1.WhenNotNullCondition(this.validationRule.lambdaExpression));
return this;
}
when(expression) {
this.validationRule.addCondition(new validation_1.WhenCondition(expression));
return this;
}
unless(expression) {
this.validationRule.addCondition(new validation_1.UnlessCondition(expression));
return this;
}
onFailure(callback) {
this.validationRule.onFailure(callback);
return this;
}
fulfills(validatable) {
if (typeof validatable === "object") {
this.validationRule.addValidator({
isValid: function (input) {
return validatable.validate(input).isValid();
}
});
}
else {
this.validationRule.addValidator({
isValid: function (input) {
return validatable(input);
}
});
}
return this;
}
/*
* =======================
* Common validation rules
* =======================
*/
isDefined() {
this.validationRule.addValidator(new common_1.IsDefinedValidator());
return this;
}
isUndefined() {
this.validationRule.addValidator(new common_1.IsUndefinedValidator());
return this;
}
isNull() {
this.validationRule.addValidator(new common_1.IsNullValidator());
return this;
}
isNotNull() {
this.validationRule.addValidator(new common_1.IsNotNullValidator());
return this;
}
isEmpty() {
this.validationRule.addValidator(new common_1.IsEmptyValidator());
return this;
}
isNotEmpty() {
this.validationRule.addValidator(new common_1.IsNotEmptyValidator());
return this;
}
isEqualTo(comparison) {
this.validationRule.addValidator(new common_1.IsEqualValidator(comparison));
return this;
}
isNotEqualTo(comparison) {
this.validationRule.addValidator(new common_1.IsNotEqualValidator(comparison));
return this;
}
isIn(iterable) {
this.validationRule.addValidator(new common_1.IsInValidator(iterable));
return this;
}
isNotIn(iterable) {
this.validationRule.addValidator(new common_1.IsNotInValidator(iterable));
return this;
}
}
exports.CommonValidatorBuilderImpl = CommonValidatorBuilderImpl;
//# sourceMappingURL=CommonValidatorBuilderImpl.js.map