@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.
- package/LICENSE +1 -1
- package/dist/connectors/connector.js +1 -1
- package/dist/connectors/connector.js.map +1 -1
- package/dist/connectors/crud.connector.js +1 -1
- package/dist/connectors/crud.connector.js.map +1 -1
- package/dist/connectors/index.js +4 -4
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/kv.connector.js +1 -1
- package/dist/connectors/kv.connector.js.map +1 -1
- package/dist/datasource.js +1 -1
- package/dist/datasource.js.map +1 -1
- package/dist/decorators/index.js +4 -4
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/metadata.js +1 -1
- package/dist/decorators/metadata.js.map +1 -1
- package/dist/decorators/model.decorator.js +1 -1
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/repository.decorator.js +2 -2
- package/dist/decorators/repository.decorator.js.map +1 -1
- package/dist/define-model-class.js +2 -2
- package/dist/define-model-class.js.map +1 -1
- package/dist/define-repository-class.js +2 -2
- package/dist/define-repository-class.js.map +1 -1
- package/dist/errors/entity-not-found.error.js +1 -1
- package/dist/errors/entity-not-found.error.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +4 -3
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/invalid-polymorphism.error.d.ts +5 -0
- package/dist/errors/invalid-polymorphism.error.js +22 -0
- package/dist/errors/invalid-polymorphism.error.js.map +1 -0
- package/dist/errors/invalid-relation.error.d.ts +1 -1
- package/dist/errors/invalid-relation.error.js +1 -1
- package/dist/errors/invalid-relation.error.js.map +1 -1
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/dist/mixins/index.js +2 -2
- package/dist/mixins/index.js.map +1 -1
- package/dist/mixins/repository.mixin.d.ts +49 -50
- package/dist/mixins/repository.mixin.js +2 -2
- package/dist/mixins/repository.mixin.js.map +1 -1
- package/dist/model.d.ts +7 -1
- package/dist/model.js +15 -1
- package/dist/model.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.accessor.d.ts +6 -2
- package/dist/relations/belongs-to/belongs-to.accessor.js +20 -7
- package/dist/relations/belongs-to/belongs-to.accessor.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.decorator.js +1 -1
- package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.helpers.d.ts +3 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js +34 -10
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +5 -2
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +82 -9
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.d.ts +28 -5
- package/dist/relations/belongs-to/belongs-to.repository.js +50 -11
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
- package/dist/relations/belongs-to/index.d.ts +2 -2
- package/dist/relations/belongs-to/index.js +5 -5
- package/dist/relations/belongs-to/index.js.map +1 -1
- package/dist/relations/has-many/has-many-through.helpers.d.ts +3 -0
- package/dist/relations/has-many/has-many-through.helpers.js +27 -3
- 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 +3 -1
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js +94 -23
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many-through.repository-factory.d.ts +3 -1
- package/dist/relations/has-many/has-many-through.repository-factory.js +8 -2
- package/dist/relations/has-many/has-many-through.repository-factory.js.map +1 -1
- package/dist/relations/has-many/has-many-through.repository.d.ts +66 -11
- package/dist/relations/has-many/has-many-through.repository.js +212 -36
- package/dist/relations/has-many/has-many-through.repository.js.map +1 -1
- package/dist/relations/has-many/has-many.decorator.js +1 -1
- package/dist/relations/has-many/has-many.decorator.js.map +1 -1
- package/dist/relations/has-many/has-many.helpers.js +2 -2
- package/dist/relations/has-many/has-many.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js +2 -2
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many.repository-factory.js +2 -2
- package/dist/relations/has-many/has-many.repository-factory.js.map +1 -1
- package/dist/relations/has-many/has-many.repository.js +1 -1
- 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 +7 -7
- package/dist/relations/has-many/index.js.map +1 -1
- package/dist/relations/has-one/has-one.decorator.js +1 -1
- package/dist/relations/has-one/has-one.decorator.js.map +1 -1
- package/dist/relations/has-one/has-one.helpers.d.ts +3 -0
- package/dist/relations/has-one/has-one.helpers.js +36 -10
- package/dist/relations/has-one/has-one.helpers.js.map +1 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +6 -3
- package/dist/relations/has-one/has-one.inclusion-resolver.js +83 -8
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-one/has-one.repository-factory.d.ts +9 -3
- package/dist/relations/has-one/has-one.repository-factory.js +15 -5
- package/dist/relations/has-one/has-one.repository-factory.js.map +1 -1
- package/dist/relations/has-one/has-one.repository.d.ts +58 -11
- package/dist/relations/has-one/has-one.repository.js +119 -16
- package/dist/relations/has-one/has-one.repository.js.map +1 -1
- package/dist/relations/has-one/index.js +4 -4
- package/dist/relations/has-one/index.js.map +1 -1
- package/dist/relations/index.d.ts +2 -0
- package/dist/relations/index.js +9 -7
- package/dist/relations/index.js.map +1 -1
- package/dist/relations/references-many/index.d.ts +4 -0
- package/dist/relations/references-many/index.js +12 -0
- package/dist/relations/references-many/index.js.map +1 -0
- package/dist/relations/references-many/references-many.accessor.d.ts +17 -0
- package/dist/relations/references-many/references-many.accessor.js +40 -0
- package/dist/relations/references-many/references-many.accessor.js.map +1 -0
- package/dist/relations/references-many/references-many.decorator.d.ts +11 -0
- package/dist/relations/references-many/references-many.decorator.js +73 -0
- package/dist/relations/references-many/references-many.decorator.js.map +1 -0
- package/dist/relations/references-many/references-many.helpers.d.ts +17 -0
- package/dist/relations/references-many/references-many.helpers.js +63 -0
- package/dist/relations/references-many/references-many.helpers.js.map +1 -0
- package/dist/relations/references-many/references-many.inclusion-resolver.d.ts +14 -0
- package/dist/relations/references-many/references-many.inclusion-resolver.js +42 -0
- package/dist/relations/references-many/references-many.inclusion-resolver.js.map +1 -0
- package/dist/relations/references-many/references-many.repository.d.ts +28 -0
- package/dist/relations/references-many/references-many.repository.js +33 -0
- package/dist/relations/references-many/references-many.repository.js.map +1 -0
- package/dist/relations/relation.decorator.d.ts +0 -6
- package/dist/relations/relation.decorator.js +2 -14
- package/dist/relations/relation.decorator.js.map +1 -1
- package/dist/relations/relation.filter.solver.d.ts +2 -0
- package/dist/relations/relation.filter.solver.js +57 -0
- package/dist/relations/relation.filter.solver.js.map +1 -0
- package/dist/relations/relation.helpers.js +20 -5
- package/dist/relations/relation.helpers.js.map +1 -1
- package/dist/relations/relation.types.d.ts +52 -1
- package/dist/relations/relation.types.js +1 -1
- package/dist/relations/relation.types.js.map +1 -1
- package/dist/repositories/constraint-utils.js +1 -1
- package/dist/repositories/constraint-utils.js.map +1 -1
- package/dist/repositories/index.d.ts +2 -2
- package/dist/repositories/index.js +6 -6
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/kv.repository.bridge.js +1 -1
- package/dist/repositories/kv.repository.bridge.js.map +1 -1
- package/dist/repositories/kv.repository.d.ts +2 -2
- package/dist/repositories/kv.repository.js +1 -1
- package/dist/repositories/kv.repository.js.map +1 -1
- package/dist/repositories/legacy-juggler-bridge.d.ts +35 -8
- package/dist/repositories/legacy-juggler-bridge.js +39 -17
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
- package/dist/repositories/repository.js +1 -1
- package/dist/repositories/repository.js.map +1 -1
- package/dist/type-resolver.js +1 -1
- package/dist/type-resolver.js.map +1 -1
- package/dist/types/any.js +1 -1
- package/dist/types/any.js.map +1 -1
- package/dist/types/array.js +2 -2
- package/dist/types/array.js.map +1 -1
- package/dist/types/boolean.js +1 -1
- package/dist/types/boolean.js.map +1 -1
- package/dist/types/buffer.js +2 -2
- package/dist/types/buffer.js.map +1 -1
- package/dist/types/date.js +2 -2
- package/dist/types/date.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/model.js +1 -1
- package/dist/types/model.js.map +1 -1
- package/dist/types/null.js +1 -1
- package/dist/types/null.js.map +1 -1
- package/dist/types/number.js +2 -2
- package/dist/types/number.js.map +1 -1
- package/dist/types/object.js +2 -2
- package/dist/types/object.js.map +1 -1
- package/dist/types/string.js +1 -1
- package/dist/types/string.js.map +1 -1
- package/dist/types/type.js +1 -1
- package/dist/types/type.js.map +1 -1
- package/dist/types/union.js +2 -2
- package/dist/types/union.js.map +1 -1
- package/package.json +17 -17
- package/src/connectors/connector.ts +1 -1
- package/src/connectors/crud.connector.ts +1 -1
- package/src/connectors/index.ts +1 -1
- package/src/connectors/kv.connector.ts +1 -1
- package/src/datasource.ts +1 -1
- package/src/decorators/index.ts +1 -1
- package/src/decorators/metadata.ts +1 -1
- package/src/decorators/model.decorator.ts +1 -1
- package/src/decorators/repository.decorator.ts +1 -1
- package/src/define-model-class.ts +1 -1
- package/src/define-repository-class.ts +1 -1
- package/src/errors/entity-not-found.error.ts +1 -1
- package/src/errors/index.ts +2 -1
- package/src/errors/invalid-polymorphism.error.ts +28 -0
- package/src/errors/invalid-relation.error.ts +2 -2
- package/src/index.ts +1 -1
- package/src/mixins/index.ts +1 -1
- package/src/mixins/repository.mixin.ts +1 -6
- package/src/model.ts +20 -1
- package/src/relations/belongs-to/belongs-to.accessor.ts +36 -7
- package/src/relations/belongs-to/belongs-to.decorator.ts +2 -2
- package/src/relations/belongs-to/belongs-to.helpers.ts +37 -10
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +109 -18
- package/src/relations/belongs-to/belongs-to.repository.ts +78 -18
- package/src/relations/belongs-to/index.ts +3 -3
- package/src/relations/has-many/has-many-through.helpers.ts +28 -2
- package/src/relations/has-many/has-many-through.inclusion-resolver.ts +118 -27
- package/src/relations/has-many/has-many-through.repository-factory.ts +22 -4
- package/src/relations/has-many/has-many-through.repository.ts +344 -77
- package/src/relations/has-many/has-many.decorator.ts +1 -1
- package/src/relations/has-many/has-many.helpers.ts +1 -1
- package/src/relations/has-many/has-many.inclusion-resolver.ts +1 -1
- package/src/relations/has-many/has-many.repository-factory.ts +1 -1
- package/src/relations/has-many/has-many.repository.ts +1 -1
- package/src/relations/has-many/index.ts +3 -3
- package/src/relations/has-one/has-one.decorator.ts +1 -1
- package/src/relations/has-one/has-one.helpers.ts +41 -14
- package/src/relations/has-one/has-one.inclusion-resolver.ts +110 -16
- package/src/relations/has-one/has-one.repository-factory.ts +35 -7
- package/src/relations/has-one/has-one.repository.ts +189 -36
- package/src/relations/has-one/index.ts +1 -1
- package/src/relations/index.ts +3 -1
- package/src/relations/references-many/index.ts +9 -0
- package/src/relations/references-many/references-many.accessor.ts +76 -0
- package/src/relations/references-many/references-many.decorator.ts +100 -0
- package/src/relations/references-many/references-many.helpers.ts +82 -0
- package/src/relations/references-many/references-many.inclusion-resolver.ts +80 -0
- package/src/relations/references-many/references-many.repository.ts +55 -0
- package/src/relations/relation.decorator.ts +1 -13
- package/src/relations/relation.filter.solver.ts +56 -0
- package/src/relations/relation.helpers.ts +17 -2
- package/src/relations/relation.types.ts +52 -1
- package/src/repositories/constraint-utils.ts +1 -1
- package/src/repositories/index.ts +3 -3
- package/src/repositories/kv.repository.bridge.ts +1 -1
- package/src/repositories/kv.repository.ts +3 -3
- package/src/repositories/legacy-juggler-bridge.ts +79 -15
- package/src/repositories/repository.ts +1 -1
- package/src/type-resolver.ts +1 -1
- package/src/types/any.ts +1 -1
- package/src/types/array.ts +1 -1
- package/src/types/boolean.ts +1 -1
- package/src/types/buffer.ts +1 -1
- package/src/types/date.ts +1 -1
- package/src/types/index.ts +1 -1
- package/src/types/model.ts +1 -1
- package/src/types/null.ts +1 -1
- package/src/types/number.ts +1 -1
- package/src/types/object.ts +1 -1
- package/src/types/string.ts +1 -1
- package/src/types/type.ts +1 -1
- 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
|
-
|
|
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
|
-
|
|
34
|
-
const
|
|
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
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
const
|
|
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
|
|
74
|
-
const
|
|
75
|
-
|
|
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,
|
|
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 =
|
|
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,
|
|
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 =
|
|
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,
|
|
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 =
|
|
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,
|
|
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,
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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,
|
|
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,
|
|
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 =
|
|
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
|
-
|
|
53
|
+
keyTo = relationMeta.keyTo;
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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, {
|
|
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,
|
|
1
|
+
{"version":3,"file":"has-one.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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,
|
|
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>;
|