export type Validator = (value: unknown) => boolean | string;

export function notEmpty(val: unknown) {
  return !!val || 'Feld darf nicht leer sein!';
}

export function stringIsDate(val: string) {
  return !val || /^\d{4}-\d\d-\d\d$/.test(val) || 'Datum ist nicht gültig.';
}

export function stringIsTime(val: string) {
  return !val || /^\d\d:\d\d$/.test(val) || 'Zeit ist nicht gültig.';
}

export function stringIsDateTime(val: string) {
  return !val || /^\d{4}-\d\d-\d\d \d\d:\d\d$/.test(val) || 'Datum und Zeit ist nicht gültig.';
}

export function isEmail(val: string) {
  return (
    !val || /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w\w+)+$/.test(val) || 'E-Mail ist nicht gültig.'
  );
}