@martinmilo/verve
Version:
TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control
42 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WithValidate = WithValidate;
const validator_1 = require("../../utils/validator");
function WithValidate(Base) {
return class WithValidate extends Base {
get validate() {
const self = this;
const normalize = (validators) => Array.isArray(validators) ? validators : [validators];
const validateFunc = function (validators) {
self.setOption('validators', (0, validator_1.mergeFieldValidators)(self.Field, normalize(validators)));
return self;
};
validateFunc.add = function (validators) {
self.setOption('validators', (0, validator_1.mergeFieldValidators)(self.Field, normalize(validators)));
return self;
};
validateFunc.only = function (validators) {
self.setOption('validators', normalize(validators));
return self;
};
validateFunc.none = function () {
self.setOption('validators', []);
return self;
};
validateFunc.lazy = (function (validators) {
self.setOption('validators', (0, validator_1.mergeFieldValidators)(self.Field, normalize(validators).map(validator_1.toLazyFieldValidator)));
return self;
});
validateFunc.lazy.add = function (validators) {
self.setOption('validators', (0, validator_1.mergeFieldValidators)(self.Field, normalize(validators).map(validator_1.toLazyFieldValidator)));
return self;
};
validateFunc.lazy.only = function (validators) {
self.setOption('validators', normalize(validators).map(validator_1.toLazyFieldValidator));
return self;
};
return validateFunc;
}
};
}
//# sourceMappingURL=WithValidate.js.map