|
@@ -49,7 +49,7 @@ const {DataValidator} = require('@e22m4u/js-data-schema');
|
|
|
|
|
|
|
|
#### type
|
|
#### type
|
|
|
|
|
|
|
|
-Параметр `type` определяет тип данных. При определении схемы можно использовать
|
|
|
|
|
|
|
+Параметр `type` определяет тип данных. При определении типа можно использовать
|
|
|
константу или название типа в виде строки. Константы проверяются редакторами
|
|
константу или название типа в виде строки. Константы проверяются редакторами
|
|
|
кода, что позволяет избежать опечаток при вводе типа.
|
|
кода, что позволяет избежать опечаток при вводе типа.
|
|
|
|
|
|
|
@@ -141,8 +141,8 @@ const {DataValidator} = require('@e22m4u/js-data-schema');
|
|
|
#### required
|
|
#### required
|
|
|
|
|
|
|
|
Так как по умолчанию все типы допускают [пустые значения](#пустые-значения),
|
|
Так как по умолчанию все типы допускают [пустые значения](#пустые-значения),
|
|
|
-параметр `required` используется чтобы явно запретить такие значения
|
|
|
|
|
-при проверке. Параметр можно использовать там, где указывается тип данных.
|
|
|
|
|
|
|
+параметр `required` может быть полезен для явного их запрета при проверке
|
|
|
|
|
+данных. Параметр можно использовать там, где указывается тип данных.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
{
|
|
{
|
|
@@ -155,8 +155,9 @@ const {DataValidator} = require('@e22m4u/js-data-schema');
|
|
|
#### default
|
|
#### default
|
|
|
|
|
|
|
|
Значение по умолчанию можно указать в параметре `default`. Указанное значение
|
|
Значение по умолчанию можно указать в параметре `default`. Указанное значение
|
|
|
-будет использовано, если исходное значение оказалось *пустым* при разборе
|
|
|
|
|
-входящих данных.
|
|
|
|
|
|
|
+будет использовано, если исходное значение оказалось [пустым](#пустые-значения).
|
|
|
|
|
+Если значение параметра является объектом или массивом, то итоговые данных
|
|
|
|
|
+получат его копию.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
{
|
|
{
|
|
@@ -191,8 +192,8 @@ validator.validate({foo: 'bar'}, numberSchema);
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Каждый тип данных имеет собственный набор [пустых значений](#пустые-значения),
|
|
Каждый тип данных имеет собственный набор [пустых значений](#пустые-значения),
|
|
|
-которые являются допустимыми при проверке данных соответствующего типа.
|
|
|
|
|
-Чтобы исключить такие значения применяется параметр `required`.
|
|
|
|
|
|
|
+которые являются допустимыми при проверке соответствующего типа. Чтобы исключить
|
|
|
|
|
+такие значения применяется параметр `required`.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
import {DataValidator, DataType} from '@e22m4u/js-data-schema';
|
|
import {DataValidator, DataType} from '@e22m4u/js-data-schema';
|
|
@@ -232,8 +233,9 @@ parser.parse('10abc', {type: DataType.NUMBER}); // DataParsingError
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Массивы и объекты могут быть представлены в виде *JSON*. Метод `parse`
|
|
Массивы и объекты могут быть представлены в виде *JSON*. Метод `parse`
|
|
|
-разбирает такие значения и выполняет их проверку. К примеру, если элементы
|
|
|
|
|
-массива не соответствуют определению схемы, то будет выброшена ошибка.
|
|
|
|
|
|
|
+поддерживает данный формат и выполняет проверку разобранного значения.
|
|
|
|
|
+К примеру, если элементы массива не соответствуют определению схемы,
|
|
|
|
|
+то будет выброшена ошибка.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
import {DataParser, DataType} from '@e22m4u/js-data-schema';
|
|
import {DataParser, DataType} from '@e22m4u/js-data-schema';
|
|
@@ -295,9 +297,8 @@ validator.defineSchema({name: 'mySchema', schema});
|
|
|
parser.defineSchema({name: 'mySchema', schema});
|
|
parser.defineSchema({name: 'mySchema', schema});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Регистрация может выполняться централизованно через реестр. Этого можно
|
|
|
|
|
-добиться используя сервис-контейнер, который обычно выступает как точка
|
|
|
|
|
-входа в приложение.
|
|
|
|
|
|
|
+Регистрация схем может выполняться централизованно через реестр. Этого можно
|
|
|
|
|
+добиться используя сервис-контейнер, который выступает в роли точки входа.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
import {ServiceContainer} from '@e22m4u/js-service';
|
|
import {ServiceContainer} from '@e22m4u/js-service';
|
|
@@ -328,11 +329,12 @@ const parser = app.get(DataParser);
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
В примере выше оба сервиса используют общий реестр и знают о зарегистрированной
|
|
В примере выше оба сервиса используют общий реестр и знают о зарегистрированной
|
|
|
-схеме `mySchema`, что избавляет от необходимости синхронизации схем между ними.
|
|
|
|
|
|
|
+схеме `mySchema`, что избавляет от необходимости синхронизации между сервисами
|
|
|
|
|
+данного модуля.
|
|
|
|
|
|
|
|
#### Использование именованных схем
|
|
#### Использование именованных схем
|
|
|
|
|
|
|
|
-Зарегистрированное имя схемы можно использовать вместо обычной схемы. Пример
|
|
|
|
|
|
|
+Зарегистрированное имя схемы можно использовать вместо объекта схемы. Пример
|
|
|
ниже демонстрирует проверку данных с помощью именованной схемы.
|
|
ниже демонстрирует проверку данных с помощью именованной схемы.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
@@ -348,8 +350,9 @@ validator.validate(['a', 'b', 'c'], 'mySchema'); // OK
|
|
|
validator.validate(['a', 'b', 10], 'mySchema'); // DataValidationError
|
|
validator.validate(['a', 'b', 10], 'mySchema'); // DataValidationError
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-Имена схем можно встраивать в обычные схемы. Ниже приводится пример
|
|
|
|
|
-использования именованной схемы для определения схемы элементов массива.
|
|
|
|
|
|
|
+Зарегистрированные имена можно встраивать в другие схемы. Ниже приводится
|
|
|
|
|
+пример использования именованной схемы для определения структуры элементов
|
|
|
|
|
+массива.
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
parser.defineSchema({
|
|
parser.defineSchema({
|