@felte/validator-vest
Version:
A package to use Vest validation with Felte
46 lines (43 loc) • 1.31 kB
JavaScript
import { _set } from '@felte/common';
function shapeErrors(errors) {
let err = {};
for (const [fieldName, messages] of Object.entries(errors)) {
err = _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 {};
};
}
export { validateSuite, validator, warnSuite };
//# sourceMappingURL=index.mjs.map