@loopback/repository 3.2.0 → 3.4.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.
- package/CHANGELOG.md +48 -0
- package/dist/connectors/connector.d.ts +35 -1
- package/dist/relations/belongs-to/{belongs-to-accessor.d.ts → belongs-to.accessor.d.ts} +0 -0
- package/dist/relations/belongs-to/{belongs-to-accessor.js → belongs-to.accessor.js} +2 -2
- package/dist/relations/belongs-to/{belongs-to-accessor.js.map → belongs-to.accessor.js.map} +1 -1
- package/dist/relations/belongs-to/belongs-to.decorator.js +2 -2
- package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.helpers.js +1 -1
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +1 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +2 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.d.ts +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.js +2 -2
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
- package/dist/relations/belongs-to/index.d.ts +1 -1
- package/dist/relations/belongs-to/index.js +1 -1
- package/dist/relations/has-many/has-many-through.helpers.js +1 -1
- package/dist/relations/has-many/has-many-through.helpers.js.map +1 -1
- package/dist/relations/has-many/{has-many-through.inclusion.resolver.d.ts → has-many-through.inclusion-resolver.d.ts} +1 -1
- package/dist/relations/has-many/{has-many-through.inclusion.resolver.js → has-many-through.inclusion-resolver.js} +4 -3
- package/dist/relations/has-many/{has-many-through.inclusion.resolver.js.map → has-many-through.inclusion-resolver.js.map} +1 -1
- package/dist/relations/has-many/{has-many-through-repository.factory.d.ts → has-many-through.repository-factory.d.ts} +0 -0
- package/dist/relations/has-many/{has-many-through-repository.factory.js → has-many-through.repository-factory.js} +2 -2
- package/dist/relations/has-many/{has-many-through-repository.factory.js.map → has-many-through.repository-factory.js.map} +1 -1
- package/dist/relations/has-many/has-many.helpers.js +1 -1
- package/dist/relations/has-many/has-many.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.d.ts +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js +3 -2
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/{has-many-repository.factory.d.ts → has-many.repository-factory.d.ts} +1 -1
- package/dist/relations/has-many/{has-many-repository.factory.js → has-many.repository-factory.js} +2 -2
- package/dist/relations/has-many/has-many.repository-factory.js.map +1 -0
- package/dist/relations/has-many/has-many.repository.d.ts +1 -1
- package/dist/relations/has-many/has-many.repository.js +5 -5
- package/dist/relations/has-many/has-many.repository.js.map +1 -1
- package/dist/relations/has-many/index.d.ts +2 -2
- package/dist/relations/has-many/index.js +2 -2
- package/dist/relations/has-one/has-one.helpers.js +1 -1
- package/dist/relations/has-one/has-one.helpers.js.map +1 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +1 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.js +2 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-one/{has-one-repository.factory.d.ts → has-one.repository-factory.d.ts} +1 -1
- package/dist/relations/has-one/{has-one-repository.factory.js → has-one.repository-factory.js} +2 -2
- package/dist/relations/has-one/has-one.repository-factory.js.map +1 -0
- package/dist/relations/has-one/index.d.ts +1 -1
- package/dist/relations/has-one/index.js +1 -1
- package/dist/relations/relation.helpers.d.ts +2 -2
- package/dist/relations/relation.helpers.js +10 -11
- package/dist/relations/relation.helpers.js.map +1 -1
- package/dist/relations/relation.types.d.ts +2 -2
- package/dist/repositories/kv.repository.bridge.js.map +1 -1
- package/dist/repositories/legacy-juggler-bridge.d.ts +2 -2
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
- package/package.json +18 -18
- package/src/connectors/connector.ts +41 -1
- package/src/define-model-class.ts +3 -4
- package/src/relations/belongs-to/{belongs-to-accessor.ts → belongs-to.accessor.ts} +1 -1
- package/src/relations/belongs-to/belongs-to.decorator.ts +2 -2
- package/src/relations/belongs-to/belongs-to.helpers.ts +1 -1
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +7 -4
- package/src/relations/belongs-to/belongs-to.repository.ts +1 -2
- package/src/relations/belongs-to/index.ts +1 -1
- package/src/relations/has-many/has-many-through.helpers.ts +3 -1
- package/src/relations/has-many/{has-many-through.inclusion.resolver.ts → has-many-through.inclusion-resolver.ts} +8 -11
- package/src/relations/has-many/{has-many-through-repository.factory.ts → has-many-through.repository-factory.ts} +1 -1
- package/src/relations/has-many/has-many.helpers.ts +1 -1
- package/src/relations/has-many/has-many.inclusion-resolver.ts +10 -5
- package/src/relations/has-many/{has-many-repository.factory.ts → has-many.repository-factory.ts} +4 -2
- package/src/relations/has-many/has-many.repository.ts +2 -2
- package/src/relations/has-many/index.ts +2 -2
- package/src/relations/has-one/has-one.helpers.ts +1 -1
- package/src/relations/has-one/has-one.inclusion-resolver.ts +7 -4
- package/src/relations/has-one/{has-one-repository.factory.ts → has-one.repository-factory.ts} +4 -2
- package/src/relations/has-one/index.ts +1 -1
- package/src/relations/relation.helpers.ts +14 -14
- package/src/relations/relation.types.ts +2 -2
- package/src/repositories/kv.repository.bridge.ts +4 -3
- package/src/repositories/legacy-juggler-bridge.ts +7 -2
- package/dist/relations/has-many/has-many-repository.factory.js.map +0 -1
- package/dist/relations/has-one/has-one-repository.factory.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,54 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.4.1](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.4.0...@loopback/repository@3.4.1) (2021-02-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @loopback/repository
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [3.4.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.3.0...@loopback/repository@3.4.0) (2021-01-21)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **repository:** unwanted object param manipulation ([8171744](https://github.com/strongloop/loopback-next/commit/8171744f473ab5a05e8f0758630a73c00ea8e7cf)), closes [#5814](https://github.com/strongloop/loopback-next/issues/5814)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* add connector interface enums ([763bf72](https://github.com/strongloop/loopback-next/commit/763bf720ae1031f8eba2f4a24f9a3bbc855d7781))
|
|
25
|
+
* normalize debug scopes in relations ([b3c52c1](https://github.com/strongloop/loopback-next/commit/b3c52c191fc98cc6fc2b304c838d5b15b62ddcb5))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# [3.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.2.1...@loopback/repository@3.3.0) (2020-12-07)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* leverage simpler syntax for inclusion ([3bcc61c](https://github.com/strongloop/loopback-next/commit/3bcc61c420672b81e4639e0e0fc7e92035e41219))
|
|
37
|
+
* **filter:** introduce simpler syntax for inclusion ([2fe32ac](https://github.com/strongloop/loopback-next/commit/2fe32ac0f9c820ff1df242ea6e32c972a4dee383))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## [3.2.1](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.2.0...@loopback/repository@3.2.1) (2020-11-18)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* **repository:** fix invalid inclusion relation name error code ([4a73bd1](https://github.com/strongloop/loopback-next/commit/4a73bd140f68e2d767410dd9ed74c8b8be1d141e))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
6
54
|
# [3.2.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.1.0...@loopback/repository@3.2.0) (2020-11-05)
|
|
7
55
|
|
|
8
56
|
|
|
@@ -1,12 +1,46 @@
|
|
|
1
1
|
import { AnyObject, Command, NamedParameters, Options, PositionalParameters } from '../common-types';
|
|
2
2
|
import { Model } from '../model';
|
|
3
|
+
/**
|
|
4
|
+
* Interfaces adopted by a {@link Connector}.
|
|
5
|
+
*
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
export declare namespace ConnectorInterfaces {
|
|
9
|
+
/**
|
|
10
|
+
* Strong relation interfaces adopted by a {@link Connector}
|
|
11
|
+
*
|
|
12
|
+
* @experimental
|
|
13
|
+
*/
|
|
14
|
+
const enum StrongRelation {
|
|
15
|
+
BELONGS_TO = "strongBelongsTo",
|
|
16
|
+
HAS_ONE = "strongHasOne",
|
|
17
|
+
HAS_MANY = "strongHasMany",
|
|
18
|
+
HAS_MANY_THROUGH = "strongHasManyThrough",
|
|
19
|
+
HAS_AND_BELONGS_TO_MANY = "strongHasAndBelongsToMany",
|
|
20
|
+
EMBEDS_ONE = "strongEmbedsOne",
|
|
21
|
+
EMBEDS_MANY = "strongEmbedsMany",
|
|
22
|
+
REFERNCES_MANY = "strongReferencesMany"
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Strong query join interfaces adopted by a {@link Connector}
|
|
26
|
+
*
|
|
27
|
+
* @experimental
|
|
28
|
+
*/
|
|
29
|
+
const enum StrongJoins {
|
|
30
|
+
INNER = "strongInnerJoin",
|
|
31
|
+
LEFT = "strongLeftJoin",
|
|
32
|
+
RIGHT = "strongRightJoin",
|
|
33
|
+
FULL = "strongFullJoin",
|
|
34
|
+
CARTESIAN = "strongCartesianJoin"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
3
37
|
/**
|
|
4
38
|
* Common properties/operations for connectors
|
|
5
39
|
*/
|
|
6
40
|
export interface Connector {
|
|
7
41
|
name: string;
|
|
8
42
|
configModel?: Model;
|
|
9
|
-
interfaces?: string[];
|
|
43
|
+
interfaces?: (string | ConnectorInterfaces.StrongRelation | ConnectorInterfaces.StrongJoins)[];
|
|
10
44
|
connect(): Promise<void>;
|
|
11
45
|
disconnect(): Promise<void>;
|
|
12
46
|
ping(): Promise<void>;
|
|
File without changes
|
|
@@ -10,7 +10,7 @@ const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
|
10
10
|
const belongs_to_helpers_1 = require("./belongs-to.helpers");
|
|
11
11
|
const belongs_to_inclusion_resolver_1 = require("./belongs-to.inclusion-resolver");
|
|
12
12
|
const belongs_to_repository_1 = require("./belongs-to.repository");
|
|
13
|
-
const debug = debug_1.default('loopback:repository:belongs-to
|
|
13
|
+
const debug = debug_1.default('loopback:repository:relations:belongs-to:accessor');
|
|
14
14
|
/**
|
|
15
15
|
* Enforces a BelongsTo constraint on a repository
|
|
16
16
|
*/
|
|
@@ -37,4 +37,4 @@ function createBelongsToAccessor(belongsToMetadata, targetRepoGetter, sourceRepo
|
|
|
37
37
|
return result;
|
|
38
38
|
}
|
|
39
39
|
exports.createBelongsToAccessor = createBelongsToAccessor;
|
|
40
|
-
//# sourceMappingURL=belongs-to
|
|
40
|
+
//# sourceMappingURL=belongs-to.accessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to
|
|
1
|
+
{"version":3,"file":"belongs-to.accessor.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.accessor.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AASjC,6DAA8D;AAC9D,mFAAiF;AACjF,mEAAmE;AAEnE,MAAM,KAAK,GAAG,eAAY,CAAC,mDAAmD,CAAC,CAAC;AAchF;;GAEG;AACH,SAAgB,uBAAuB,CAMrC,iBAAsC,EACtC,gBAAgE,EAChE,gBAAwD;IAExD,MAAM,IAAI,GAAG,6CAAwB,CAAC,iBAAiB,CAAC,CAAC;IACzD,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,MAAM,GAGR,KAAK,UAAU,4BAA4B,CAAC,QAAkB;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,UAA0B,CAAC,CAAC;QAChE,6CAA6C;QAC7C,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,CAAC,eAAe,EAAE;YACpB,OAAQ,SAA+B,CAAC;SACzC;QACD,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,kDAA0B,CACpD,gBAAgB,EAChB,UAAgC,CACjC,CAAC;QACF,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,CAAC,iBAAiB,GAAG,gEAAgC,CACzD,IAAI,EACJ,gBAAgB,CACjB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAxCD,0DAwCC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.belongsTo = void 0;
|
|
8
8
|
const core_1 = require("@loopback/core");
|
|
9
|
-
const
|
|
9
|
+
const decorators_1 = require("../../decorators");
|
|
10
10
|
const relation_decorator_1 = require("../relation.decorator");
|
|
11
11
|
const relation_types_1 = require("../relation.types");
|
|
12
12
|
/**
|
|
@@ -35,7 +35,7 @@ function belongsTo(targetResolver, definition, propertyDefinition) {
|
|
|
35
35
|
{
|
|
36
36
|
type: propType,
|
|
37
37
|
});
|
|
38
|
-
|
|
38
|
+
decorators_1.property(propMeta)(decoratedTarget, decoratedKey);
|
|
39
39
|
// @belongsTo() is typically decorating the foreign key property,
|
|
40
40
|
// e.g. customerId. We need to strip the trailing "Id" suffix from the name.
|
|
41
41
|
const relationName = decoratedKey.replace(/Id$/, '');
|
|
@@ -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,yCAAmE;AACnE,
|
|
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,yCAAmE;AACnE,iDAA0C;AAC1C,8DAA+C;AAE/C,sDAAoE;AAEpE;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,cAAiC,EACjC,UAAyC,EACzC,kBAAgD;IAEhD,OAAO,UAAU,eAAuB,EAAE,YAAoB;;QAC5D,MAAM,QAAQ,SACZ,wBAAiB,CAAC,wBAAwB,CACxC,eAAe,EACf,YAAY,CACb,mCAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,CAAC;QAEhC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,YAAY,GAAG,uBAAgB,CAAC,aAAa,CACjD,eAAe,EACf,YAAY,CACb,CAAC;YACF,MAAM,IAAI,KAAK,CACb,uCAAuC,YAAY,WAAW;gBAC5D,iEAAiE;gBACjE,qEAAqE;gBACrE,iEAAiE,CACpE,CAAC;SACH;QAED,MAAM,QAAQ,GAAuB,MAAM,CAAC,MAAM,CAChD,EAAE;QACF,oCAAoC;QACpC,kBAAkB;QAClB,uCAAuC;QACvC;YACE,IAAI,EAAE,QAAQ;SAIf,CACF,CAAC;QACF,qBAAQ,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;AA7DD,8BA6DC"}
|
|
@@ -11,7 +11,7 @@ const lodash_1 = require("lodash");
|
|
|
11
11
|
const errors_1 = require("../../errors");
|
|
12
12
|
const type_resolver_1 = require("../../type-resolver");
|
|
13
13
|
const relation_types_1 = require("../relation.types");
|
|
14
|
-
const debug = debug_1.default('loopback:repository:belongs-to
|
|
14
|
+
const debug = debug_1.default('loopback:repository:relations:belongs-to:helpers');
|
|
15
15
|
/**
|
|
16
16
|
* Resolves given belongsTo metadata if target is specified to be a resolver.
|
|
17
17
|
* Mainly used to infer what the `keyTo` property should be from the target's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.helpers.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.helpers.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAoE;AAEpE,MAAM,KAAK,GAAG,eAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"belongs-to.helpers.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.helpers.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAoE;AAEpE,MAAM,KAAK,GAAG,eAAY,CAAC,kDAAkD,CAAC,CAAC;AAW/E;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,YAAiC;IACxE,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,SAAS,EAAE;QAClE,MAAM,MAAM,GAAG,iCAAiC,CAAC;QACjD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,8BAAc,CAAC,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;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC;IACzC,KAAK,CAAC,2CAA2C,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAE5E,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,kBAAS,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;KACzC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC;IAC3D,KAAK,CAAC,+BAA+B,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAErE,IAAI,YAAY,CAAC,KAAK,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QAC9D,wEAAwE;QACxE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YACjC,OAAO;SACR,CAAgC,CAAC;KACnC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,MAAM,GAAG,GAAG,UAAU,8CAA8C,CAAC;QAC3E,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAAC,CAAC;AACzE,CAAC;AAhDD,4DAgDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Entity } from '../../model';
|
|
2
|
-
import { EntityCrudRepository } from '../../repositories
|
|
2
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
3
3
|
import { BelongsToDefinition, Getter, InclusionResolver } from '../relation.types';
|
|
4
4
|
/**
|
|
5
5
|
* Creates InclusionResolver for BelongsTo relation.
|
|
@@ -26,8 +26,9 @@ function createBelongsToInclusionResolver(meta, getTargetRepo) {
|
|
|
26
26
|
const sourceIds = entities.map(e => e[sourceKey]);
|
|
27
27
|
const targetKey = relationMeta.keyTo;
|
|
28
28
|
const dedupedSourceIds = relation_helpers_1.deduplicate(sourceIds);
|
|
29
|
+
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
29
30
|
const targetRepo = await getTargetRepo();
|
|
30
|
-
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, dedupedSourceIds.filter(e => e),
|
|
31
|
+
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, dedupedSourceIds.filter(e => e), scope, options);
|
|
31
32
|
return relation_helpers_1.flattenTargetsOfOneToOneRelation(sourceIds, targetsFound, targetKey);
|
|
32
33
|
};
|
|
33
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,0DAK6B;AAM7B,6DAA8D;AAE9D;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAK9C,IAAyB,EACzB,aAEC;IAED,MAAM,YAAY,GAAG,6CAAwB,CAAC,IAAI,CAAC,CAAC;IAEpD,OAAO,KAAK,UAAU,mBAAmB,CACvC,QAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"belongs-to.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,0DAK6B;AAM7B,6DAA8D;AAE9D;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAK9C,IAAyB,EACzB,aAEC;IAED,MAAM,YAAY,GAAG,6CAAwB,CAAC,IAAI,CAAC,CAAC;IAEpD,OAAO,KAAK,UAAU,mBAAmB,CACvC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,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;QAC5D,MAAM,gBAAgB,GAAG,8BAAW,CAAC,SAAS,CAAC,CAAC;QAEhD,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,oCAAiB,CAC1C,UAAU,EACV,SAAS,EACT,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/B,KAAK,EACL,OAAO,CACR,CAAC;QAEF,OAAO,mDAAgC,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC;AAtCD,4EAsCC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Getter } from '@loopback/core';
|
|
2
2
|
import { DataObject, Options } from '../../common-types';
|
|
3
3
|
import { Entity } from '../../model';
|
|
4
|
-
import { EntityCrudRepository } from '../../repositories
|
|
4
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
5
5
|
/**
|
|
6
6
|
* CRUD operations for a target repository of a BelongsTo relation
|
|
7
7
|
*/
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.DefaultBelongsToRepository = void 0;
|
|
8
8
|
const errors_1 = require("../../errors");
|
|
9
|
-
const
|
|
9
|
+
const repositories_1 = require("../../repositories");
|
|
10
10
|
class DefaultBelongsToRepository {
|
|
11
11
|
/**
|
|
12
12
|
* Constructor of DefaultBelongsToEntityCrudRepository
|
|
@@ -20,7 +20,7 @@ class DefaultBelongsToRepository {
|
|
|
20
20
|
}
|
|
21
21
|
async get(options) {
|
|
22
22
|
const targetRepo = await this.getTargetRepository();
|
|
23
|
-
const result = await targetRepo.find(
|
|
23
|
+
const result = await targetRepo.find(repositories_1.constrainFilter(undefined, this.constraint), options);
|
|
24
24
|
if (!result.length) {
|
|
25
25
|
// We don't have a direct access to the foreign key value here :(
|
|
26
26
|
const id = 'constraint ' + JSON.stringify(this.constraint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.repository.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAIhE,yCAAiD;AAEjD,
|
|
1
|
+
{"version":3,"file":"belongs-to.repository.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAIhE,yCAAiD;AAEjD,qDAAyE;AAezE,MAAa,0BAA0B;IAKrC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,OAAiB;QACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,8BAAe,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,EAC3C,OAAO,CACR,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,iEAAiE;YACjE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,IAAI,4BAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SAC3D;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACF;AA7BD,gEA6BC"}
|
|
@@ -7,6 +7,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
const tslib_1 = require("tslib");
|
|
8
8
|
tslib_1.__exportStar(require("./belongs-to.decorator"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./belongs-to.repository"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./belongs-to
|
|
10
|
+
tslib_1.__exportStar(require("./belongs-to.accessor"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./belongs-to.inclusion-resolver"), exports);
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -10,7 +10,7 @@ const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
|
10
10
|
const lodash_1 = require("lodash");
|
|
11
11
|
const __1 = require("../..");
|
|
12
12
|
const has_many_helpers_1 = require("./has-many.helpers");
|
|
13
|
-
const debug = debug_1.default('loopback:repository:has-many-through
|
|
13
|
+
const debug = debug_1.default('loopback:repository:relations:has-many-through:helpers');
|
|
14
14
|
/**
|
|
15
15
|
* Creates target constraint based on through models
|
|
16
16
|
* @param relationMeta - resolved hasManyThrough metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many-through.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.helpers.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AACjC,mCAAiC;AACjC,6BAOe;AACf,yDAA4D;AAE5D,MAAM,KAAK,GAAG,eAAY,
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { Entity } from '../../model';
|
|
2
|
-
import { EntityCrudRepository } from '../../repositories
|
|
2
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
3
3
|
import { Getter, HasManyDefinition, InclusionResolver } from '../relation.types';
|
|
4
4
|
/**
|
|
5
5
|
* Creates InclusionResolver for HasManyThrough relation.
|
|
@@ -9,7 +9,7 @@ const tslib_1 = require("tslib");
|
|
|
9
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
|
-
const debug = debug_1.default('loopback:repository:has-many-through
|
|
12
|
+
const debug = debug_1.default('loopback:repository:relations:has-many-through:inclusion-resolver');
|
|
13
13
|
/**
|
|
14
14
|
* Creates InclusionResolver for HasManyThrough relation.
|
|
15
15
|
* Notice that this function only generates the inclusionResolver.
|
|
@@ -52,13 +52,14 @@ function createHasManyThroughInclusionResolver(meta, getThroughRepo, getTargetRe
|
|
|
52
52
|
options);
|
|
53
53
|
const throughResult = relation_helpers_1.flattenTargetsOfOneToManyRelation(sourceIds, throughFound, throughKeyFrom);
|
|
54
54
|
const result = [];
|
|
55
|
+
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
55
56
|
// convert from through entities to the target entities
|
|
56
57
|
for (const entityList of throughResult) {
|
|
57
58
|
if (entityList) {
|
|
58
59
|
// get target ids from the through entities by foreign key
|
|
59
60
|
const targetIds = entityList.map(entity => entity[throughKeyTo]);
|
|
60
61
|
// the explicit types and casts are needed
|
|
61
|
-
const targetEntityList = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, targetIds,
|
|
62
|
+
const targetEntityList = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, targetIds, scope, options);
|
|
62
63
|
result.push(targetEntityList);
|
|
63
64
|
}
|
|
64
65
|
else {
|
|
@@ -71,4 +72,4 @@ function createHasManyThroughInclusionResolver(meta, getThroughRepo, getTargetRe
|
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
74
|
exports.createHasManyThroughInclusionResolver = createHasManyThroughInclusionResolver;
|
|
74
|
-
//# sourceMappingURL=has-many-through.inclusion
|
|
75
|
+
//# sourceMappingURL=has-many-through.inclusion-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many-through.inclusion
|
|
1
|
+
{"version":3,"file":"has-many-through.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,0DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,CACxB,mEAAmE,CACpE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAgB,qCAAqC,CAQnD,IAAuB,EACvB,cAEC,EACD,aAEC;IAED,MAAM,YAAY,GAAG,yCAAsB,CAAC,IAAI,CAAC,CAAC;IAElD,OAAO,KAAK,UAAU,yBAAyB,CAC7C,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;QAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,2CAA2C,YAAY,EAAE,CAC1D,CAAC;SACH;QACD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAA6B,CAAC;QACxE,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,OAA+B,CAAC;QAE5E,KAAK,CAAC,aAAa,EAAE;YACnB,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;YACZ,cAAc;SACf,CAAC,CAAC;QAEH,KAAK,CACH,gBAAgB,EAChB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAC7B,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;QAEzC,sBAAsB;QACtB,MAAM,YAAY,GAAG,MAAM,oCAAiB,CAC1C,WAAW,EACX,cAAc,EACd,SAAS,EACT,EAAE,EAAE,4CAA4C;QAChD,OAAO,CACR,CAAC;QAEF,MAAM,aAAa,GAAG,oDAAiC,CACrD,SAAS,EACT,YAAY,EACZ,cAAc,CACf,CAAC;QAEF,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAwB,CAAC;QAE3E,uDAAuD;QACvD,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE;YACtC,IAAI,UAAU,EAAE;gBACd,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAEjE,0CAA0C;gBAC1C,MAAM,gBAAgB,GAAG,MAAM,oCAAiB,CAI9C,UAAU,EAAE,SAAS,EAAG,SAA2B,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC/B;iBAAM;gBACL,8CAA8C;gBAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzB;SACF;QAED,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAjGD,sFAiGC"}
|
|
File without changes
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createHasManyThroughRepositoryFactory = void 0;
|
|
8
8
|
const has_many_through_helpers_1 = require("./has-many-through.helpers");
|
|
9
|
-
const has_many_through_inclusion_resolver_1 = require("./has-many-through.inclusion
|
|
9
|
+
const has_many_through_inclusion_resolver_1 = require("./has-many-through.inclusion-resolver");
|
|
10
10
|
const has_many_through_repository_1 = require("./has-many-through.repository");
|
|
11
11
|
function createHasManyThroughRepositoryFactory(relationMetadata, targetRepositoryGetter, throughRepositoryGetter) {
|
|
12
12
|
const meta = has_many_through_helpers_1.resolveHasManyThroughMetadata(relationMetadata);
|
|
@@ -34,4 +34,4 @@ function createHasManyThroughRepositoryFactory(relationMetadata, targetRepositor
|
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
36
36
|
exports.createHasManyThroughRepositoryFactory = createHasManyThroughRepositoryFactory;
|
|
37
|
-
//# sourceMappingURL=has-many-through-
|
|
37
|
+
//# sourceMappingURL=has-many-through.repository-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many-through-
|
|
1
|
+
{"version":3,"file":"has-many-through.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.repository-factory.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAUhE,yEAOoC;AACpC,+FAA4F;AAC5F,+EAGuC;AA4BvC,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;QACD,SAAS,YAAY,CAAC,eAAyB;YAC7C,OAAO,uDAA4B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC;QACD,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,YAAY,EACZ,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,2EAAqC,CAC9D,IAAI,EACJ,uBAAuB,EACvB,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAnED,sFAmEC"}
|
|
@@ -11,7 +11,7 @@ const lodash_1 = require("lodash");
|
|
|
11
11
|
const errors_1 = require("../../errors");
|
|
12
12
|
const type_resolver_1 = require("../../type-resolver");
|
|
13
13
|
const relation_types_1 = require("../relation.types");
|
|
14
|
-
const debug = debug_1.default('loopback:repository:has-many
|
|
14
|
+
const debug = debug_1.default('loopback:repository:relations:has-many:helpers');
|
|
15
15
|
/**
|
|
16
16
|
* Resolves given hasMany metadata if target is specified to be a resolver.
|
|
17
17
|
* Mainly used to infer what the `keyTo` property should be from the target's
|
|
@@ -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,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAkE;AAElE,MAAM,KAAK,GAAG,eAAY,CAAC,
|
|
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,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAkE;AAElE,MAAM,KAAK,GAAG,eAAY,CAAC,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,SAAG,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,kBAAS,CAAC,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,8BAAc,CAAC,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,5 +1,5 @@
|
|
|
1
1
|
import { Entity } from '../../model';
|
|
2
|
-
import { EntityCrudRepository } from '../../repositories
|
|
2
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
3
3
|
import { Getter, HasManyDefinition, InclusionResolver } from '../relation.types';
|
|
4
4
|
/**
|
|
5
5
|
* Creates InclusionResolver for HasMany relation.
|
|
@@ -9,7 +9,7 @@ const tslib_1 = require("tslib");
|
|
|
9
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
|
-
const debug = debug_1.default('loopback:repository:has-many
|
|
12
|
+
const debug = debug_1.default('loopback:repository:relations:has-many:inclusion-resolver');
|
|
13
13
|
/**
|
|
14
14
|
* Creates InclusionResolver for HasMany relation.
|
|
15
15
|
* Notice that this function only generates the inclusionResolver.
|
|
@@ -32,8 +32,9 @@ function createHasManyInclusionResolver(meta, getTargetRepo) {
|
|
|
32
32
|
const targetKey = relationMeta.keyTo;
|
|
33
33
|
debug('Parameters:', { sourceKey, sourceIds, targetKey });
|
|
34
34
|
debug('sourceId types', sourceIds.map(i => typeof i));
|
|
35
|
+
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
35
36
|
const targetRepo = await getTargetRepo();
|
|
36
|
-
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, sourceIds,
|
|
37
|
+
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, sourceIds, scope, options);
|
|
37
38
|
debug('Targets found:', targetsFound);
|
|
38
39
|
const result = relation_helpers_1.flattenTargetsOfOneToManyRelation(sourceIds, targetsFound, targetKey);
|
|
39
40
|
debug('fetchHasManyModels result', result);
|
|
@@ -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,0DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,
|
|
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,0DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,CACxB,2DAA2D,CAC5D,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAK5C,IAAuB,EACvB,aAEC;IAED,MAAM,YAAY,GAAG,yCAAsB,CAAC,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,oCAAiB,CAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,oDAAiC,CAC9C,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,5 +1,5 @@
|
|
|
1
1
|
import { Entity } from '../../model';
|
|
2
|
-
import { EntityCrudRepository } from '../../repositories
|
|
2
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
3
3
|
import { Getter, HasManyDefinition, InclusionResolver } from '../relation.types';
|
|
4
4
|
import { HasManyRepository } from './has-many.repository';
|
|
5
5
|
export interface HasManyRepositoryFactory<Target extends Entity, ForeignKeyType> {
|
package/dist/relations/has-many/{has-many-repository.factory.js → has-many.repository-factory.js}
RENAMED
|
@@ -10,7 +10,7 @@ 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");
|
|
13
|
-
const debug = debug_1.default('loopback:repository:has-many
|
|
13
|
+
const debug = debug_1.default('loopback:repository:relations:has-many:repository-factory');
|
|
14
14
|
/**
|
|
15
15
|
* Enforces a constraint on a repository based on a relationship contract
|
|
16
16
|
* between models. For example, if a Customer model is related to an Order model
|
|
@@ -36,4 +36,4 @@ function createHasManyRepositoryFactory(relationMetadata, targetRepositoryGetter
|
|
|
36
36
|
return result;
|
|
37
37
|
}
|
|
38
38
|
exports.createHasManyRepositoryFactory = createHasManyRepositoryFactory;
|
|
39
|
-
//# sourceMappingURL=has-many-
|
|
39
|
+
//# sourceMappingURL=has-many.repository-factory.js.map
|
|
@@ -0,0 +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,0DAAiC;AAKjC,yDAA0D;AAC1D,+EAA6E;AAC7E,+DAG+B;AAE/B,MAAM,KAAK,GAAG,eAAY,CACxB,2DAA2D,CAC5D,CAAC;AAiBF;;;;;;;;;;;;GAYG;AACH,SAAgB,8BAA8B,CAK5C,gBAAmC,EACnC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,yCAAsB,CAAC,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,4DAA8B,CACvD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,wEA0BC"}
|
|
@@ -2,7 +2,7 @@ import { Getter } from '@loopback/core';
|
|
|
2
2
|
import { Filter, Where } from '@loopback/filter';
|
|
3
3
|
import { Count, DataObject, Options } from '../../common-types';
|
|
4
4
|
import { Entity } from '../../model';
|
|
5
|
-
import { EntityCrudRepository } from '../../repositories
|
|
5
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
6
6
|
/**
|
|
7
7
|
* CRUD operations for a target repository of a HasMany relation
|
|
8
8
|
*/
|
|
@@ -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.DefaultHasManyRepository = void 0;
|
|
8
|
-
const
|
|
8
|
+
const repositories_1 = require("../../repositories");
|
|
9
9
|
class DefaultHasManyRepository {
|
|
10
10
|
/**
|
|
11
11
|
* Constructor of DefaultHasManyEntityCrudRepository
|
|
@@ -19,19 +19,19 @@ class DefaultHasManyRepository {
|
|
|
19
19
|
}
|
|
20
20
|
async create(targetModelData, options) {
|
|
21
21
|
const targetRepository = await this.getTargetRepository();
|
|
22
|
-
return targetRepository.create(
|
|
22
|
+
return targetRepository.create(repositories_1.constrainDataObject(targetModelData, this.constraint), options);
|
|
23
23
|
}
|
|
24
24
|
async find(filter, options) {
|
|
25
25
|
const targetRepository = await this.getTargetRepository();
|
|
26
|
-
return targetRepository.find(
|
|
26
|
+
return targetRepository.find(repositories_1.constrainFilter(filter, this.constraint), options);
|
|
27
27
|
}
|
|
28
28
|
async delete(where, options) {
|
|
29
29
|
const targetRepository = await this.getTargetRepository();
|
|
30
|
-
return targetRepository.deleteAll(
|
|
30
|
+
return targetRepository.deleteAll(repositories_1.constrainWhere(where, this.constraint), options);
|
|
31
31
|
}
|
|
32
32
|
async patch(dataObject, where, options) {
|
|
33
33
|
const targetRepository = await this.getTargetRepository();
|
|
34
|
-
return targetRepository.updateAll(
|
|
34
|
+
return targetRepository.updateAll(repositories_1.constrainDataObject(dataObject, this.constraint), repositories_1.constrainWhere(where, this.constraint), options);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
exports.DefaultHasManyRepository = DefaultHasManyRepository;
|
|
@@ -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,
|
|
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;IAKnC;;;;;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,kCAAmB,CAAC,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,8BAAe,CAAC,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,6BAAc,CAAC,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,kCAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,6BAAc,CAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA1DD,4DA0DC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './has-many-
|
|
2
|
-
export * from './has-many-through-
|
|
1
|
+
export * from './has-many.repository-factory';
|
|
2
|
+
export * from './has-many-through.repository-factory';
|
|
3
3
|
export * from './has-many-through.repository';
|
|
4
4
|
export * from './has-many.decorator';
|
|
5
5
|
export * from './has-many.inclusion-resolver';
|
|
@@ -5,8 +5,8 @@
|
|
|
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
|
-
tslib_1.__exportStar(require("./has-many-
|
|
9
|
-
tslib_1.__exportStar(require("./has-many-through-
|
|
8
|
+
tslib_1.__exportStar(require("./has-many.repository-factory"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./has-many-through.repository-factory"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./has-many-through.repository"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./has-many.decorator"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./has-many.inclusion-resolver"), exports);
|
|
@@ -11,7 +11,7 @@ const lodash_1 = require("lodash");
|
|
|
11
11
|
const errors_1 = require("../../errors");
|
|
12
12
|
const type_resolver_1 = require("../../type-resolver");
|
|
13
13
|
const relation_types_1 = require("../relation.types");
|
|
14
|
-
const debug = debug_1.default('loopback:repository:has-one
|
|
14
|
+
const debug = debug_1.default('loopback:repository:relations:has-one:helpers');
|
|
15
15
|
/**
|
|
16
16
|
* Resolves given hasOne metadata if target is specified to be a resolver.
|
|
17
17
|
* Mainly used to infer what the `keyTo` property should be from the target's
|
|
@@ -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,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,eAAY,CAAC,
|
|
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,0DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,eAAY,CAAC,+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,8BAAc,CAAC,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,SAAG,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,kBAAS,CAAC,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,5 +1,5 @@
|
|
|
1
1
|
import { Entity } from '../../model';
|
|
2
|
-
import { EntityCrudRepository } from '../../repositories
|
|
2
|
+
import { EntityCrudRepository } from '../../repositories';
|
|
3
3
|
import { Getter, HasOneDefinition, InclusionResolver } from '../relation.types';
|
|
4
4
|
/**
|
|
5
5
|
* Creates InclusionResolver for HasOne relation.
|
|
@@ -25,8 +25,9 @@ function createHasOneInclusionResolver(meta, getTargetRepo) {
|
|
|
25
25
|
const sourceKey = relationMeta.keyFrom;
|
|
26
26
|
const sourceIds = entities.map(e => e[sourceKey]);
|
|
27
27
|
const targetKey = relationMeta.keyTo;
|
|
28
|
+
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
28
29
|
const targetRepo = await getTargetRepo();
|
|
29
|
-
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, sourceIds,
|
|
30
|
+
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, sourceIds, scope, options);
|
|
30
31
|
return relation_helpers_1.flattenTargetsOfOneToOneRelation(sourceIds, targetsFound, targetKey);
|
|
31
32
|
};
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-one.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,0DAI6B;AAE7B,uDAAwD;AAExD;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAK3C,IAAsB,EACtB,aAEC;IAED,MAAM,YAAY,GAAG,uCAAqB,CAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"has-one.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,0DAI6B;AAE7B,uDAAwD;AAExD;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAK3C,IAAsB,EACtB,aAEC;IAED,MAAM,YAAY,GAAG,uCAAqB,CAAC,IAAI,CAAC,CAAC;IAEjD,OAAO,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,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,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,oCAAiB,CAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,OAAO,mDAAgC,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC;AArCD,sEAqCC"}
|