e22m4u 4 дней назад
Родитель
Сommit
91a2fd2368
1 измененных файлов с 5 добавлено и 59 удалено
  1. 5 59
      README.md

+ 5 - 59
README.md

@@ -16,9 +16,7 @@ JavaScript модуль для работы с проекцией данных.
   - [Вложенные схемы](#вложенные-схемы)
   - [Область проекции](#область-проекции)
   - [Фабричные функции](#фабричные-функции)
-  - [Регистрация именованных схем](#регистрация-именованных-схем)
-  - [Применение именованных схем](#применение-именованных-схем)
-  - [Ручное разрешение имен](#ручное-разрешение-имен)
+  - [Именованные схемы](#именованные-схемы)
 - [Функция `projectData`](#функция-projectdata)
 - [Класс `DataProjector`](#класс-dataprojector)
   - [Метод `defineSchema`](#метод-defineschema)
@@ -288,7 +286,7 @@ console.log(result);
 // }
 ```
 
-#### Регистрация именованных схем
+#### Именованные схемы
 
 Класс `DataProjector` позволяет сохранять схемы во внутреннем реестре
 для их последующего использования по имени. Это удобно для переиспользования
@@ -299,56 +297,6 @@ import {DataProjector} from '@e22m4u/js-data-projection';
 
 const projector = new DataProjector();
 
-projector.defineSchema({
-  name: 'user',
-  schema: {
-    id: true,
-    name: true,
-    password: false,
-  },
-});
-```
-
-Зарегистрированные схемы могут ссылаться друг на друга, что позволяет
-компоновать сложные схемы из более простых. В примере ниже схема `user`
-использует схему `address` как вложенную.
-
-```js
-import {DataProjector} from '@e22m4u/js-data-projection';
-
-const projector = new DataProjector();
-
-projector.defineSchema({
-  name: 'address',
-  schema: {
-    city: true,
-    zip: false,
-  },
-});
-
-projector.defineSchema({
-  name: 'user',
-  schema: {
-    name: true,
-    address: {
-      select: true,      // видимость поля address
-      schema: 'address', // <= вложенная схема
-    },
-  },
-});
-```
-
-#### Применение именованных схем
-
-В данном примере вместо передачи объекта схемы используется предварительно
-зарегистрированное имя `publicUser`. Проектор находит соответствующее
-определение в своем реестре и применяет его к исходным данным.
-
-```js
-import {DataProjector} from '@e22m4u/js-data-projection';
-
-const projector = new DataProjector();
-
 projector.defineSchema({
   name: 'publicUser',
   schema: {
@@ -373,9 +321,9 @@ console.log(result);
 // }
 ```
 
-Проектор автоматически разрешает зависимости между схемами. Если в схеме
-указана ссылка на другую именованную схему, проектор найдет её в реестре
 применит к вложенным данным.
+Зарегистрированные схемы могут ссылаться друг на друга, что позволяет
+компоновать сложные схемы из более простых. В примере ниже схема `user`
спользует схему `address` как вложенную.
 
 ```js
 import {DataProjector} from '@e22m4u/js-data-projection';
@@ -419,8 +367,6 @@ console.log(result);
 // }
 ```
 
-#### Ручное разрешение имен
-
 Для ручного разрешения имен используется опция `resolver` функции `projectData`.
 В опцию передается функция, которая принимает имя схемы и должна вернуть
 соответствующий ей объект схемы.