@loopback/repository 4.1.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/LICENSE +1 -1
  2. package/dist/connectors/connector.js +1 -1
  3. package/dist/connectors/connector.js.map +1 -1
  4. package/dist/connectors/crud.connector.js +1 -1
  5. package/dist/connectors/crud.connector.js.map +1 -1
  6. package/dist/connectors/index.js +4 -4
  7. package/dist/connectors/index.js.map +1 -1
  8. package/dist/connectors/kv.connector.js +1 -1
  9. package/dist/connectors/kv.connector.js.map +1 -1
  10. package/dist/datasource.js +1 -1
  11. package/dist/datasource.js.map +1 -1
  12. package/dist/decorators/index.js +4 -4
  13. package/dist/decorators/index.js.map +1 -1
  14. package/dist/decorators/metadata.js +1 -1
  15. package/dist/decorators/metadata.js.map +1 -1
  16. package/dist/decorators/model.decorator.js +1 -1
  17. package/dist/decorators/model.decorator.js.map +1 -1
  18. package/dist/decorators/repository.decorator.js +2 -2
  19. package/dist/decorators/repository.decorator.js.map +1 -1
  20. package/dist/define-model-class.js +2 -2
  21. package/dist/define-model-class.js.map +1 -1
  22. package/dist/define-repository-class.js +2 -2
  23. package/dist/define-repository-class.js.map +1 -1
  24. package/dist/errors/entity-not-found.error.js +1 -1
  25. package/dist/errors/entity-not-found.error.js.map +1 -1
  26. package/dist/errors/index.d.ts +1 -0
  27. package/dist/errors/index.js +4 -3
  28. package/dist/errors/index.js.map +1 -1
  29. package/dist/errors/invalid-polymorphism.error.d.ts +5 -0
  30. package/dist/errors/invalid-polymorphism.error.js +22 -0
  31. package/dist/errors/invalid-polymorphism.error.js.map +1 -0
  32. package/dist/errors/invalid-relation.error.d.ts +1 -1
  33. package/dist/errors/invalid-relation.error.js +1 -1
  34. package/dist/errors/invalid-relation.error.js.map +1 -1
  35. package/dist/index.js +17 -17
  36. package/dist/index.js.map +1 -1
  37. package/dist/mixins/index.js +2 -2
  38. package/dist/mixins/index.js.map +1 -1
  39. package/dist/mixins/repository.mixin.d.ts +49 -50
  40. package/dist/mixins/repository.mixin.js +2 -2
  41. package/dist/mixins/repository.mixin.js.map +1 -1
  42. package/dist/model.d.ts +7 -1
  43. package/dist/model.js +15 -1
  44. package/dist/model.js.map +1 -1
  45. package/dist/relations/belongs-to/belongs-to.accessor.d.ts +6 -2
  46. package/dist/relations/belongs-to/belongs-to.accessor.js +20 -7
  47. package/dist/relations/belongs-to/belongs-to.accessor.js.map +1 -1
  48. package/dist/relations/belongs-to/belongs-to.decorator.js +1 -1
  49. package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
  50. package/dist/relations/belongs-to/belongs-to.helpers.d.ts +3 -0
  51. package/dist/relations/belongs-to/belongs-to.helpers.js +34 -10
  52. package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
  53. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +5 -2
  54. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +82 -9
  55. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
  56. package/dist/relations/belongs-to/belongs-to.repository.d.ts +28 -5
  57. package/dist/relations/belongs-to/belongs-to.repository.js +50 -11
  58. package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
  59. package/dist/relations/belongs-to/index.d.ts +2 -2
  60. package/dist/relations/belongs-to/index.js +5 -5
  61. package/dist/relations/belongs-to/index.js.map +1 -1
  62. package/dist/relations/has-many/has-many-through.helpers.d.ts +3 -0
  63. package/dist/relations/has-many/has-many-through.helpers.js +27 -3
  64. package/dist/relations/has-many/has-many-through.helpers.js.map +1 -1
  65. package/dist/relations/has-many/has-many-through.inclusion-resolver.d.ts +3 -1
  66. package/dist/relations/has-many/has-many-through.inclusion-resolver.js +94 -23
  67. package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -1
  68. package/dist/relations/has-many/has-many-through.repository-factory.d.ts +3 -1
  69. package/dist/relations/has-many/has-many-through.repository-factory.js +8 -2
  70. package/dist/relations/has-many/has-many-through.repository-factory.js.map +1 -1
  71. package/dist/relations/has-many/has-many-through.repository.d.ts +66 -11
  72. package/dist/relations/has-many/has-many-through.repository.js +212 -36
  73. package/dist/relations/has-many/has-many-through.repository.js.map +1 -1
  74. package/dist/relations/has-many/has-many.decorator.js +1 -1
  75. package/dist/relations/has-many/has-many.decorator.js.map +1 -1
  76. package/dist/relations/has-many/has-many.helpers.js +2 -2
  77. package/dist/relations/has-many/has-many.helpers.js.map +1 -1
  78. package/dist/relations/has-many/has-many.inclusion-resolver.js +2 -2
  79. package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
  80. package/dist/relations/has-many/has-many.repository-factory.js +2 -2
  81. package/dist/relations/has-many/has-many.repository-factory.js.map +1 -1
  82. package/dist/relations/has-many/has-many.repository.js +1 -1
  83. package/dist/relations/has-many/has-many.repository.js.map +1 -1
  84. package/dist/relations/has-many/index.d.ts +2 -2
  85. package/dist/relations/has-many/index.js +7 -7
  86. package/dist/relations/has-many/index.js.map +1 -1
  87. package/dist/relations/has-one/has-one.decorator.js +1 -1
  88. package/dist/relations/has-one/has-one.decorator.js.map +1 -1
  89. package/dist/relations/has-one/has-one.helpers.d.ts +3 -0
  90. package/dist/relations/has-one/has-one.helpers.js +36 -10
  91. package/dist/relations/has-one/has-one.helpers.js.map +1 -1
  92. package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +6 -3
  93. package/dist/relations/has-one/has-one.inclusion-resolver.js +83 -8
  94. package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
  95. package/dist/relations/has-one/has-one.repository-factory.d.ts +9 -3
  96. package/dist/relations/has-one/has-one.repository-factory.js +15 -5
  97. package/dist/relations/has-one/has-one.repository-factory.js.map +1 -1
  98. package/dist/relations/has-one/has-one.repository.d.ts +58 -11
  99. package/dist/relations/has-one/has-one.repository.js +119 -16
  100. package/dist/relations/has-one/has-one.repository.js.map +1 -1
  101. package/dist/relations/has-one/index.js +4 -4
  102. package/dist/relations/has-one/index.js.map +1 -1
  103. package/dist/relations/index.d.ts +2 -0
  104. package/dist/relations/index.js +9 -7
  105. package/dist/relations/index.js.map +1 -1
  106. package/dist/relations/references-many/index.d.ts +4 -0
  107. package/dist/relations/references-many/index.js +12 -0
  108. package/dist/relations/references-many/index.js.map +1 -0
  109. package/dist/relations/references-many/references-many.accessor.d.ts +17 -0
  110. package/dist/relations/references-many/references-many.accessor.js +40 -0
  111. package/dist/relations/references-many/references-many.accessor.js.map +1 -0
  112. package/dist/relations/references-many/references-many.decorator.d.ts +11 -0
  113. package/dist/relations/references-many/references-many.decorator.js +73 -0
  114. package/dist/relations/references-many/references-many.decorator.js.map +1 -0
  115. package/dist/relations/references-many/references-many.helpers.d.ts +17 -0
  116. package/dist/relations/references-many/references-many.helpers.js +63 -0
  117. package/dist/relations/references-many/references-many.helpers.js.map +1 -0
  118. package/dist/relations/references-many/references-many.inclusion-resolver.d.ts +14 -0
  119. package/dist/relations/references-many/references-many.inclusion-resolver.js +42 -0
  120. package/dist/relations/references-many/references-many.inclusion-resolver.js.map +1 -0
  121. package/dist/relations/references-many/references-many.repository.d.ts +28 -0
  122. package/dist/relations/references-many/references-many.repository.js +33 -0
  123. package/dist/relations/references-many/references-many.repository.js.map +1 -0
  124. package/dist/relations/relation.decorator.d.ts +0 -6
  125. package/dist/relations/relation.decorator.js +2 -14
  126. package/dist/relations/relation.decorator.js.map +1 -1
  127. package/dist/relations/relation.filter.solver.d.ts +2 -0
  128. package/dist/relations/relation.filter.solver.js +57 -0
  129. package/dist/relations/relation.filter.solver.js.map +1 -0
  130. package/dist/relations/relation.helpers.js +20 -5
  131. package/dist/relations/relation.helpers.js.map +1 -1
  132. package/dist/relations/relation.types.d.ts +52 -1
  133. package/dist/relations/relation.types.js +1 -1
  134. package/dist/relations/relation.types.js.map +1 -1
  135. package/dist/repositories/constraint-utils.js +1 -1
  136. package/dist/repositories/constraint-utils.js.map +1 -1
  137. package/dist/repositories/index.d.ts +2 -2
  138. package/dist/repositories/index.js +6 -6
  139. package/dist/repositories/index.js.map +1 -1
  140. package/dist/repositories/kv.repository.bridge.js +1 -1
  141. package/dist/repositories/kv.repository.bridge.js.map +1 -1
  142. package/dist/repositories/kv.repository.d.ts +2 -2
  143. package/dist/repositories/kv.repository.js +1 -1
  144. package/dist/repositories/kv.repository.js.map +1 -1
  145. package/dist/repositories/legacy-juggler-bridge.d.ts +35 -8
  146. package/dist/repositories/legacy-juggler-bridge.js +39 -17
  147. package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
  148. package/dist/repositories/repository.js +1 -1
  149. package/dist/repositories/repository.js.map +1 -1
  150. package/dist/type-resolver.js +1 -1
  151. package/dist/type-resolver.js.map +1 -1
  152. package/dist/types/any.js +1 -1
  153. package/dist/types/any.js.map +1 -1
  154. package/dist/types/array.js +2 -2
  155. package/dist/types/array.js.map +1 -1
  156. package/dist/types/boolean.js +1 -1
  157. package/dist/types/boolean.js.map +1 -1
  158. package/dist/types/buffer.js +2 -2
  159. package/dist/types/buffer.js.map +1 -1
  160. package/dist/types/date.js +2 -2
  161. package/dist/types/date.js.map +1 -1
  162. package/dist/types/index.js +1 -1
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/model.js +1 -1
  165. package/dist/types/model.js.map +1 -1
  166. package/dist/types/null.js +1 -1
  167. package/dist/types/null.js.map +1 -1
  168. package/dist/types/number.js +2 -2
  169. package/dist/types/number.js.map +1 -1
  170. package/dist/types/object.js +2 -2
  171. package/dist/types/object.js.map +1 -1
  172. package/dist/types/string.js +1 -1
  173. package/dist/types/string.js.map +1 -1
  174. package/dist/types/type.js +1 -1
  175. package/dist/types/type.js.map +1 -1
  176. package/dist/types/union.js +2 -2
  177. package/dist/types/union.js.map +1 -1
  178. package/package.json +17 -17
  179. package/src/connectors/connector.ts +1 -1
  180. package/src/connectors/crud.connector.ts +1 -1
  181. package/src/connectors/index.ts +1 -1
  182. package/src/connectors/kv.connector.ts +1 -1
  183. package/src/datasource.ts +1 -1
  184. package/src/decorators/index.ts +1 -1
  185. package/src/decorators/metadata.ts +1 -1
  186. package/src/decorators/model.decorator.ts +1 -1
  187. package/src/decorators/repository.decorator.ts +1 -1
  188. package/src/define-model-class.ts +1 -1
  189. package/src/define-repository-class.ts +1 -1
  190. package/src/errors/entity-not-found.error.ts +1 -1
  191. package/src/errors/index.ts +2 -1
  192. package/src/errors/invalid-polymorphism.error.ts +28 -0
  193. package/src/errors/invalid-relation.error.ts +2 -2
  194. package/src/index.ts +1 -1
  195. package/src/mixins/index.ts +1 -1
  196. package/src/mixins/repository.mixin.ts +1 -6
  197. package/src/model.ts +20 -1
  198. package/src/relations/belongs-to/belongs-to.accessor.ts +36 -7
  199. package/src/relations/belongs-to/belongs-to.decorator.ts +2 -2
  200. package/src/relations/belongs-to/belongs-to.helpers.ts +37 -10
  201. package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +109 -18
  202. package/src/relations/belongs-to/belongs-to.repository.ts +78 -18
  203. package/src/relations/belongs-to/index.ts +3 -3
  204. package/src/relations/has-many/has-many-through.helpers.ts +28 -2
  205. package/src/relations/has-many/has-many-through.inclusion-resolver.ts +118 -27
  206. package/src/relations/has-many/has-many-through.repository-factory.ts +22 -4
  207. package/src/relations/has-many/has-many-through.repository.ts +344 -77
  208. package/src/relations/has-many/has-many.decorator.ts +1 -1
  209. package/src/relations/has-many/has-many.helpers.ts +1 -1
  210. package/src/relations/has-many/has-many.inclusion-resolver.ts +1 -1
  211. package/src/relations/has-many/has-many.repository-factory.ts +1 -1
  212. package/src/relations/has-many/has-many.repository.ts +1 -1
  213. package/src/relations/has-many/index.ts +3 -3
  214. package/src/relations/has-one/has-one.decorator.ts +1 -1
  215. package/src/relations/has-one/has-one.helpers.ts +41 -14
  216. package/src/relations/has-one/has-one.inclusion-resolver.ts +110 -16
  217. package/src/relations/has-one/has-one.repository-factory.ts +35 -7
  218. package/src/relations/has-one/has-one.repository.ts +189 -36
  219. package/src/relations/has-one/index.ts +1 -1
  220. package/src/relations/index.ts +3 -1
  221. package/src/relations/references-many/index.ts +9 -0
  222. package/src/relations/references-many/references-many.accessor.ts +76 -0
  223. package/src/relations/references-many/references-many.decorator.ts +100 -0
  224. package/src/relations/references-many/references-many.helpers.ts +82 -0
  225. package/src/relations/references-many/references-many.inclusion-resolver.ts +80 -0
  226. package/src/relations/references-many/references-many.repository.ts +55 -0
  227. package/src/relations/relation.decorator.ts +1 -13
  228. package/src/relations/relation.filter.solver.ts +56 -0
  229. package/src/relations/relation.helpers.ts +17 -2
  230. package/src/relations/relation.types.ts +52 -1
  231. package/src/repositories/constraint-utils.ts +1 -1
  232. package/src/repositories/index.ts +3 -3
  233. package/src/repositories/kv.repository.bridge.ts +1 -1
  234. package/src/repositories/kv.repository.ts +3 -3
  235. package/src/repositories/legacy-juggler-bridge.ts +79 -15
  236. package/src/repositories/repository.ts +1 -1
  237. package/src/type-resolver.ts +1 -1
  238. package/src/types/any.ts +1 -1
  239. package/src/types/array.ts +1 -1
  240. package/src/types/boolean.ts +1 -1
  241. package/src/types/buffer.ts +1 -1
  242. package/src/types/date.ts +1 -1
  243. package/src/types/index.ts +1 -1
  244. package/src/types/model.ts +1 -1
  245. package/src/types/null.ts +1 -1
  246. package/src/types/number.ts +1 -1
  247. package/src/types/object.ts +1 -1
  248. package/src/types/string.ts +1 -1
  249. package/src/types/type.ts +1 -1
  250. package/src/types/union.ts +1 -1
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.DefaultHasManyThroughRepository = void 0;
8
+ const lodash_1 = require("lodash");
8
9
  const __1 = require("../..");
9
10
  /**
10
11
  * a class for CRUD operations for hasManyThrough relation.
@@ -14,7 +15,7 @@ const __1 = require("../..");
14
15
  * released.
15
16
  */
16
17
  class DefaultHasManyThroughRepository {
17
- constructor(getTargetRepository, getThroughRepository, getTargetConstraintFromThroughModels, getTargetKeys, getThroughConstraintFromSource, getTargetIds, getThroughConstraintFromTarget) {
18
+ constructor(getTargetRepository, getThroughRepository, getTargetConstraintFromThroughModels, getTargetKeys, getThroughConstraintFromSource, getTargetIds, getThroughConstraintFromTarget, targetResolver, throughResolver) {
18
19
  this.getTargetRepository = getTargetRepository;
19
20
  this.getThroughRepository = getThroughRepository;
20
21
  this.getTargetConstraintFromThroughModels = getTargetConstraintFromThroughModels;
@@ -22,57 +23,232 @@ class DefaultHasManyThroughRepository {
22
23
  this.getThroughConstraintFromSource = getThroughConstraintFromSource;
23
24
  this.getTargetIds = getTargetIds;
24
25
  this.getThroughConstraintFromTarget = getThroughConstraintFromTarget;
26
+ this.targetResolver = targetResolver;
27
+ this.throughResolver = throughResolver;
28
+ if (typeof getTargetRepository === 'function') {
29
+ this.getTargetRepositoryDict = {
30
+ [targetResolver().name]: getTargetRepository,
31
+ };
32
+ }
33
+ else {
34
+ this.getTargetRepositoryDict = getTargetRepository;
35
+ }
25
36
  }
26
37
  async create(targetModelData, options) {
27
- const targetRepository = await this.getTargetRepository();
38
+ let targetPolymorphicTypeName = options === null || options === void 0 ? void 0 : options.polymorphicType;
39
+ if (targetPolymorphicTypeName) {
40
+ if (!this.getTargetRepositoryDict[targetPolymorphicTypeName]) {
41
+ throw new __1.InvalidPolymorphismError(targetPolymorphicTypeName);
42
+ }
43
+ }
44
+ else {
45
+ if (Object.keys(this.getTargetRepositoryDict).length > 1) {
46
+ console.warn('It is highly recommended to specify the polymorphicTypes param when using polymorphic types.');
47
+ }
48
+ targetPolymorphicTypeName = this.targetResolver().name;
49
+ if (!this.getTargetRepositoryDict[targetPolymorphicTypeName]) {
50
+ throw new __1.InvalidPolymorphismError(targetPolymorphicTypeName);
51
+ }
52
+ }
53
+ const targetRepository = await this.getTargetRepositoryDict[targetPolymorphicTypeName]();
28
54
  const targetInstance = await targetRepository.create(targetModelData, options);
29
55
  await this.link(targetInstance.getId(), options);
30
56
  return targetInstance;
31
57
  }
32
58
  async find(filter, options) {
33
- const targetRepository = await this.getTargetRepository();
34
- const throughRepository = await this.getThroughRepository();
59
+ var _a;
60
+ const targetDiscriminatorOnThrough = (_a = options === null || options === void 0 ? void 0 : options.throughOptions) === null || _a === void 0 ? void 0 : _a.discriminator;
61
+ let targetPolymorphicTypes = options === null || options === void 0 ? void 0 : options.polymorphicType;
62
+ let allKeys;
63
+ if (Object.keys(this.getTargetRepositoryDict).length <= 1) {
64
+ allKeys = Object.keys(this.getTargetRepositoryDict);
65
+ }
66
+ else {
67
+ if (!targetDiscriminatorOnThrough) {
68
+ console.warn('It is highly recommended to specify the targetDiscriminatorOnThrough param when using polymorphic types.');
69
+ }
70
+ if (!targetPolymorphicTypes || targetPolymorphicTypes.length === 0) {
71
+ console.warn('It is highly recommended to specify the polymorphicTypes param when using polymorphic types.');
72
+ allKeys = Object.keys(this.getTargetRepositoryDict);
73
+ }
74
+ else {
75
+ if (typeof targetPolymorphicTypes === 'string') {
76
+ targetPolymorphicTypes = [targetPolymorphicTypes];
77
+ }
78
+ allKeys = [];
79
+ new Set(targetPolymorphicTypes).forEach(element => {
80
+ if (Object.keys(this.getTargetRepositoryDict).includes(element)) {
81
+ allKeys.push(element);
82
+ }
83
+ });
84
+ }
85
+ }
35
86
  const sourceConstraint = this.getThroughConstraintFromSource();
36
- const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
37
- const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
38
- return targetRepository.find((0, __1.constrainFilter)(filter, targetConstraint), options);
39
- }
40
- async delete(where, options) {
41
- const targetRepository = await this.getTargetRepository();
87
+ const throughCategorized = {};
42
88
  const throughRepository = await this.getThroughRepository();
43
- const sourceConstraint = this.getThroughConstraintFromSource();
44
- const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
45
- if (where) {
46
- // only delete related through models
47
- // TODO(Agnes): this performance can be improved by only fetching related data
48
- // TODO: add target ids to the `where` constraint
49
- const targets = await targetRepository.find({ where });
50
- const targetIds = this.getTargetIds(targets);
51
- if (targetIds.length > 0) {
52
- const targetConstraint = this.getThroughConstraintFromTarget(targetIds);
53
- const constraints = { ...targetConstraint, ...sourceConstraint };
54
- await throughRepository.deleteAll((0, __1.constrainDataObject)({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
89
+ (await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions)).forEach(element => {
90
+ let concreteTargetType;
91
+ if (!targetDiscriminatorOnThrough) {
92
+ concreteTargetType = this.targetResolver().name;
55
93
  }
94
+ else {
95
+ concreteTargetType = String(element[targetDiscriminatorOnThrough]);
96
+ }
97
+ if (!allKeys.includes(concreteTargetType)) {
98
+ return;
99
+ }
100
+ if (!this.getTargetRepositoryDict[concreteTargetType]) {
101
+ throw new __1.InvalidPolymorphismError(concreteTargetType, targetDiscriminatorOnThrough);
102
+ }
103
+ if (!throughCategorized[concreteTargetType]) {
104
+ throughCategorized[concreteTargetType] = [];
105
+ }
106
+ throughCategorized[concreteTargetType].push(element);
107
+ });
108
+ let allTargets = [];
109
+ for (const key of Object.keys(throughCategorized)) {
110
+ const targetRepository = await this.getTargetRepositoryDict[key]();
111
+ const targetConstraint = this.getTargetConstraintFromThroughModels(throughCategorized[key]);
112
+ allTargets = allTargets.concat(await targetRepository.find((0, __1.constrainFilter)(filter, targetConstraint), Object.assign((0, lodash_1.cloneDeep)(options !== null && options !== void 0 ? options : {}), { polymorphicType: key })));
113
+ }
114
+ return allTargets;
115
+ }
116
+ async delete(where, options) {
117
+ var _a, _b, _c;
118
+ const targetDiscriminatorOnThrough = (_a = options === null || options === void 0 ? void 0 : options.throughOptions) === null || _a === void 0 ? void 0 : _a.discriminator;
119
+ let targetPolymorphicTypes = options === null || options === void 0 ? void 0 : options.polymorphicType;
120
+ let allKeys;
121
+ if (Object.keys(this.getTargetRepositoryDict).length <= 1) {
122
+ allKeys = Object.keys(this.getTargetRepositoryDict);
56
123
  }
57
124
  else {
58
- // otherwise, delete through models that relate to the sourceId
59
- const targetFkValues = this.getTargetKeys(throughInstances);
60
- // delete through instances that have the targets that are going to be deleted
61
- const throughFkConstraint = this.getThroughConstraintFromTarget(targetFkValues);
62
- await throughRepository.deleteAll((0, __1.constrainWhereOr)({}, [sourceConstraint, throughFkConstraint]));
125
+ if (!targetDiscriminatorOnThrough) {
126
+ console.warn('It is highly recommended to specify the targetDiscriminatorOnThrough param when using polymorphic types.');
127
+ }
128
+ if (!targetPolymorphicTypes || targetPolymorphicTypes.length === 0) {
129
+ console.warn('It is highly recommended to specify the polymorphicTypes param when using polymorphic types.');
130
+ allKeys = Object.keys(this.getTargetRepositoryDict);
131
+ }
132
+ else {
133
+ if (typeof targetPolymorphicTypes === 'string') {
134
+ targetPolymorphicTypes = [targetPolymorphicTypes];
135
+ }
136
+ allKeys = [];
137
+ new Set(targetPolymorphicTypes).forEach(element => {
138
+ if (Object.keys(this.getTargetRepositoryDict).includes(element)) {
139
+ allKeys.push(element);
140
+ }
141
+ });
142
+ }
143
+ }
144
+ const sourceConstraint = this.getThroughConstraintFromSource();
145
+ let totalCount = 0;
146
+ const throughCategorized = {};
147
+ const throughRepository = await this.getThroughRepository();
148
+ (await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions)).forEach(element => {
149
+ let concreteTargetType;
150
+ if (!targetDiscriminatorOnThrough) {
151
+ concreteTargetType = this.targetResolver().name;
152
+ }
153
+ else {
154
+ concreteTargetType = String(element[targetDiscriminatorOnThrough]);
155
+ }
156
+ if (!allKeys.includes(concreteTargetType)) {
157
+ return;
158
+ }
159
+ if (!this.getTargetRepositoryDict[concreteTargetType]) {
160
+ throw new __1.InvalidPolymorphismError(concreteTargetType, targetDiscriminatorOnThrough);
161
+ }
162
+ if (!throughCategorized[concreteTargetType]) {
163
+ throughCategorized[concreteTargetType] = [];
164
+ }
165
+ throughCategorized[concreteTargetType].push(element);
166
+ });
167
+ for (const targetKey of Object.keys(throughCategorized)) {
168
+ const targetRepository = await this.getTargetRepositoryDict[targetKey]();
169
+ if (where) {
170
+ // only delete related through models
171
+ // TODO(Agnes): this performance can be improved by only fetching related data
172
+ // TODO: add target ids to the `where` constraint
173
+ const targets = await targetRepository.find({ where });
174
+ const targetIds = this.getTargetIds(targets);
175
+ if (targetIds.length > 0) {
176
+ const targetConstraint = this.getThroughConstraintFromTarget(targetIds);
177
+ const constraints = { ...targetConstraint, ...sourceConstraint };
178
+ await throughRepository.deleteAll((0, __1.constrainDataObject)({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
179
+ }
180
+ }
181
+ else {
182
+ // otherwise, delete through models that relate to the sourceId
183
+ const targetFkValues = this.getTargetKeys(throughCategorized[targetKey]);
184
+ // delete through instances that have the targets that are going to be deleted
185
+ const throughFkConstraint = this.getThroughConstraintFromTarget(targetFkValues);
186
+ await throughRepository.deleteAll((0, __1.constrainWhereOr)({}, [sourceConstraint, throughFkConstraint]));
187
+ }
188
+ // delete target(s)
189
+ const targetConstraint = this.getTargetConstraintFromThroughModels(throughCategorized[targetKey]);
190
+ totalCount +=
191
+ (_c = (_b = (await targetRepository.deleteAll((0, __1.constrainWhere)(where, targetConstraint), options))) === null || _b === void 0 ? void 0 : _b.count) !== null && _c !== void 0 ? _c : 0;
63
192
  }
64
- // delete target(s)
65
- const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
66
- return targetRepository.deleteAll((0, __1.constrainWhere)(where, targetConstraint), options);
193
+ return { count: totalCount };
67
194
  }
68
195
  // only allows patch target instances for now
69
196
  async patch(dataObject, where, options) {
70
- const targetRepository = await this.getTargetRepository();
71
- const throughRepository = await this.getThroughRepository();
197
+ var _a, _b, _c;
198
+ const targetDiscriminatorOnThrough = (_a = options === null || options === void 0 ? void 0 : options.throughOptions) === null || _a === void 0 ? void 0 : _a.discriminator;
199
+ const isMultipleTypes = options === null || options === void 0 ? void 0 : options.isPolymorphic;
200
+ let allKeys;
201
+ if (!targetDiscriminatorOnThrough) {
202
+ if (Object.keys(this.getTargetRepositoryDict).length > 1) {
203
+ console.warn('It is highly recommended to specify the targetDiscriminatorOnThrough param when using polymorphic types.');
204
+ }
205
+ }
206
+ if (!isMultipleTypes) {
207
+ if (Object.keys(this.getTargetRepositoryDict).length > 1) {
208
+ console.warn('It is highly recommended to specify the isMultipleTypes param and pass in a dictionary of dataobjects when using polymorphic types.');
209
+ }
210
+ allKeys = Object.keys(this.getTargetRepositoryDict);
211
+ }
212
+ else {
213
+ allKeys = [];
214
+ new Set(Object.keys(dataObject)).forEach(element => {
215
+ if (Object.keys(this.getTargetRepositoryDict).includes(element)) {
216
+ allKeys.push(element);
217
+ }
218
+ });
219
+ }
72
220
  const sourceConstraint = this.getThroughConstraintFromSource();
73
- const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
74
- const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
75
- return targetRepository.updateAll((0, __1.constrainDataObject)(dataObject, targetConstraint), (0, __1.constrainWhere)(where, targetConstraint), options);
221
+ const throughCategorized = {};
222
+ const throughRepository = await this.getThroughRepository();
223
+ (await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions)).forEach(element => {
224
+ let concreteTargetType;
225
+ if (!targetDiscriminatorOnThrough) {
226
+ concreteTargetType = this.targetResolver().name;
227
+ }
228
+ else {
229
+ concreteTargetType = String(element[targetDiscriminatorOnThrough]);
230
+ }
231
+ if (!allKeys.includes(concreteTargetType)) {
232
+ return;
233
+ }
234
+ if (!this.getTargetRepositoryDict[concreteTargetType]) {
235
+ throw new __1.InvalidPolymorphismError(concreteTargetType, targetDiscriminatorOnThrough);
236
+ }
237
+ if (!throughCategorized[concreteTargetType]) {
238
+ throughCategorized[concreteTargetType] = [];
239
+ }
240
+ throughCategorized[concreteTargetType].push(element);
241
+ });
242
+ let updatedCount = 0;
243
+ for (const key of Object.keys(throughCategorized)) {
244
+ const targetRepository = await this.getTargetRepositoryDict[key]();
245
+ const targetConstraint = this.getTargetConstraintFromThroughModels(throughCategorized[key]);
246
+ updatedCount +=
247
+ (_c = (_b = (await targetRepository.updateAll((0, __1.constrainDataObject)(isMultipleTypes
248
+ ? dataObject[key]
249
+ : dataObject, targetConstraint), (0, __1.constrainWhere)(where, targetConstraint), options))) === null || _b === void 0 ? void 0 : _b.count) !== null && _c !== void 0 ? _c : 0;
250
+ }
251
+ return { count: updatedCount };
76
252
  }
77
253
  async link(targetId, options) {
78
254
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"has-many-through.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"has-many-through.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
@@ -1 +1 @@
1
- {"version":3,"file":"has-many.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,OAAO,CACrB,cAAiC,EACjC,UAAuC;IAEvC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,MAAM,IAAI,GAAsB,MAAM,CAAC,MAAM;QAC3C,kDAAkD;QAClD,EAAC,IAAI,EAAE,GAAG,EAAC;QACX,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,OAAO;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AApBD,0BAoBC"}
1
+ {"version":3,"file":"has-many.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.decorator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,OAAO,CACrB,cAAiC,EACjC,UAAuC;IAEvC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,MAAM,IAAI,GAAsB,MAAM,CAAC,MAAM;QAC3C,kDAAkD;QAClD,EAAC,IAAI,EAAE,GAAG,EAAC;QACX,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,OAAO;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AApBD,0BAoBC"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.resolveHasManyMetaHelper = exports.resolveHasManyMetadata = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
9
+ const debug_1 = tslib_1.__importDefault(require("debug"));
10
10
  const lodash_1 = require("lodash");
11
11
  const errors_1 = require("../../errors");
12
12
  const type_resolver_1 = require("../../type-resolver");
@@ -1 +1 @@
1
- {"version":3,"file":"has-many.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAkE;AAElE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,gDAAgD,CAAC,CAAC;AAW7E;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,YAA+B;;IAE/B,2DAA2D;IAC3D,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IAExC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,YAAyC,CAAC;KAClD;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QACjC,KAAK,EAAE,aAAa;KACQ,CAAC,CAAC;AAClC,CAAC;AAhCD,wDAgCC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,YAA+B;IAE/B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,OAAO,EAAE;QAChE,MAAM,MAAM,GAAG,+BAA+B,CAAC;QAC/C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IACD,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAAsB,CAAC;AACrE,CAAC;AA5BD,4DA4BC"}
1
+ {"version":3,"file":"has-many.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.helpers.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAkE;AAElE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,gDAAgD,CAAC,CAAC;AAW7E;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,YAA+B;;IAE/B,2DAA2D;IAC3D,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IAExC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,YAAyC,CAAC;KAClD;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QACjC,KAAK,EAAE,aAAa;KACQ,CAAC,CAAC;AAClC,CAAC;AAhCD,wDAgCC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,YAA+B;IAE/B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,OAAO,EAAE;QAChE,MAAM,MAAM,GAAG,+BAA+B,CAAC;QAC/C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IACD,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAAsB,CAAC;AACrE,CAAC;AA5BD,4DA4BC"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.createHasManyInclusionResolver = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
9
+ const debug_1 = tslib_1.__importDefault(require("debug"));
10
10
  const relation_helpers_1 = require("../relation.helpers");
11
11
  const has_many_helpers_1 = require("./has-many.helpers");
12
12
  const debug = (0, debug_1.default)('loopback:repository:relations:has-many:inclusion-resolver');
@@ -1 +1 @@
1
- {"version":3,"file":"has-many.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,+DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAK5C,IAAuB,EACvB,aAEC;IAED,MAAM,YAAY,GAAG,IAAA,yCAAsB,EAAC,IAAI,CAAC,CAAC;IAElD,OAAO,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,KAAK,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QACxD,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,YAAY,CAAC,KAA4B,CAAC;QAE5D,KAAK,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;QACxD,KAAK,CACH,gBAAgB,EAChB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAC7B,CAAC;QAEF,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAwB,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAA,oCAAiB,EAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAA,oDAAiC,EAC9C,SAAS,EACT,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAvDD,wEAuDC"}
1
+ {"version":3,"file":"has-many.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,0DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAK5C,IAAuB,EACvB,aAEC;IAED,MAAM,YAAY,GAAG,IAAA,yCAAsB,EAAC,IAAI,CAAC,CAAC;IAElD,OAAO,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,KAAK,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QACxD,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,YAAY,CAAC,KAA4B,CAAC;QAE5D,KAAK,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;QACxD,KAAK,CACH,gBAAgB,EAChB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAC7B,CAAC;QAEF,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAwB,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAA,oCAAiB,EAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAA,oDAAiC,EAC9C,SAAS,EACT,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAvDD,wEAuDC"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.createHasManyRepositoryFactory = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
9
+ const debug_1 = tslib_1.__importDefault(require("debug"));
10
10
  const has_many_helpers_1 = require("./has-many.helpers");
11
11
  const has_many_inclusion_resolver_1 = require("./has-many.inclusion-resolver");
12
12
  const has_many_repository_1 = require("./has-many.repository");
@@ -1 +1 @@
1
- {"version":3,"file":"has-many.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository-factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AAKjC,yDAA0D;AAC1D,+EAA6E;AAC7E,+DAG+B;AAE/B,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAiBF;;;;;;;;;;;;GAYG;AACH,SAAgB,8BAA8B,CAK5C,gBAAmC,EACnC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,IAAA,yCAAsB,EAAC,gBAAgB,CAAC,CAAC;IACtD,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAqD,UAC/D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,8CAAwB,CAIjC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,IAAA,4DAA8B,EACvD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,wEA0BC"}
1
+ {"version":3,"file":"has-many.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository-factory.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AAKjC,yDAA0D;AAC1D,+EAA6E;AAC7E,+DAG+B;AAE/B,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAiBF;;;;;;;;;;;;GAYG;AACH,SAAgB,8BAA8B,CAK5C,gBAAmC,EACnC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,IAAA,yCAAsB,EAAC,gBAAgB,CAAC,CAAC;IACtD,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAqD,UAC/D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,8CAAwB,CAIjC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,IAAA,4DAA8B,EACvD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,wEA0BC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
@@ -1 +1 @@
1
- {"version":3,"file":"has-many.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,qDAK4B;AA4C5B,MAAa,wBAAwB;IAMnC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,eAAyC,EACzC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAA,kCAAmB,EAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA6B,EAC7B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,IAAI,CAC1B,IAAA,8BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EACxC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2B,EAAE,OAAiB;QACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAoC,EACpC,KAA2B,EAC3B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,kCAAmB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA3DD,4DA2DC"}
1
+ {"version":3,"file":"has-many.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,qDAK4B;AA4C5B,MAAa,wBAAwB;IAMnC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,eAAyC,EACzC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAA,kCAAmB,EAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA6B,EAC7B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,IAAI,CAC1B,IAAA,8BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EACxC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2B,EAAE,OAAiB;QACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAoC,EACpC,KAA2B,EAC3B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,kCAAmB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA3DD,4DA2DC"}
@@ -1,6 +1,6 @@
1
- export * from './has-many.repository-factory';
2
- export * from './has-many-through.repository-factory';
3
1
  export * from './has-many-through.repository';
2
+ export * from './has-many-through.repository-factory';
4
3
  export * from './has-many.decorator';
5
4
  export * from './has-many.inclusion-resolver';
6
5
  export * from './has-many.repository';
6
+ export * from './has-many.repository-factory';
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const tslib_1 = require("tslib");
8
- (0, tslib_1.__exportStar)(require("./has-many.repository-factory"), exports);
9
- (0, tslib_1.__exportStar)(require("./has-many-through.repository-factory"), exports);
10
- (0, tslib_1.__exportStar)(require("./has-many-through.repository"), exports);
11
- (0, tslib_1.__exportStar)(require("./has-many.decorator"), exports);
12
- (0, tslib_1.__exportStar)(require("./has-many.inclusion-resolver"), exports);
13
- (0, tslib_1.__exportStar)(require("./has-many.repository"), exports);
8
+ tslib_1.__exportStar(require("./has-many-through.repository"), exports);
9
+ tslib_1.__exportStar(require("./has-many-through.repository-factory"), exports);
10
+ tslib_1.__exportStar(require("./has-many.decorator"), exports);
11
+ tslib_1.__exportStar(require("./has-many.inclusion-resolver"), exports);
12
+ tslib_1.__exportStar(require("./has-many.repository"), exports);
13
+ tslib_1.__exportStar(require("./has-many.repository-factory"), exports);
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-many/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,6EAA8C;AAC9C,qFAAsD;AACtD,6EAA8C;AAC9C,oEAAqC;AACrC,6EAA8C;AAC9C,qEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-many/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,wEAA8C;AAC9C,gFAAsD;AACtD,+DAAqC;AACrC,wEAA8C;AAC9C,gEAAsC;AACtC,wEAA8C"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
@@ -1 +1 @@
1
- {"version":3,"file":"has-one.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAiE;AAEjE;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,cAAiC,EACjC,UAAsC;IAEtC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,wDAAwD;QAExD,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM;QAC1C,kDAAkD;QAClD,EAAE;QACF,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAvBD,wBAuBC"}
1
+ {"version":3,"file":"has-one.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.decorator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAiE;AAEjE;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,cAAiC,EACjC,UAAsC;IAEtC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,wDAAwD;QAExD,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM;QAC1C,kDAAkD;QAClD,EAAE;QACF,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAvBD,wBAuBC"}
@@ -6,6 +6,9 @@ import { HasOneDefinition } from '../relation.types';
6
6
  export declare type HasOneResolvedDefinition = HasOneDefinition & {
7
7
  keyFrom: string;
8
8
  keyTo: string;
9
+ polymorphic: false | {
10
+ discriminator: string;
11
+ };
9
12
  };
10
13
  /**
11
14
  * Resolves given hasOne metadata if target is specified to be a resolver.
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
2
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
3
3
  // Node module: @loopback/repository
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.resolveHasOneMetadata = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const debug_1 = (0, tslib_1.__importDefault)(require("debug"));
9
+ const debug_1 = tslib_1.__importDefault(require("debug"));
10
10
  const lodash_1 = require("lodash");
11
11
  const errors_1 = require("../../errors");
12
12
  const type_resolver_1 = require("../../type-resolver");
@@ -45,20 +45,46 @@ function resolveHasOneMetadata(relationMeta) {
45
45
  else {
46
46
  keyFrom = sourceModel.getIdProperties()[0];
47
47
  }
48
+ let keyTo;
48
49
  // Make sure that if it already keys to the foreign key property,
49
50
  // the key exists in the target model
50
51
  if (relationMeta.keyTo && targetModelProperties[relationMeta.keyTo]) {
51
52
  // The explicit cast is needed because of a limitation of type inference
52
- return Object.assign(relationMeta, { keyFrom });
53
+ keyTo = relationMeta.keyTo;
53
54
  }
54
- debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
55
- const defaultFkName = (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
56
- const hasDefaultFkProperty = targetModelProperties[defaultFkName];
57
- if (!hasDefaultFkProperty) {
58
- const reason = `target model ${targetModel.name} is missing definition of foreign key ${defaultFkName}`;
59
- throw new errors_1.InvalidRelationError(reason, relationMeta);
55
+ else {
56
+ debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
57
+ keyTo = (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
58
+ const hasDefaultFkProperty = targetModelProperties[keyTo];
59
+ if (!hasDefaultFkProperty) {
60
+ const reason = `target model ${targetModel.name} is missing definition of foreign key ${keyTo}`;
61
+ throw new errors_1.InvalidRelationError(reason, relationMeta);
62
+ }
63
+ }
64
+ let polymorphic;
65
+ if (relationMeta.polymorphic === undefined ||
66
+ relationMeta.polymorphic === false ||
67
+ !relationMeta.polymorphic) {
68
+ const polymorphicFalse = false;
69
+ polymorphic = polymorphicFalse;
70
+ }
71
+ else {
72
+ if (relationMeta.polymorphic === true) {
73
+ const polymorphicObject = {
74
+ discriminator: (0, lodash_1.camelCase)(relationMeta.target().name + '_type'),
75
+ };
76
+ polymorphic = polymorphicObject;
77
+ }
78
+ else {
79
+ const polymorphicObject = relationMeta.polymorphic;
80
+ polymorphic = polymorphicObject;
81
+ }
60
82
  }
61
- return Object.assign(relationMeta, { keyFrom, keyTo: defaultFkName });
83
+ return Object.assign(relationMeta, {
84
+ keyFrom: keyFrom,
85
+ keyTo: keyTo,
86
+ polymorphic: polymorphic,
87
+ });
62
88
  }
63
89
  exports.resolveHasOneMetadata = resolveHasOneMetadata;
64
90
  //# sourceMappingURL=has-one.helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"has-one.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+CAA+C,CAAC,CAAC;AAW5E;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,YAA8B;;IAE9B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,MAAM,EAAE;QAC/D,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,iEAAiE;IACjE,qCAAqC;IACrC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAA6B,CAAC;KAC3E;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAC,CAAC;AACtE,CAAC;AAtDD,sDAsDC"}
1
+ {"version":3,"file":"has-one.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.helpers.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+CAA+C,CAAC,CAAC;AAY5E;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,YAA8B;;IAE9B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,MAAM,EAAE;QAC/D,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,IAAI,KAAK,CAAC;IACV,iEAAiE;IACjE,qCAAqC;IACrC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;KAC5B;SAAM;QACL,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;QACF,KAAK,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;QACjD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,KAAK,EAAE,CAAC;YAChG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SACtD;KACF;IAED,IAAI,WAA4C,CAAC;IACjD,IACE,YAAY,CAAC,WAAW,KAAK,SAAS;QACtC,YAAY,CAAC,WAAW,KAAK,KAAK;QAClC,CAAC,YAAY,CAAC,WAAW,EACzB;QACA,MAAM,gBAAgB,GAAG,KAAc,CAAC;QACxC,WAAW,GAAG,gBAAgB,CAAC;KAChC;SAAM;QACL,IAAI,YAAY,CAAC,WAAW,KAAK,IAAI,EAAE;YACrC,MAAM,iBAAiB,GAA4B;gBACjD,aAAa,EAAE,IAAA,kBAAS,EAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC;aAC/D,CAAC;YACF,WAAW,GAAG,iBAAiB,CAAC;SACjC;aAAM;YACL,MAAM,iBAAiB,GACrB,YAAY,CAAC,WAAsC,CAAC;YACtD,WAAW,GAAG,iBAAiB,CAAC;SACjC;KACF;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QACjC,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;AACL,CAAC;AAhFD,sDAgFC"}
@@ -8,7 +8,10 @@ import { Getter, HasOneDefinition, InclusionResolver } from '../relation.types';
8
8
  *
9
9
  * Notice: scope field for inclusion is not supported yet.
10
10
  *
11
- * @param meta
12
- * @param getTargetRepo
11
+ * @param meta - resolved HasOneMetadata
12
+ * @param getTargetRepoDict - dictionary of target model type - target repository
13
+ * i.e where related instances for different types are
13
14
  */
14
- export declare function createHasOneInclusionResolver<Target extends Entity, TargetID, TargetRelations extends object>(meta: HasOneDefinition, getTargetRepo: Getter<EntityCrudRepository<Target, TargetID, TargetRelations>>): InclusionResolver<Entity, Target>;
15
+ export declare function createHasOneInclusionResolver<Target extends Entity, TargetID, TargetRelations extends object>(meta: HasOneDefinition, getTargetRepoDict: {
16
+ [repoType: string]: Getter<EntityCrudRepository<Target, TargetID, TargetRelations>>;
17
+ }): InclusionResolver<Entity, Target>;