import { AbstractControl, ValidatorFn } from '@angular/forms';
import { CHARACTER_REGEX } from '@msfa-constants/regex';
import { ValidationError } from '@msfa-models/validation-error.model';

export function RegexValidator(regex = CHARACTER_REGEX, message = 'Ogiltig värde'): ValidatorFn {
  return (control: AbstractControl): ValidationError => {
    if (control && control.value) {
      if (!regex.test(control.value)) {
        return { invalid: message };
      }
    }

    return null;
  };
}
