e22m4u 2 дней назад
Родитель
Сommit
f811a2ede9
1 измененных файлов с 51 добавлено и 52 удалено
  1. 51 52
      README.md

+ 51 - 52
README.md

@@ -6,20 +6,11 @@ JavaScript модуль для работы с проекцией данных.
 
 - [Установка](#установка)
 - [Схема проекции](#схема-проекции)
-  - [Определение правил видимости полей](#определение-правил-видимости-полей)
-  - [Определение вложенной схемы](#определение-вложенной-схемы)
-  - [Определение правил для областей проекции](#определение-правил-для-областей-проекции)
-- [Использование](#использование)
-  - [Создание проекции данных с помощью схемы](#создание-проекции-данных-с-помощью-схемы)
-  - [Применение схемы к массиву объектов](#применение-схемы-к-массиву-объектов)
-  - [Исключение неизвестных полей в строгом режиме](#исключение-неизвестных-полей-в-строгом-режиме)
-  - [Применение вложенных схем для сложных структур](#применение-вложенных-схем-для-сложных-структур)
-  - [Создание проекции для определенной области](#создание-проекции-для-определенной-области)
-  - [Использование фабрики вместо объекта схемы](#использование-фабрики-вместо-объекта-схемы)
-  - [Использование фабрики во вложенной схеме](#использование-фабрики-во-вложенной-схеме)
-  - [Регистрация именованной схемы и создание проекции](#регистрация-именованной-схемы-и-создание-проекции)
-  - [Использование вложенных именованных схем](#использование-вложенных-именованных-схем)
-  - [Реализация пользовательской функции разрешения имен](#реализация-пользовательской-функции-разрешения-имен)
+- [Применение схемы](#применение-схемы)
+- [Строгий режим](#строгий-режим)
+- [Область проекции](#область-проекции)
+- [Фабричные функции](#фабричные-функции)
+- [Именованные схемы](#именованные-схемы)
 - [Тесты](#тесты)
 - [Лицензия](#лицензия)
 
@@ -45,7 +36,7 @@ const {projectData} = require('@e22m4u/js-data-projection');
 
 ## Схема проекции
 
-#### Определение правил видимости полей
+Определение правил видимости полей.
 
 ```js
 {
@@ -54,7 +45,7 @@ const {projectData} = require('@e22m4u/js-data-projection');
 }
 ```
 
-#### Определение вложенной схемы
+Определение вложенной схемы.
 
 ```js
 {
@@ -69,7 +60,7 @@ const {projectData} = require('@e22m4u/js-data-projection');
 }
 ```
 
-#### Определение правил для областей проекции
+Определение правил для областей проекции.
 
 ```js
 {
@@ -83,9 +74,9 @@ const {projectData} = require('@e22m4u/js-data-projection');
 }
 ```
 
-## Использование
+## Применение схемы
 
-#### Создание проекции данных с помощью схемы
+Создание проекции данных с помощью схемы.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -109,7 +100,7 @@ console.log(result);
 // }
 ```
 
-#### Применение схемы к массиву объектов
+Применение схемы к массиву объектов.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -132,32 +123,7 @@ console.log(result);
 // ]
 ```
 
-#### Исключение неизвестных полей в строгом режиме
-
-```js
-import {projectData} from '@e22m4u/js-data-projection';
-
-const schema = {
-  name: true,
-  password: false,
-};
-
-const data = {
-  name: 'Fedor',       // будет доступно, явное правило
-  password: 'pass123', // будет исключено, явное правило
-  extra: 10,           // будет исключено в строгом режиме
-};
-
-const result = projectData(schema, data, {
-  strict: true, // <= строгий режим
-});
-console.log(result);
-// {
-//   name: 'Fedor'
-// }
-```
-
-#### Применение вложенных схем для сложных структур
+Применение вложенной схемы для сложной структуры данных.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -193,7 +159,36 @@ console.log(result);
 // }
 ```
 
-#### Создание проекции для определенной области
+## Строгий режим
+
+Исключение полей не указанных в схеме проекции.
+
+```js
+import {projectData} from '@e22m4u/js-data-projection';
+
+const schema = {
+  name: true,
+  password: false,
+};
+
+const data = {
+  name: 'Fedor',       // будет доступно, явное правило
+  password: 'pass123', // будет исключено, явное правило
+  extra: 10,           // будет исключено в строгом режиме
+};
+
+const result = projectData(schema, data, {
+  strict: true, // <= строгий режим
+});
+console.log(result);
+// {
+//   name: 'Fedor'
+// }
+```
+
+## Область проекции
+
+Создание проекции определенной области.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -231,7 +226,9 @@ console.log(outputData);
 // }
 ```
 
-#### Использование фабрики вместо объекта схемы
+## Фабричные функции
+
+Использование фабрики вместо объекта схемы.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -257,7 +254,7 @@ console.log(result);
 // }
 ```
 
-#### Использование фабрики во вложенной схеме
+Использование фабрики во вложенной схеме.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';
@@ -293,7 +290,9 @@ console.log(result);
 // }
 ```
 
-#### Регистрация именованной схемы и создание проекции
+## Именованные схемы
+
+Регистрация и применение именованной схемы.
 
 ```js
 import {DataProjector} from '@e22m4u/js-data-projection';
@@ -325,7 +324,7 @@ console.log(result);
 // }
 ```
 
-#### Использование вложенных именованных схем
+Использование вложенных именованных схем.
 
 ```js
 import {DataProjector} from '@e22m4u/js-data-projection';
@@ -371,7 +370,7 @@ console.log(result);
 // }
 ```
 
-#### Реализация пользовательской функции разрешения имен
+Реализация пользовательской функции разрешения имен.
 
 ```js
 import {projectData} from '@e22m4u/js-data-projection';