e22m4u 2 лет назад
Родитель
Сommit
4f1cffb9f4
81 измененных файлов с 51 добавлено и 9 удалено
  1. 34 6
      README.md
  2. 0 0
      docs/classes/Adapter.html
  3. 0 0
      docs/classes/AdapterLoader.html
  4. 0 0
      docs/classes/AdapterRegistry.html
  5. 0 0
      docs/classes/BelongsToResolver.html
  6. 0 0
      docs/classes/DatasourceDefinitionValidator.html
  7. 0 0
      docs/classes/DefinitionRegistry.html
  8. 0 0
      docs/classes/FieldsClauseTool.html
  9. 0 0
      docs/classes/HasManyResolver.html
  10. 0 0
      docs/classes/HasOneResolver.html
  11. 0 0
      docs/classes/IncludeClauseTool.html
  12. 0 0
      docs/classes/InvalidArgumentError.html
  13. 0 0
      docs/classes/InvalidOperatorValueError.html
  14. 0 0
      docs/classes/ModelDataSanitizer.html
  15. 0 0
      docs/classes/ModelDataValidator.html
  16. 0 0
      docs/classes/ModelDefinitionUtils.html
  17. 0 0
      docs/classes/ModelDefinitionValidator.html
  18. 0 0
      docs/classes/NotImplementedError.html
  19. 0 0
      docs/classes/OperatorClauseTool.html
  20. 0 0
      docs/classes/OrderClauseTool.html
  21. 0 0
      docs/classes/PrimaryKeysDefinitionValidator.html
  22. 0 0
      docs/classes/PropertiesDefinitionValidator.html
  23. 0 0
      docs/classes/ReferencesManyResolver.html
  24. 0 0
      docs/classes/RelationsDefinitionValidator.html
  25. 0 0
      docs/classes/Repository.html
  26. 0 0
      docs/classes/RepositoryRegistry.html
  27. 0 0
      docs/classes/Schema.html
  28. 0 0
      docs/classes/SliceClauseTool.html
  29. 0 0
      docs/classes/WhereClauseTool.html
  30. 0 0
      docs/enums/DataType.html
  31. 0 0
      docs/enums/RelationType.html
  32. 0 0
      docs/functions/capitalize.html
  33. 0 0
      docs/functions/cloneDeep.html
  34. 0 0
      docs/functions/excludeObjectKeys.html
  35. 0 0
      docs/functions/getCtorName.html
  36. 0 0
      docs/functions/getValueByPath.html
  37. 0 0
      docs/functions/isCtor.html
  38. 0 0
      docs/functions/isPureObject.html
  39. 0 0
      docs/functions/selectObjectKeys.html
  40. 0 0
      docs/functions/singularize.html
  41. 0 0
      docs/functions/stringToRegexp.html
  42. 17 3
      docs/index.html
  43. 0 0
      docs/interfaces/AndClause.html
  44. 0 0
      docs/interfaces/OrClause.html
  45. 0 0
      docs/types/AnyObject.html
  46. 0 0
      docs/types/BelongsToDefinition.html
  47. 0 0
      docs/types/DEFAULT_PRIMARY_KEY_PROPERTY_NAME.html
  48. 0 0
      docs/types/DatasourceDefinition.html
  49. 0 0
      docs/types/FieldsClause.html
  50. 0 0
      docs/types/FilterClause.html
  51. 0 0
      docs/types/Flatten.html
  52. 0 0
      docs/types/FullPropertyDefinition.html
  53. 0 0
      docs/types/HasManyDefinition.html
  54. 0 0
      docs/types/HasOneDefinition.html
  55. 0 0
      docs/types/Identity.html
  56. 0 0
      docs/types/IncludeClause.html
  57. 0 0
      docs/types/ItemFilterClause.html
  58. 0 0
      docs/types/ModelData.html
  59. 0 0
      docs/types/ModelDefinition.html
  60. 0 0
      docs/types/ModelId.html
  61. 0 0
      docs/types/NestedIncludeClause.html
  62. 0 0
      docs/types/NormalizedFieldsClause.html
  63. 0 0
      docs/types/NormalizedIncludeClause.html
  64. 0 0
      docs/types/OperatorClause.html
  65. 0 0
      docs/types/OptionalUnlessRequiredId.html
  66. 0 0
      docs/types/OrderClause.html
  67. 0 0
      docs/types/PartialBy.html
  68. 0 0
      docs/types/PartialWithoutId.html
  69. 0 0
      docs/types/PolyBelongsToDefinition.html
  70. 0 0
      docs/types/PolyHasManyDefinitionWithTargetKeys.html
  71. 0 0
      docs/types/PolyHasManyDefinitionWithTargetRelationName.html
  72. 0 0
      docs/types/PolyHasOneDefinitionWithTargetKeys.html
  73. 0 0
      docs/types/PolyHasOneDefinitionWithTargetRelationName.html
  74. 0 0
      docs/types/PropertiesClause.html
  75. 0 0
      docs/types/PropertyDefinition.html
  76. 0 0
      docs/types/PropertyDefinitionMap.html
  77. 0 0
      docs/types/ReferencesManyDefinition.html
  78. 0 0
      docs/types/RelationDefinition.html
  79. 0 0
      docs/types/RelationDefinitionMap.html
  80. 0 0
      docs/types/WhereClause.html
  81. 0 0
      docs/types/WithoutId.html

+ 34 - 6
README.md

@@ -82,13 +82,38 @@ console.log(country);
 
 **Пример**
 
+Импорт класса и создание экземпляра.
+
 ```js
-import {Schema} from '@e22m4u/js-repository'
+import {Schema} from '@e22m4u/js-repository';
 
-// создание экземпляра
 const schema = new Schema();
 ```
 
+Определение нового источника.
+
+```js
+schema.defineDatasource({
+  name: 'myMemory', // название нового источника
+  adapter: 'memory', // выбранный адаптер
+});
+```
+
+Определение новой модели.
+
+```js
+schema.defineModel({
+  name: 'product', // название новой модели
+  datasource: 'myMemory', // выбранный источник
+});
+```
+
+Получение репозитория по названию модели.
+
+```js
+const productRep = schema.getRepository('product');
+```
+
 ## Источник данных
 
 Источник хранит название выбранного адаптера и его настройки. Определяется
@@ -161,19 +186,22 @@ schema.defineModel({
 - `where: object` параметры выборки (см. Фильтрация)
 - `filter: object` параметры возвращаемого результата (см. Фильтрация)
 
-**Пример**
+**Примеры**
+
+Получение репозитория по названию модели.
 
 ```js
-// получение репозитория для модели "country"
 const countryRep = schema.getRepository('country');
+```
 
-// добавление нового документа в коллекцию "country"
+Добавление нового документа в коллекцию.
+
+```js
 const country = await countryRep.create({
   name: 'Russia',
   population: 143400000,
 });
 
-// вывод результата
 console.log(country);
 // {
 //   "id": 1,

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/Adapter.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/AdapterLoader.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/AdapterRegistry.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/BelongsToResolver.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/DatasourceDefinitionValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/DefinitionRegistry.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/FieldsClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/HasManyResolver.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/HasOneResolver.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/IncludeClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/InvalidArgumentError.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/InvalidOperatorValueError.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/ModelDataSanitizer.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/ModelDataValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/ModelDefinitionUtils.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/ModelDefinitionValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/NotImplementedError.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/OperatorClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/OrderClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/PrimaryKeysDefinitionValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/PropertiesDefinitionValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/ReferencesManyResolver.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/RelationsDefinitionValidator.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/Repository.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/RepositoryRegistry.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/Schema.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/SliceClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/classes/WhereClauseTool.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/enums/DataType.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/enums/RelationType.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/capitalize.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/cloneDeep.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/excludeObjectKeys.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/getCtorName.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/getValueByPath.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/isCtor.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/isPureObject.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/selectObjectKeys.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/singularize.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/functions/stringToRegexp.html


+ 17 - 3
docs/index.html

@@ -39,7 +39,17 @@
 <li><code>getRepository(modelName: string): Repository</code> - получить репозиторий</li>
 </ul>
 <p><strong>Пример</strong></p>
-<pre><code class="language-js"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">Schema</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;@e22m4u/js-repository&#39;</span><br/><br/><span class="hl-5">// создание экземпляра</span><br/><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">schema</span><span class="hl-1"> = </span><span class="hl-6">new</span><span class="hl-1"> </span><span class="hl-0">Schema</span><span class="hl-1">();</span>
+<p>Импорт класса и создание экземпляра.</p>
+<pre><code class="language-js"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">Schema</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;@e22m4u/js-repository&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">schema</span><span class="hl-1"> = </span><span class="hl-6">new</span><span class="hl-1"> </span><span class="hl-0">Schema</span><span class="hl-1">();</span>
+</code><button>Copy</button></pre>
+<p>Определение нового источника.</p>
+<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineDatasource</span><span class="hl-1">({</span><br/><span class="hl-1">  </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;myMemory&#39;</span><span class="hl-1">, </span><span class="hl-5">// название нового источника</span><br/><span class="hl-1">  </span><span class="hl-4">adapter:</span><span class="hl-1"> </span><span class="hl-2">&#39;memory&#39;</span><span class="hl-1">, </span><span class="hl-5">// выбранный адаптер</span><br/><span class="hl-1">});</span>
+</code><button>Copy</button></pre>
+<p>Определение новой модели.</p>
+<pre><code class="language-js"><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">defineModel</span><span class="hl-1">({</span><br/><span class="hl-1">  </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;product&#39;</span><span class="hl-1">, </span><span class="hl-5">// название новой модели</span><br/><span class="hl-1">  </span><span class="hl-4">datasource:</span><span class="hl-1"> </span><span class="hl-2">&#39;myMemory&#39;</span><span class="hl-1">, </span><span class="hl-5">// выбранный источник</span><br/><span class="hl-1">});</span>
+</code><button>Copy</button></pre>
+<p>Получение репозитория по названию модели.</p>
+<pre><code class="language-js"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">productRep</span><span class="hl-1"> = </span><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">getRepository</span><span class="hl-1">(</span><span class="hl-2">&#39;product&#39;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
 <a id="md:источник-данных" class="tsd-anchor"></a><h2><a href="#md:источник-данных">Источник данных</a></h2><p>Источник хранит название выбранного адаптера и его настройки. Определяется
 методом <code>defineDatasource</code> экземпляра схемы.</p>
@@ -89,8 +99,12 @@
 <li><code>where: object</code> параметры выборки (см. Фильтрация)</li>
 <li><code>filter: object</code> параметры возвращаемого результата (см. Фильтрация)</li>
 </ul>
-<p><strong>Пример</strong></p>
-<pre><code class="language-js"><span class="hl-5">// получение репозитория для модели &quot;country&quot;</span><br/><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">countryRep</span><span class="hl-1"> = </span><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">getRepository</span><span class="hl-1">(</span><span class="hl-2">&#39;country&#39;</span><span class="hl-1">);</span><br/><br/><span class="hl-5">// добавление нового документа в коллекцию &quot;country&quot;</span><br/><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">country</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">countryRep</span><span class="hl-1">.</span><span class="hl-0">create</span><span class="hl-1">({</span><br/><span class="hl-1">  </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;Russia&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">  </span><span class="hl-4">population:</span><span class="hl-1"> </span><span class="hl-8">143400000</span><span class="hl-1">,</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-5">// вывод результата</span><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">country</span><span class="hl-1">);</span><br/><span class="hl-5">// {</span><br/><span class="hl-5">//   &quot;id&quot;: 1,</span><br/><span class="hl-5">//   &quot;name&quot;: &quot;Russia&quot;,</span><br/><span class="hl-5">//   &quot;population&quot;: 143400000,</span><br/><span class="hl-5">// }</span>
+<p><strong>Примеры</strong></p>
+<p>Получение репозитория по названию модели.</p>
+<pre><code class="language-js"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">countryRep</span><span class="hl-1"> = </span><span class="hl-4">schema</span><span class="hl-1">.</span><span class="hl-0">getRepository</span><span class="hl-1">(</span><span class="hl-2">&#39;country&#39;</span><span class="hl-1">);</span>
+</code><button>Copy</button></pre>
+<p>Добавление нового документа в коллекцию.</p>
+<pre><code class="language-js"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">country</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">countryRep</span><span class="hl-1">.</span><span class="hl-0">create</span><span class="hl-1">({</span><br/><span class="hl-1">  </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;Russia&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">  </span><span class="hl-4">population:</span><span class="hl-1"> </span><span class="hl-8">143400000</span><span class="hl-1">,</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">country</span><span class="hl-1">);</span><br/><span class="hl-5">// {</span><br/><span class="hl-5">//   &quot;id&quot;: 1,</span><br/><span class="hl-5">//   &quot;name&quot;: &quot;Russia&quot;,</span><br/><span class="hl-5">//   &quot;population&quot;: 143400000,</span><br/><span class="hl-5">// }</span>
 </code><button>Copy</button></pre>
 <a id="md:свойства" class="tsd-anchor"></a><h2><a href="#md:свойства">Свойства</a></h2><p>Параметр <code>properties</code> находится в составе определения модели и принимает
 объект, ключи которого являются полями документа, а значением тип поля

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/interfaces/AndClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/interfaces/OrClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/AnyObject.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/BelongsToDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/DEFAULT_PRIMARY_KEY_PROPERTY_NAME.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/DatasourceDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/FieldsClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/FilterClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/Flatten.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/FullPropertyDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/HasManyDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/HasOneDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/Identity.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/IncludeClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/ItemFilterClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/ModelData.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/ModelDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/ModelId.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/NestedIncludeClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/NormalizedFieldsClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/NormalizedIncludeClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/OperatorClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/OptionalUnlessRequiredId.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/OrderClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PartialBy.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PartialWithoutId.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PolyBelongsToDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PolyHasManyDefinitionWithTargetKeys.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PolyHasManyDefinitionWithTargetRelationName.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PolyHasOneDefinitionWithTargetKeys.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PolyHasOneDefinitionWithTargetRelationName.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PropertiesClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PropertyDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/PropertyDefinitionMap.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/ReferencesManyDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/RelationDefinition.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/RelationDefinitionMap.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/WhereClause.html


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
docs/types/WithoutId.html


Некоторые файлы не были показаны из-за большого количества измененных файлов