From eb1bef772113eaff6457cb49bd26b969020b06e4 Mon Sep 17 00:00:00 2001 From: KsenyaMS Date: Wed, 29 Dec 2021 21:33:07 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B4=D0=B8=D0=BD=20?= =?UTF-8?q?=D1=8D=D0=BA=D0=B7=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80=20ajv=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=84=D1=80=D0=BE=D0=BD=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B1=D0=B5=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.js | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/src/index.js b/src/index.js index 2836ab9..8ac28ad 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,3 @@ -import Ajv from 'ajv'; import JSONSchemaBridge from 'uniforms-bridge-json-schema'; import localize from 'ajv-i18n'; //import addFormats from 'ajv-formats'; @@ -7,34 +6,7 @@ export { default as DateField } from './DateField'; export { default as PhoneField } from './PhoneField'; export { default as SelectField } from './SelectField'; -export const ajv = new Ajv({ allErrors: true, useDefaults: true, coerceTypes: true }); -ajv.addKeyword('uniforms'); -ajv.addKeyword('options'); -//addFormats(ajv); - -// email or empty string -ajv.addFormat( - 'email', - /(^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$)|(^$)/ -); - -ajv.addKeyword('isNotEmpty', { - type: 'string', - errors: true, - validate: function validate(schema, data, parent, key) { - validate.errors = [ - { - keyword: 'isNotEmpty', - message: 'должно иметь обязательное поле ' + key, - params: { keyword: 'isNotEmpty' } - } - ]; - - return typeof data === 'string' && data.trim() !== ''; - } -}); - -export function createValidator(schema, additionalValidator) { +export function createValidator(schema, ajv, additionalValidator) { const validator = ajv.compile(schema); return (model) => { @@ -57,6 +29,6 @@ export function createValidator(schema, additionalValidator) { }; } -export function createSchemaBridge(schema, additionalValidator) { - return new JSONSchemaBridge(schema, createValidator(schema, additionalValidator)); +export function createSchemaBridge(schema, ajv, additionalValidator) { + return new JSONSchemaBridge(schema, createValidator(schema, ajv, additionalValidator)); }