UNPKG

@martinmilo/verve

Version:

TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control

42 lines 1.98 kB
"use strict"; 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