@loopback/repository 4.0.0 → 4.1.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.
@@ -32,14 +32,20 @@ async function findByForeignKeys(targetRepository, fkName, fkValues, scope, opti
32
32
  value = fkValues;
33
33
  }
34
34
  let useScopeFilterGlobally = false;
35
+ // If its an include from a through model, fkValues will be an array.
36
+ // However, in this case we DO want to use the scope in the entire query, not
37
+ // on a per-fk basis
35
38
  if (options) {
36
39
  useScopeFilterGlobally = options.isThroughModelInclude;
37
- //if its an include from a through model, fkValues will be an array
38
- //however, in this case we DO want to use the scope in the entire query
39
- //no in a per fk basis
40
40
  }
41
- //This code is to keep backward compatability. See https://github.com/loopbackio/loopback-next/issues/6832
42
- //for more info
41
+ // If `scope.limit` is not defined, there is no reason to apply the scope to
42
+ // each fk. This is to prevent unecessarily high database query counts.
43
+ // See: https://github.com/loopbackio/loopback-next/issues/8074
44
+ if (!(scope === null || scope === void 0 ? void 0 : scope.limit)) {
45
+ useScopeFilterGlobally = true;
46
+ }
47
+ // This code is to keep backward compatability.
48
+ // See https://github.com/loopbackio/loopback-next/issues/6832 for more info.
43
49
  if (scope === null || scope === void 0 ? void 0 : scope.totalLimit) {
44
50
  scope.limit = scope.totalLimit;
45
51
  useScopeFilterGlobally = true;
@@ -47,7 +53,7 @@ async function findByForeignKeys(targetRepository, fkName, fkValues, scope, opti
47
53
  }
48
54
  const isScopeSet = scope && !lodash_1.default.isEmpty(scope);
49
55
  if (isScopeSet && Array.isArray(fkValues) && !useScopeFilterGlobally) {
50
- // since there is a scope, there could be a where filter, a limit, an order
56
+ // Since there is a scope, there could be a where filter, a limit, an order
51
57
  // and we should run the scope in multiple queries so we can respect the
52
58
  // scope filter params
53
59
  const findPromises = fkValues.map(fk => {
@@ -1 +1 @@
1
- {"version":3,"file":"relation.helpers.js","sourceRoot":"","sources":["../../src/relations/relation.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation.helpers.js","sourceRoot":"","sources":["../../src/relations/relation.helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loopback/repository",
3
3
  "description": "Define and implement a common set of interfaces for interacting with databases",
4
- "version": "4.0.0",
4
+ "version": "4.1.1",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -33,26 +33,26 @@
33
33
  "!*/__tests__"
34
34
  ],
35
35
  "peerDependencies": {
36
- "@loopback/core": "^3.0.0"
36
+ "@loopback/core": "^3.1.1"
37
37
  },
38
38
  "dependencies": {
39
- "@loopback/filter": "^2.0.0",
39
+ "@loopback/filter": "^2.1.1",
40
40
  "@types/debug": "^4.1.7",
41
- "debug": "^4.3.2",
41
+ "debug": "^4.3.3",
42
42
  "lodash": "^4.17.21",
43
- "loopback-datasource-juggler": "^4.26.0",
43
+ "loopback-datasource-juggler": "^4.27.1",
44
44
  "tslib": "^2.3.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@loopback/build": "^8.0.0",
48
- "@loopback/core": "^3.0.0",
49
- "@loopback/eslint-config": "^12.0.0",
50
- "@loopback/testlab": "^4.0.0",
47
+ "@loopback/build": "^8.1.1",
48
+ "@loopback/core": "^3.1.1",
49
+ "@loopback/eslint-config": "^12.0.3",
50
+ "@loopback/testlab": "^4.1.1",
51
51
  "@types/bson": "^4.0.5",
52
52
  "@types/json-schema": "^7.0.9",
53
- "@types/lodash": "^4.14.176",
54
- "@types/node": "^10.17.60",
55
- "bson": "4.5.3"
53
+ "@types/lodash": "^4.14.179",
54
+ "@types/node": "^12.20.46",
55
+ "bson": "4.6.1"
56
56
  },
57
- "gitHead": "00a62f630c19341ce399cec3a45563b1ead6e3b8"
57
+ "gitHead": "8aff2ce33aad3daa53b05fa0fbe8a1b2c7ad0bdf"
58
58
  }
@@ -47,14 +47,23 @@ export async function findByForeignKeys<
47
47
  value = fkValues;
48
48
  }
49
49
  let useScopeFilterGlobally = false;
50
+
51
+ // If its an include from a through model, fkValues will be an array.
52
+ // However, in this case we DO want to use the scope in the entire query, not
53
+ // on a per-fk basis
50
54
  if (options) {
51
55
  useScopeFilterGlobally = options.isThroughModelInclude;
52
- //if its an include from a through model, fkValues will be an array
53
- //however, in this case we DO want to use the scope in the entire query
54
- //no in a per fk basis
55
56
  }
56
- //This code is to keep backward compatability. See https://github.com/loopbackio/loopback-next/issues/6832
57
- //for more info
57
+
58
+ // If `scope.limit` is not defined, there is no reason to apply the scope to
59
+ // each fk. This is to prevent unecessarily high database query counts.
60
+ // See: https://github.com/loopbackio/loopback-next/issues/8074
61
+ if (!scope?.limit) {
62
+ useScopeFilterGlobally = true;
63
+ }
64
+
65
+ // This code is to keep backward compatability.
66
+ // See https://github.com/loopbackio/loopback-next/issues/6832 for more info.
58
67
  if (scope?.totalLimit) {
59
68
  scope.limit = scope.totalLimit;
60
69
  useScopeFilterGlobally = true;
@@ -63,7 +72,7 @@ export async function findByForeignKeys<
63
72
 
64
73
  const isScopeSet = scope && !_.isEmpty(scope);
65
74
  if (isScopeSet && Array.isArray(fkValues) && !useScopeFilterGlobally) {
66
- // since there is a scope, there could be a where filter, a limit, an order
75
+ // Since there is a scope, there could be a where filter, a limit, an order
67
76
  // and we should run the scope in multiple queries so we can respect the
68
77
  // scope filter params
69
78
  const findPromises = fkValues.map(fk => {