@mub22/validity
Version:
Lightweight JavaScript validation library inspired by Laravel's rule syntax. Validate fields and forms easily with built-in rules and error messages.
33 lines (32 loc) • 914 B
JavaScript
import { validate } from "./validate";
import { rulesWithData } from "./rulesWithData";
export function validateForm(data, rules) {
let isFormValid = true;
const errors = {};
for (const field in rules) {
const value = data[field];
/* Validations */
/* Skip internal fields */
if (/^__/.test(field))
continue;
const ruleList = rules[field].split("|");
if (!ruleList.length)
continue;
let result;
if (ruleList.some(rule => rule in rulesWithData)) {
data.__field__ = field;
result = validate(value, rules[field], data);
}
else {
result = validate(value, rules[field]);
}
if (!result.valid) {
errors[field] = result.errors;
isFormValid = false;
}
}
return {
valid: isFormValid,
errors
};
}