@loopback/repository 2.5.1 → 2.9.0

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 (81) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/decorators/metadata.d.ts +1 -1
  3. package/dist/decorators/metadata.js +6 -6
  4. package/dist/decorators/metadata.js.map +1 -1
  5. package/dist/decorators/model.decorator.d.ts +1 -1
  6. package/dist/decorators/model.decorator.js +10 -10
  7. package/dist/decorators/model.decorator.js.map +1 -1
  8. package/dist/decorators/repository.decorator.js +4 -4
  9. package/dist/decorators/repository.decorator.js.map +1 -1
  10. package/dist/define-model-class.d.ts +2 -2
  11. package/dist/mixins/repository.mixin.d.ts +82 -43
  12. package/dist/mixins/repository.mixin.js +52 -15
  13. package/dist/mixins/repository.mixin.js.map +1 -1
  14. package/dist/model.js +3 -2
  15. package/dist/model.js.map +1 -1
  16. package/dist/query.d.ts +30 -0
  17. package/dist/query.js +50 -0
  18. package/dist/query.js.map +1 -1
  19. package/dist/relations/belongs-to/belongs-to.decorator.js +2 -2
  20. package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
  21. package/dist/relations/belongs-to/belongs-to.repository.d.ts +1 -1
  22. package/dist/relations/has-many/has-many-through-repository.factory.d.ts +11 -0
  23. package/dist/relations/has-many/has-many-through-repository.factory.js +28 -0
  24. package/dist/relations/has-many/has-many-through-repository.factory.js.map +1 -0
  25. package/dist/relations/has-many/has-many-through.helpers.d.ts +87 -14
  26. package/dist/relations/has-many/has-many-through.helpers.js +114 -20
  27. package/dist/relations/has-many/has-many-through.helpers.js.map +1 -1
  28. package/dist/relations/has-many/has-many-through.repository.d.ts +38 -2
  29. package/dist/relations/has-many/has-many-through.repository.js +71 -0
  30. package/dist/relations/has-many/has-many-through.repository.js.map +1 -1
  31. package/dist/relations/has-many/has-many.helpers.js +3 -2
  32. package/dist/relations/has-many/has-many.helpers.js.map +1 -1
  33. package/dist/relations/has-many/has-many.repository.d.ts +1 -1
  34. package/dist/relations/has-many/index.d.ts +4 -2
  35. package/dist/relations/has-many/index.js +4 -2
  36. package/dist/relations/has-many/index.js.map +1 -1
  37. package/dist/relations/has-one/has-one.helpers.js +2 -1
  38. package/dist/relations/has-one/has-one.helpers.js.map +1 -1
  39. package/dist/relations/has-one/has-one.repository.d.ts +1 -1
  40. package/dist/relations/relation.decorator.js +7 -7
  41. package/dist/relations/relation.decorator.js.map +1 -1
  42. package/dist/relations/relation.types.d.ts +1 -1
  43. package/dist/relations/relation.types.js +2 -2
  44. package/dist/relations/relation.types.js.map +1 -1
  45. package/dist/repositories/constraint-utils.d.ts +10 -0
  46. package/dist/repositories/constraint-utils.js +16 -1
  47. package/dist/repositories/constraint-utils.js.map +1 -1
  48. package/dist/repositories/legacy-juggler-bridge.d.ts +33 -2
  49. package/dist/repositories/legacy-juggler-bridge.js +34 -0
  50. package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
  51. package/dist/type-resolver.js +2 -1
  52. package/dist/type-resolver.js.map +1 -1
  53. package/dist/types/index.js +1 -1
  54. package/dist/types/index.js.map +1 -1
  55. package/dist/types/null.js +1 -1
  56. package/dist/types/null.js.map +1 -1
  57. package/package.json +14 -12
  58. package/src/decorators/metadata.ts +1 -1
  59. package/src/decorators/model.decorator.ts +1 -1
  60. package/src/decorators/repository.decorator.ts +1 -1
  61. package/src/define-model-class.ts +2 -2
  62. package/src/mixins/repository.mixin.ts +70 -41
  63. package/src/model.ts +2 -2
  64. package/src/query.ts +55 -0
  65. package/src/relations/belongs-to/belongs-to.decorator.ts +1 -1
  66. package/src/relations/belongs-to/belongs-to.repository.ts +1 -1
  67. package/src/relations/has-many/has-many-through-repository.factory.ts +100 -0
  68. package/src/relations/has-many/has-many-through.helpers.ts +138 -21
  69. package/src/relations/has-many/has-many-through.repository.ts +174 -2
  70. package/src/relations/has-many/has-many.helpers.ts +2 -3
  71. package/src/relations/has-many/has-many.repository.ts +1 -1
  72. package/src/relations/has-many/index.ts +4 -2
  73. package/src/relations/has-one/has-one.helpers.ts +1 -2
  74. package/src/relations/has-one/has-one.repository.ts +1 -1
  75. package/src/relations/relation.decorator.ts +2 -2
  76. package/src/relations/relation.types.ts +1 -1
  77. package/src/repositories/constraint-utils.ts +17 -0
  78. package/src/repositories/legacy-juggler-bridge.ts +59 -1
  79. package/src/type-resolver.ts +2 -1
  80. package/src/types/index.ts +1 -1
  81. package/src/types/null.ts +1 -1
package/dist/model.js CHANGED
@@ -132,7 +132,8 @@ class Model {
132
132
  Object.assign(this, data);
133
133
  }
134
134
  static get modelName() {
135
- return (this.definition && this.definition.name) || this.name;
135
+ var _a;
136
+ return ((_a = this.definition) === null || _a === void 0 ? void 0 : _a.name) || this.name;
136
137
  }
137
138
  /**
138
139
  * Serialize into a plain JSON object
@@ -175,7 +176,7 @@ class Model {
175
176
  toObject(options) {
176
177
  const def = this.constructor.definition;
177
178
  const obj = {};
178
- if (options && options.ignoreUnknownProperties === false) {
179
+ if ((options === null || options === void 0 ? void 0 : options.ignoreUnknownProperties) === false) {
179
180
  const hiddenProperties = (def === null || def === void 0 ? void 0 : def.settings.hiddenProperties) || [];
180
181
  for (const p in this) {
181
182
  if (!hiddenProperties.includes(p)) {
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/query.d.ts CHANGED
@@ -272,6 +272,36 @@ export declare class WhereBuilder<MT extends object = AnyObject> {
272
272
  * @param where - Where filter
273
273
  */
274
274
  impose(where: Where<MT>): this;
275
+ /**
276
+ * Add a `like` condition
277
+ * @param key - Property name
278
+ * @param val - Regexp condition
279
+ */
280
+ like<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
281
+ /**
282
+ * Add a `nlike` condition
283
+ * @param key - Property name
284
+ * @param val - Regexp condition
285
+ */
286
+ nlike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
287
+ /**
288
+ * Add a `ilike` condition
289
+ * @param key - Property name
290
+ * @param val - Regexp condition
291
+ */
292
+ ilike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
293
+ /**
294
+ * Add a `nilike` condition
295
+ * @param key - Property name
296
+ * @param val - Regexp condition
297
+ */
298
+ nilike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
299
+ /**
300
+ * Add a `regexp` condition
301
+ * @param key - Property name
302
+ * @param val - Regexp condition
303
+ */
304
+ regexp<K extends KeyOf<MT>>(key: K, val: string | RegExp): this;
275
305
  /**
276
306
  * Get the where object
277
307
  */
package/dist/query.js CHANGED
@@ -213,6 +213,56 @@ class WhereBuilder {
213
213
  }
214
214
  return this;
215
215
  }
216
+ /**
217
+ * Add a `like` condition
218
+ * @param key - Property name
219
+ * @param val - Regexp condition
220
+ */
221
+ like(key, val) {
222
+ const w = {};
223
+ w[key] = { like: val };
224
+ return this.add(w);
225
+ }
226
+ /**
227
+ * Add a `nlike` condition
228
+ * @param key - Property name
229
+ * @param val - Regexp condition
230
+ */
231
+ nlike(key, val) {
232
+ const w = {};
233
+ w[key] = { nlike: val };
234
+ return this.add(w);
235
+ }
236
+ /**
237
+ * Add a `ilike` condition
238
+ * @param key - Property name
239
+ * @param val - Regexp condition
240
+ */
241
+ ilike(key, val) {
242
+ const w = {};
243
+ w[key] = { ilike: val };
244
+ return this.add(w);
245
+ }
246
+ /**
247
+ * Add a `nilike` condition
248
+ * @param key - Property name
249
+ * @param val - Regexp condition
250
+ */
251
+ nilike(key, val) {
252
+ const w = {};
253
+ w[key] = { nilike: val };
254
+ return this.add(w);
255
+ }
256
+ /**
257
+ * Add a `regexp` condition
258
+ * @param key - Property name
259
+ * @param val - Regexp condition
260
+ */
261
+ regexp(key, val) {
262
+ const w = {};
263
+ w[key] = { regexp: val };
264
+ return this.add(w);
265
+ }
216
266
  /**
217
267
  * Get the where object
218
268
  */
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.belongsTo = void 0;
8
- const context_1 = require("@loopback/context");
8
+ const core_1 = require("@loopback/core");
9
9
  const model_decorator_1 = require("../../decorators/model.decorator");
10
10
  const relation_decorator_1 = require("../relation.decorator");
11
11
  const relation_types_1 = require("../relation.types");
@@ -24,7 +24,7 @@ function belongsTo(targetResolver, definition, propertyDefinition) {
24
24
  propertyDefinition,
25
25
  // properties enforced by the decorator
26
26
  {
27
- type: context_1.MetadataInspector.getDesignTypeForProperty(decoratedTarget, decoratedKey),
27
+ type: core_1.MetadataInspector.getDesignTypeForProperty(decoratedTarget, decoratedKey),
28
28
  });
29
29
  model_decorator_1.property(propMeta)(decoratedTarget, decoratedKey);
30
30
  // @belongsTo() is typically decorating the foreign key property,
@@ -1 +1 @@
1
- {"version":3,"file":"belongs-to.decorator.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAAoD;AACpD,sEAA0D;AAE1D,8DAA+C;AAC/C,sDAAoE;AAEpE;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,cAAiC,EACjC,UAAyC,EACzC,kBAAgD;IAEhD,OAAO,UAAU,eAAuB,EAAE,YAAoB;QAC5D,MAAM,QAAQ,GAAuB,MAAM,CAAC,MAAM,CAChD,EAAE;QACF,oCAAoC;QACpC,kBAAkB;QAClB,uCAAuC;QACvC;YACE,IAAI,EAAE,2BAAiB,CAAC,wBAAwB,CAC9C,eAAe,EACf,YAAY,CACb;SAIF,CACF,CAAC;QACF,0BAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAElD,iEAAiE;QACjE,4EAA4E;QAC5E,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM;QAC7C,kDAAkD;QAClD;YACE,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,YAAY;SACnB;QACD,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,SAAS;YAC5B,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,6BAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AA7CD,8BA6CC"}
1
+ {"version":3,"file":"belongs-to.decorator.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAAiD;AACjD,sEAA0D;AAE1D,8DAA+C;AAC/C,sDAAoE;AAEpE;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,cAAiC,EACjC,UAAyC,EACzC,kBAAgD;IAEhD,OAAO,UAAU,eAAuB,EAAE,YAAoB;QAC5D,MAAM,QAAQ,GAAuB,MAAM,CAAC,MAAM,CAChD,EAAE;QACF,oCAAoC;QACpC,kBAAkB;QAClB,uCAAuC;QACvC;YACE,IAAI,EAAE,wBAAiB,CAAC,wBAAwB,CAC9C,eAAe,EACf,YAAY,CACb;SAIF,CACF,CAAC;QACF,0BAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAElD,iEAAiE;QACjE,4EAA4E;QAC5E,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErD,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM;QAC7C,kDAAkD;QAClD;YACE,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,YAAY;SACnB;QACD,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,SAAS;YAC5B,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,6BAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AA7CD,8BA6CC"}
@@ -1,4 +1,4 @@
1
- import { Getter } from '@loopback/context';
1
+ import { Getter } from '@loopback/core';
2
2
  import { DataObject, Options } from '../../common-types';
3
3
  import { Entity } from '../../model';
4
4
  import { EntityCrudRepository } from '../../repositories/repository';
@@ -0,0 +1,11 @@
1
+ import { Entity, EntityCrudRepository, Getter, HasManyDefinition } from '../..';
2
+ import { HasManyThroughRepository } from './has-many-through.repository';
3
+ /**
4
+ * a factory to generate hasManyThrough repository class.
5
+ *
6
+ * Warning: The hasManyThrough interface is experimental and is subject to change.
7
+ * If backwards-incompatible changes are made, a new major version may not be
8
+ * released.
9
+ */
10
+ export declare type HasManyThroughRepositoryFactory<TargetEntity extends Entity, TargetID, ThroughEntity extends Entity, SourceID> = (fkValue: SourceID) => HasManyThroughRepository<TargetEntity, TargetID, ThroughEntity>;
11
+ export declare function createHasManyThroughRepositoryFactory<Target extends Entity, TargetID, Through extends Entity, ThroughID, SourceID>(relationMetadata: HasManyDefinition, targetRepositoryGetter: Getter<EntityCrudRepository<Target, TargetID>>, throughRepositoryGetter: Getter<EntityCrudRepository<Through, ThroughID>>): HasManyThroughRepositoryFactory<Target, TargetID, Through, SourceID>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHasManyThroughRepositoryFactory = void 0;
4
+ const has_many_through_helpers_1 = require("./has-many-through.helpers");
5
+ const has_many_through_repository_1 = require("./has-many-through.repository");
6
+ function createHasManyThroughRepositoryFactory(relationMetadata, targetRepositoryGetter, throughRepositoryGetter) {
7
+ const meta = has_many_through_helpers_1.resolveHasManyThroughMetadata(relationMetadata);
8
+ const result = function (fkValue) {
9
+ function getTargetConstraintFromThroughModels(throughInstances) {
10
+ return has_many_through_helpers_1.createTargetConstraintFromThrough(meta, throughInstances);
11
+ }
12
+ function getTargetKeys(throughInstances) {
13
+ return has_many_through_helpers_1.getTargetKeysFromThroughModels(meta, throughInstances);
14
+ }
15
+ function getThroughConstraintFromSource() {
16
+ const constraint = has_many_through_helpers_1.createThroughConstraintFromSource(meta, fkValue);
17
+ return constraint;
18
+ }
19
+ function getThroughConstraintFromTarget(fkValues) {
20
+ const constraint = has_many_through_helpers_1.createThroughConstraintFromTarget(meta, fkValues);
21
+ return constraint;
22
+ }
23
+ return new has_many_through_repository_1.DefaultHasManyThroughRepository(targetRepositoryGetter, throughRepositoryGetter, getTargetConstraintFromThroughModels, getTargetKeys, getThroughConstraintFromSource, getThroughConstraintFromTarget);
24
+ };
25
+ return result;
26
+ }
27
+ exports.createHasManyThroughRepositoryFactory = createHasManyThroughRepositoryFactory;
28
+ //# sourceMappingURL=has-many-through-repository.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-many-through-repository.factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through-repository.factory.ts"],"names":[],"mappings":";;;AAWA,yEAMoC;AACpC,+EAGuC;AAmBvC,SAAgB,qCAAqC,CAOnD,gBAAmC,EACnC,sBAAsE,EACtE,uBAAyE;IAEzE,MAAM,IAAI,GAAG,wDAA6B,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,UAAU,OAAiB;QACxC,SAAS,oCAAoC,CAC3C,gBAA2B;YAE3B,OAAO,4DAAiC,CACtC,IAAI,EACJ,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,SAAS,aAAa,CAAC,gBAA2B;YAChD,OAAO,yDAA8B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAChE,CAAC;QACD,SAAS,8BAA8B;YACrC,MAAM,UAAU,GAAwB,4DAAiC,CAGvE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,SAAS,8BAA8B,CACrC,QAAoB;YAEpB,MAAM,UAAU,GAAwB,4DAAiC,CAGvE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,6DAA+B,CAQxC,sBAAsB,EACtB,uBAAuB,EACvB,oCAAoC,EACpC,aAAa,EACb,8BAA8B,EAC9B,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA3DD,sFA2DC"}
@@ -8,10 +8,9 @@ export declare type HasManyThroughResolvedDefinition = HasManyDefinition & {
8
8
  };
9
9
  };
10
10
  /**
11
- * Creates constraint used to query target
12
- * @param relationMeta - hasManyThrough metadata to resolve
13
- * @param throughInstances - Instances of through entities used to constrain the target
14
- * @internal
11
+ * Creates target constraint based on through models
12
+ * @param relationMeta - resolved hasManyThrough metadata
13
+ * @param throughInstances - an array of through instances
15
14
  *
16
15
  * @example
17
16
  * ```ts
@@ -25,27 +24,71 @@ export declare type HasManyThroughResolvedDefinition = HasManyDefinition & {
25
24
  * keyTo: 'productId',
26
25
  * },
27
26
  * };
28
-
29
- * createTargetConstraint(resolvedMetadata, [
27
+ * createTargetConstraintFromThrough(resolvedMetadata,[{
28
+ id: 2,
29
+ categoryId: 2,
30
+ productId: 8,
31
+ }]);
32
+ * >>> {id: 8}
33
+ * createTargetConstraintFromThrough(resolvedMetadata, [
30
34
  {
31
35
  id: 2,
32
36
  categoryId: 2,
33
37
  productId: 8,
34
38
  }, {
35
- id: 2,
39
+ id: 1,
36
40
  categoryId: 2,
37
41
  productId: 9,
38
42
  }
39
43
  ]);
44
+
45
+ >>> {id: {inq: [9, 8]}}
40
46
  * ```
41
47
  */
42
- export declare function createTargetConstraint<Target extends Entity, Through extends Entity>(relationMeta: HasManyThroughResolvedDefinition, throughInstances: Through[]): DataObject<Target>;
48
+ export declare function createTargetConstraintFromThrough<Target extends Entity, Through extends Entity>(relationMeta: HasManyThroughResolvedDefinition, throughInstances: Through[]): DataObject<Target>;
43
49
  /**
44
- * Creates constraint used to query through model
50
+ * Returns an array of target fks of the given throughInstances.
45
51
  *
46
- * @param relationMeta - hasManyThrough metadata to resolve
47
- * @param fkValue - Value of the foreign key of the source model used to constrain through
48
- * @param targetInstance - Instance of target entity used to constrain through
52
+ * @param relationMeta - resolved hasManyThrough metadata
53
+ * @param throughInstances - an array of through instances
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const resolvedMetadata = {
58
+ * // .. other props
59
+ * keyFrom: 'id',
60
+ * keyTo: 'id',
61
+ * through: {
62
+ * model: () => CategoryProductLink,
63
+ * keyFrom: 'categoryId',
64
+ * keyTo: 'productId',
65
+ * },
66
+ * };
67
+ * getTargetKeysFromThroughModels(resolvedMetadata,[{
68
+ id: 2,
69
+ categoryId: 2,
70
+ productId: 8,
71
+ }]);
72
+ * >>> [8]
73
+ * getTargetKeysFromThroughModels(resolvedMetadata, [
74
+ {
75
+ id: 2,
76
+ categoryId: 2,
77
+ productId: 8,
78
+ }, {
79
+ id: 1,
80
+ categoryId: 2,
81
+ productId: 9,
82
+ }
83
+ ]);
84
+ >>> [8, 9]
85
+ */
86
+ export declare function getTargetKeysFromThroughModels<Through extends Entity, TargetID>(relationMeta: HasManyThroughResolvedDefinition, throughInstances: Through[]): TargetID[];
87
+ /**
88
+ * Creates through constraint based on the source key
89
+ *
90
+ * @param relationMeta - resolved hasManyThrough metadata
91
+ * @param fkValue - foreign key of the source instance
49
92
  * @internal
50
93
  *
51
94
  * @example
@@ -60,10 +103,40 @@ export declare function createTargetConstraint<Target extends Entity, Through ex
60
103
  * keyTo: 'productId',
61
104
  * },
62
105
  * };
63
- * createThroughConstraint(resolvedMetadata, 1);
106
+ * createThroughConstraintFromSource(resolvedMetadata, 1);
107
+ *
108
+ * >>> {categoryId: 1}
64
109
  * ```
65
110
  */
66
- export declare function createThroughConstraint<Through extends Entity, ForeignKeyType>(relationMeta: HasManyThroughResolvedDefinition, fkValue: ForeignKeyType): DataObject<Through>;
111
+ export declare function createThroughConstraintFromSource<Through extends Entity, SourceID>(relationMeta: HasManyThroughResolvedDefinition, fkValue: SourceID): DataObject<Through>;
112
+ /**
113
+ * Creates through constraint based on the target foreign key
114
+ *
115
+ * @param relationMeta - resolved hasManyThrough metadata
116
+ * @param fkValue an array of the target instance foreign keys
117
+ * @internal
118
+ *
119
+ * @example
120
+ * ```ts
121
+ * const resolvedMetadata = {
122
+ * // .. other props
123
+ * keyFrom: 'id',
124
+ * keyTo: 'id',
125
+ * through: {
126
+ * model: () => CategoryProductLink,
127
+ * keyFrom: 'categoryId',
128
+ * keyTo: 'productId',
129
+ * },
130
+ * };
131
+ * createThroughConstraintFromTarget(resolvedMetadata, [3]);
132
+ *
133
+ * >>> {productId: 3}
134
+ *
135
+ * createThroughConstraintFromTarget(resolvedMetadata, [3,4]);
136
+ *
137
+ * >>> {productId: {inq:[3,4]}}
138
+ */
139
+ export declare function createThroughConstraintFromTarget<Through extends Entity, TargetID>(relationMeta: HasManyThroughResolvedDefinition, fkValues: TargetID[]): DataObject<Through>;
67
140
  /**
68
141
  * Resolves given hasMany metadata if target is specified to be a resolver.
69
142
  * Mainly used to infer what the `keyTo` property should be from the target's
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ // Copyright IBM Corp. 2020. All Rights Reserved.
3
+ // Node module: @loopback/repository
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveHasManyThroughMetadata = exports.createThroughConstraint = exports.createTargetConstraint = void 0;
7
+ exports.resolveHasManyThroughMetadata = exports.createThroughConstraintFromTarget = exports.createThroughConstraintFromSource = exports.getTargetKeysFromThroughModels = exports.createTargetConstraintFromThrough = void 0;
4
8
  const tslib_1 = require("tslib");
5
9
  const debug_1 = tslib_1.__importDefault(require("debug"));
6
10
  const lodash_1 = require("lodash");
@@ -8,10 +12,9 @@ const __1 = require("../..");
8
12
  const has_many_helpers_1 = require("./has-many.helpers");
9
13
  const debug = debug_1.default('loopback:repository:has-many-through-helpers');
10
14
  /**
11
- * Creates constraint used to query target
12
- * @param relationMeta - hasManyThrough metadata to resolve
13
- * @param throughInstances - Instances of through entities used to constrain the target
14
- * @internal
15
+ * Creates target constraint based on through models
16
+ * @param relationMeta - resolved hasManyThrough metadata
17
+ * @param throughInstances - an array of through instances
15
18
  *
16
19
  * @example
17
20
  * ```ts
@@ -25,37 +28,87 @@ const debug = debug_1.default('loopback:repository:has-many-through-helpers');
25
28
  * keyTo: 'productId',
26
29
  * },
27
30
  * };
28
-
29
- * createTargetConstraint(resolvedMetadata, [
31
+ * createTargetConstraintFromThrough(resolvedMetadata,[{
32
+ id: 2,
33
+ categoryId: 2,
34
+ productId: 8,
35
+ }]);
36
+ * >>> {id: 8}
37
+ * createTargetConstraintFromThrough(resolvedMetadata, [
30
38
  {
31
39
  id: 2,
32
40
  categoryId: 2,
33
41
  productId: 8,
34
42
  }, {
35
- id: 2,
43
+ id: 1,
36
44
  categoryId: 2,
37
45
  productId: 9,
38
46
  }
39
47
  ]);
48
+
49
+ >>> {id: {inq: [9, 8]}}
40
50
  * ```
41
51
  */
42
- function createTargetConstraint(relationMeta, throughInstances) {
52
+ function createTargetConstraintFromThrough(relationMeta, throughInstances) {
53
+ const fkValues = getTargetKeysFromThroughModels(relationMeta, throughInstances);
43
54
  const targetPrimaryKey = relationMeta.keyTo;
44
- const targetFkName = relationMeta.through.keyTo;
45
- const fkValues = throughInstances.map((throughInstance) => throughInstance[targetFkName]);
46
55
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
56
  const constraint = {
48
57
  [targetPrimaryKey]: fkValues.length === 1 ? fkValues[0] : { inq: fkValues },
49
58
  };
50
59
  return constraint;
51
60
  }
52
- exports.createTargetConstraint = createTargetConstraint;
61
+ exports.createTargetConstraintFromThrough = createTargetConstraintFromThrough;
53
62
  /**
54
- * Creates constraint used to query through model
63
+ * Returns an array of target fks of the given throughInstances.
55
64
  *
56
- * @param relationMeta - hasManyThrough metadata to resolve
57
- * @param fkValue - Value of the foreign key of the source model used to constrain through
58
- * @param targetInstance - Instance of target entity used to constrain through
65
+ * @param relationMeta - resolved hasManyThrough metadata
66
+ * @param throughInstances - an array of through instances
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const resolvedMetadata = {
71
+ * // .. other props
72
+ * keyFrom: 'id',
73
+ * keyTo: 'id',
74
+ * through: {
75
+ * model: () => CategoryProductLink,
76
+ * keyFrom: 'categoryId',
77
+ * keyTo: 'productId',
78
+ * },
79
+ * };
80
+ * getTargetKeysFromThroughModels(resolvedMetadata,[{
81
+ id: 2,
82
+ categoryId: 2,
83
+ productId: 8,
84
+ }]);
85
+ * >>> [8]
86
+ * getTargetKeysFromThroughModels(resolvedMetadata, [
87
+ {
88
+ id: 2,
89
+ categoryId: 2,
90
+ productId: 8,
91
+ }, {
92
+ id: 1,
93
+ categoryId: 2,
94
+ productId: 9,
95
+ }
96
+ ]);
97
+ >>> [8, 9]
98
+ */
99
+ function getTargetKeysFromThroughModels(relationMeta, throughInstances) {
100
+ const targetFkName = relationMeta.through.keyTo;
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ let fkValues = throughInstances.map((throughInstance) => throughInstance[targetFkName]);
103
+ fkValues = __1.deduplicate(fkValues);
104
+ return fkValues;
105
+ }
106
+ exports.getTargetKeysFromThroughModels = getTargetKeysFromThroughModels;
107
+ /**
108
+ * Creates through constraint based on the source key
109
+ *
110
+ * @param relationMeta - resolved hasManyThrough metadata
111
+ * @param fkValue - foreign key of the source instance
59
112
  * @internal
60
113
  *
61
114
  * @example
@@ -70,16 +123,57 @@ exports.createTargetConstraint = createTargetConstraint;
70
123
  * keyTo: 'productId',
71
124
  * },
72
125
  * };
73
- * createThroughConstraint(resolvedMetadata, 1);
126
+ * createThroughConstraintFromSource(resolvedMetadata, 1);
127
+ *
128
+ * >>> {categoryId: 1}
74
129
  * ```
75
130
  */
76
- function createThroughConstraint(relationMeta, fkValue) {
131
+ function createThroughConstraintFromSource(relationMeta, fkValue) {
77
132
  const sourceFkName = relationMeta.through.keyFrom;
78
133
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
134
  const constraint = { [sourceFkName]: fkValue };
80
135
  return constraint;
81
136
  }
82
- exports.createThroughConstraint = createThroughConstraint;
137
+ exports.createThroughConstraintFromSource = createThroughConstraintFromSource;
138
+ /**
139
+ * Creates through constraint based on the target foreign key
140
+ *
141
+ * @param relationMeta - resolved hasManyThrough metadata
142
+ * @param fkValue an array of the target instance foreign keys
143
+ * @internal
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const resolvedMetadata = {
148
+ * // .. other props
149
+ * keyFrom: 'id',
150
+ * keyTo: 'id',
151
+ * through: {
152
+ * model: () => CategoryProductLink,
153
+ * keyFrom: 'categoryId',
154
+ * keyTo: 'productId',
155
+ * },
156
+ * };
157
+ * createThroughConstraintFromTarget(resolvedMetadata, [3]);
158
+ *
159
+ * >>> {productId: 3}
160
+ *
161
+ * createThroughConstraintFromTarget(resolvedMetadata, [3,4]);
162
+ *
163
+ * >>> {productId: {inq:[3,4]}}
164
+ */
165
+ function createThroughConstraintFromTarget(relationMeta, fkValues) {
166
+ if (fkValues === undefined || fkValues.length === 0) {
167
+ throw new Error('"fkValue" must be provided');
168
+ }
169
+ const targetFkName = relationMeta.through.keyTo;
170
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
171
+ const constraint = fkValues.length === 1
172
+ ? { [targetFkName]: fkValues[0] }
173
+ : { [targetFkName]: { inq: fkValues } };
174
+ return constraint;
175
+ }
176
+ exports.createThroughConstraintFromTarget = createThroughConstraintFromTarget;
83
177
  /**
84
178
  * Resolves given hasMany metadata if target is specified to be a resolver.
85
179
  * Mainly used to infer what the `keyTo` property should be from the target's
@@ -110,7 +204,7 @@ function resolveHasManyThroughMetadata(relationMeta) {
110
204
  throughModelProperties[relationMeta.through.keyFrom] &&
111
205
  relationMeta.keyTo &&
112
206
  targetModelProperties[relationMeta.keyTo]) {
113
- // The explict cast is needed because of a limitation of type inference
207
+ // The explicit cast is needed because of a limitation of type inference
114
208
  return relationMeta;
115
209
  }
116
210
  const sourceModel = relationMeta.source;
@@ -1 +1 @@
1
- {"version":3,"file":"has-many-through.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"has-many-through.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.helpers.ts"],"names":[],"mappings":"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"}