@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.
24 lines (23 loc) • 701 B
JavaScript
import { rules } from "./rules";
import { locales } from "./locales";
const defaultLocale = locales.en;
export function validate(value, ruleString) {
const ruleList = ruleString.split("|");
const errors = [];
for (const rule of ruleList) {
const [ruleName, arg] = rule.split(":");
const fn = rules[ruleName];
if (!fn)
continue;
const isValid = fn(value, arg);
if (!isValid) {
const template = defaultLocale[ruleName] || "Invalid rule";
const message = template.replace(":arg", arg || "");
errors.push(message);
}
}
return {
valid: errors.length === 0,
errors,
};
}