kasapvictor/frontend-project-lvl3

View on GitHub
src/scripts/utils/validate.js

Summary

Maintainability
A
0 mins
Test Coverage
import * as yup from 'yup';
import keyBy from 'lodash/keyBy.js';

const schema = (urls, i18nInstance) => yup.object().shape({
  url: yup
    .string()
    .url(i18nInstance.t('errors.url'))
    .notOneOf(urls, i18nInstance.t('errors.notOneOf'))
    .required(i18nInstance.t('errors.required')),
});

export default (fields, urls, i18nInstance) => schema(urls, i18nInstance)
  .validate(fields, { abortEarly: false })
  .then(() => null)
  .catch((err) => keyBy(err.inner, 'path'));