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 };
}
