|
|
@@ -1,6 +1,6 @@
|
|
|
-## @e22m4u/js-data-projection
|
|
|
+## @e22m4u/js-data-projector
|
|
|
|
|
|
-JavaScript модуль для работы с проекцией данных.
|
|
|
+JavaScript модуль для создания проекций данных на основе декларативных схем.
|
|
|
|
|
|
## Содержание
|
|
|
|
|
|
@@ -18,7 +18,7 @@ JavaScript модуль для работы с проекцией данных.
|
|
|
## Установка
|
|
|
|
|
|
```bash
|
|
|
-npm install @e22m4u/js-data-projection
|
|
|
+npm install @e22m4u/js-data-projector
|
|
|
```
|
|
|
|
|
|
Модуль поддерживает ESM и CommonJS стандарты.
|
|
|
@@ -26,13 +26,13 @@ npm install @e22m4u/js-data-projection
|
|
|
*ESM*
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
```
|
|
|
|
|
|
*CommonJS*
|
|
|
|
|
|
```js
|
|
|
-const {projectData} = require('@e22m4u/js-data-projection');
|
|
|
+const {projectData} = require('@e22m4u/js-data-projector');
|
|
|
```
|
|
|
|
|
|
## Схема проекции
|
|
|
@@ -96,7 +96,7 @@ const {projectData} = require('@e22m4u/js-data-projection');
|
|
|
Создание проекции данных с помощью схемы.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const schema = {
|
|
|
name: true,
|
|
|
@@ -120,7 +120,7 @@ console.log(result);
|
|
|
Применение схемы к массиву объектов.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const schema = {
|
|
|
id: true,
|
|
|
@@ -143,7 +143,7 @@ console.log(result);
|
|
|
Применение вложенной схемы для сложной структуры данных.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const schema = {
|
|
|
id: false,
|
|
|
@@ -181,7 +181,7 @@ console.log(result);
|
|
|
Исключение полей не указанных в схеме проекции.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const schema = {
|
|
|
name: true,
|
|
|
@@ -208,7 +208,7 @@ console.log(result);
|
|
|
Создание проекции определенной области.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const schema = {
|
|
|
name: true,
|
|
|
@@ -246,7 +246,7 @@ console.log(outputData);
|
|
|
Использование сокращенных методов для работы с областями.
|
|
|
|
|
|
```js
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const projector = new DataProjector();
|
|
|
|
|
|
@@ -289,7 +289,7 @@ console.log(output);
|
|
|
Использование фабрики вместо объекта схемы.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
// фабрика возвращает объект схемы
|
|
|
const getSchema = () => {
|
|
|
@@ -315,7 +315,7 @@ console.log(result);
|
|
|
Использование фабрики во вложенной схеме.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
// фабрика для вложенных данных
|
|
|
const getAddressSchema = () => {
|
|
|
@@ -353,7 +353,7 @@ console.log(result);
|
|
|
Установка аргументов вызова фабричных функций.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
// объект будет передан в параметры фабрики
|
|
|
const logger = {
|
|
|
@@ -385,7 +385,7 @@ console.log(result);
|
|
|
|
|
|
```js
|
|
|
import {ServiceContainer} from '@e22m4u/js-service';
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
// сервис-контейнер доступен только
|
|
|
// при использовании DataProjector
|
|
|
@@ -415,7 +415,7 @@ console.log(result);
|
|
|
Регистрация и применение именованной схемы.
|
|
|
|
|
|
```js
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const projector = new DataProjector();
|
|
|
|
|
|
@@ -447,7 +447,7 @@ console.log(result);
|
|
|
Использование вложенных именованных схем.
|
|
|
|
|
|
```js
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const projector = new DataProjector();
|
|
|
|
|
|
@@ -493,7 +493,7 @@ console.log(result);
|
|
|
Регистрация псевдонима именованной схемы.
|
|
|
|
|
|
```js
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const projector = new DataProjector();
|
|
|
|
|
|
@@ -531,7 +531,7 @@ console.log(result);
|
|
|
Использование фабрики при регистрации именованной схемы.
|
|
|
|
|
|
```js
|
|
|
-import {DataProjector} from '@e22m4u/js-data-projection';
|
|
|
+import {DataProjector} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
const projector = new DataProjector();
|
|
|
|
|
|
@@ -567,7 +567,7 @@ console.log(result);
|
|
|
Реализация пользовательской функции разрешения имен.
|
|
|
|
|
|
```js
|
|
|
-import {projectData} from '@e22m4u/js-data-projection';
|
|
|
+import {projectData} from '@e22m4u/js-data-projector';
|
|
|
|
|
|
// функция разрешения имен
|
|
|
const nameResolver = name => {
|