@felte/validator-vest
Version:
A package to use Vest validation with Felte
50 lines (46 loc) • 1.39 kB
JavaScript
;
var common = require('@felte/common');
function shapeErrors(errors) {
let err = {};
for (const [fieldName, messages] of Object.entries(errors)) {
err = common._set(err, fieldName, messages);
}
return err;
}
function validateSuite(suite) {
return async function validate(values) {
return new Promise((resolve) => {
suite(values).done((results) => {
if (results.hasErrors()) {
resolve(shapeErrors(results.getErrors()));
}
else {
resolve(undefined);
}
});
});
};
}
function warnSuite(suite) {
return async function validate(values) {
const results = suite(values);
if (results.hasWarnings()) {
return shapeErrors(results.getWarnings());
}
};
}
function validator({ suite, }) {
return function extender(currentForm) {
if (currentForm.stage !== 'SETUP')
return {};
const validateFn = validateSuite(suite);
const warnFn = warnSuite(suite);
currentForm.addValidator(validateFn);
currentForm.addValidator(warnFn, { level: 'warning' });
return {};
};
}
exports.validateSuite = validateSuite;
exports.validator = validator;
exports.warnSuite = warnSuite;
//# sourceMappingURL=index.cjs.map