atikin-universal-validator
Version:
A blazing-fast, zero-dependency validator for frontend and backend JS/TS applications.
17 lines (15 loc) • 559 B
text/typescript
import * as validators from './validators';
import { ValidationSchema, ValidationResult } from './types';
export function validate(schema: ValidationSchema): ValidationResult {
const errors: Record<string, string> = {};
let success = true;
for (const key in schema) {
const [value, validatorName] = schema[key];
const validator = (validators as any)[validatorName];
if (!validator || !validator(value)) {
success = false;
errors[key] = `${key} failed ${validatorName}`;
}
}
return { success, errors };
}