e22m4u 2 лет назад
Родитель
Сommit
2647fea202
82 измененных файлов с 40 добавлено и 1 удалено
  1. 33 0
      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. 6 0
      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
  82. 1 1
      src/definition/model/relations/relation-definition.d.ts

+ 33 - 0
README.md

@@ -404,6 +404,39 @@ schema.defineModel({
 });
 ```
 
+Полиморфная версия `belongsTo`
+
+```js
+schema.defineModel({
+  name: 'file',
+  relations: {
+    reference: { // название связи
+      type: RelationType.BELONGS_TO, // текущая модель ссылается на целевую
+      // cогласно названию связи "reference", полиморфный режим позволяет
+      // хранить название целевой модели в свойстве "referenceType",
+      // а идентификатор целевого документа в "referenceId"
+      polymorphic: true,
+    },
+  },
+});
+```
+
+Полиморфная версия `belongsTo` с указанием свойств.
+
+```js
+schema.defineModel({
+  name: 'file',
+  relations: {
+    reference: { // название связи
+      type: RelationType.BELONGS_TO, // текущая модель ссылается на целевую
+      polymorphic: true, // название целевой модели хранит дискриминатор
+      foreignKey: 'referenceId', // свойство для идентификатора цели
+      discriminator: 'referenceType', // свойство для названия целевой модели
+    },
+  },
+})
+```
+
 ## Фильтрация
 
 Некоторые методы репозитория принимают объект настроек влияющий

Разница между файлами не показана из-за своего большого размера
+ 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


+ 6 - 0
docs/index.html

@@ -184,6 +184,12 @@
 <p>Объявление связи <code>referencesMany</code></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;article&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">  </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1">    </span><span class="hl-4">categories:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1">      </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">REFERENCES_MANY</span><span class="hl-1">, </span><span class="hl-5">// связь через массив идентификаторов</span><br/><span class="hl-1">      </span><span class="hl-4">model:</span><span class="hl-1"> </span><span class="hl-2">&#39;category&#39;</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели</span><br/><span class="hl-1">      </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">&#39;categoryIds&#39;</span><span class="hl-1">, </span><span class="hl-5">// свойство для идентификаторов (необязательно)</span><br/><span class="hl-1">    },</span><br/><span class="hl-1">  },</span><br/><span class="hl-1">});</span>
 </code><button>Copy</button></pre>
+<p>Полиморфная версия <code>belongsTo</code></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;file&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">  </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1">    </span><span class="hl-4">reference:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1">      </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">BELONGS_TO</span><span class="hl-1">, </span><span class="hl-5">// текущая модель ссылается на целевую</span><br/><span class="hl-1">      </span><span class="hl-5">// cогласно названию связи &quot;reference&quot;, полиморфный режим позволяет</span><br/><span class="hl-1">      </span><span class="hl-5">// хранить название целевой модели в свойстве &quot;referenceType&quot;,</span><br/><span class="hl-1">      </span><span class="hl-5">// а идентификатор целевого документа в &quot;referenceId&quot;</span><br/><span class="hl-1">      </span><span class="hl-4">polymorphic:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1">,</span><br/><span class="hl-1">    },</span><br/><span class="hl-1">  },</span><br/><span class="hl-1">});</span>
+</code><button>Copy</button></pre>
+<p>Полиморфная версия <code>belongsTo</code> с указанием свойств.</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;file&#39;</span><span class="hl-1">,</span><br/><span class="hl-1">  </span><span class="hl-4">relations:</span><span class="hl-1"> {</span><br/><span class="hl-1">    </span><span class="hl-4">reference:</span><span class="hl-1"> { </span><span class="hl-5">// название связи</span><br/><span class="hl-1">      </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">RelationType</span><span class="hl-1">.</span><span class="hl-7">BELONGS_TO</span><span class="hl-1">, </span><span class="hl-5">// текущая модель ссылается на целевую</span><br/><span class="hl-1">      </span><span class="hl-4">polymorphic:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1">, </span><span class="hl-5">// название целевой модели хранит дискриминатор</span><br/><span class="hl-1">      </span><span class="hl-4">foreignKey:</span><span class="hl-1"> </span><span class="hl-2">&#39;referenceId&#39;</span><span class="hl-1">, </span><span class="hl-5">// свойство для идентификатора цели</span><br/><span class="hl-1">      </span><span class="hl-4">discriminator:</span><span class="hl-1"> </span><span class="hl-2">&#39;referenceType&#39;</span><span class="hl-1">, </span><span class="hl-5">// свойство для названия целевой модели</span><br/><span class="hl-1">    },</span><br/><span class="hl-1">  },</span><br/><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>find</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


+ 1 - 1
src/definition/model/relations/relation-definition.d.ts

@@ -73,7 +73,7 @@ export declare type BelongsToDefinition = {
  *   type: RelationType.BELONGS_TO,
  *   polymorphic: true,
  *   foreignKey: 'referenceId',
- *   discriminator: 'referenceType,
+ *   discriminator: 'referenceType',
  * }
  * ```
  */

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