@loopback/repository 3.6.0 → 3.7.3
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/README.md +3 -3
- package/dist/connectors/index.js +3 -3
- package/dist/connectors/index.js.map +1 -1
- package/dist/decorators/index.js +3 -3
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/metadata.js +1 -1
- package/dist/decorators/repository.decorator.js +4 -4
- 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 +1 -1
- package/dist/define-repository-class.js.map +1 -1
- package/dist/errors/index.js +2 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mixins/index.js +1 -1
- package/dist/mixins/index.js.map +1 -1
- package/dist/mixins/repository.mixin.d.ts +3 -4
- package/dist/mixins/repository.mixin.js +10 -7
- package/dist/mixins/repository.mixin.js.map +1 -1
- package/dist/model.d.ts +1 -1
- package/dist/relations/belongs-to/belongs-to.accessor.js +5 -5
- package/dist/relations/belongs-to/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 +4 -4
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +4 -4
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.js +1 -1
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
- package/dist/relations/belongs-to/index.js +4 -4
- package/dist/relations/belongs-to/index.js.map +1 -1
- package/dist/relations/has-many/has-many-through.helpers.js +8 -8
- package/dist/relations/has-many/has-many-through.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js +9 -6
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many-through.repository-factory.js +7 -7
- 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 +11 -0
- package/dist/relations/has-many/has-many-through.repository.js +19 -10
- 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 +4 -4
- package/dist/relations/has-many/has-many.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js +5 -5
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many.repository-factory.js +4 -4
- package/dist/relations/has-many/has-many.repository-factory.js.map +1 -1
- package/dist/relations/has-many/has-many.repository.js +4 -4
- package/dist/relations/has-many/has-many.repository.js.map +1 -1
- package/dist/relations/has-many/index.js +6 -6
- 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.js +4 -4
- package/dist/relations/has-one/has-one.helpers.js.map +1 -1
- package/dist/relations/has-one/has-one.inclusion-resolver.js +3 -3
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-one/has-one.repository-factory.js +4 -4
- package/dist/relations/has-one/has-one.repository-factory.js.map +1 -1
- package/dist/relations/has-one/has-one.repository.js +4 -4
- package/dist/relations/has-one/has-one.repository.js.map +1 -1
- package/dist/relations/has-one/index.js +3 -3
- package/dist/relations/has-one/index.js.map +1 -1
- package/dist/relations/index.js +6 -6
- package/dist/relations/index.js.map +1 -1
- package/dist/relations/relation.decorator.js +1 -1
- package/dist/relations/relation.decorator.js.map +1 -1
- package/dist/relations/relation.helpers.d.ts +3 -1
- package/dist/relations/relation.helpers.js +47 -14
- package/dist/relations/relation.helpers.js.map +1 -1
- package/dist/repositories/constraint-utils.js +4 -4
- package/dist/repositories/constraint-utils.js.map +1 -1
- package/dist/repositories/index.js +5 -5
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/kv.repository.bridge.js +9 -8
- package/dist/repositories/kv.repository.bridge.js.map +1 -1
- package/dist/repositories/legacy-juggler-bridge.js +13 -13
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -1
- package/dist/repositories/repository.js.map +1 -1
- package/dist/types/array.js +1 -1
- package/dist/types/array.js.map +1 -1
- package/dist/types/buffer.js +1 -1
- package/dist/types/buffer.js.map +1 -1
- package/dist/types/date.js +1 -1
- package/dist/types/date.js.map +1 -1
- package/dist/types/number.js +1 -1
- package/dist/types/number.js.map +1 -1
- package/dist/types/object.js +1 -1
- package/dist/types/object.js.map +1 -1
- package/dist/types/union.js +1 -1
- package/dist/types/union.js.map +1 -1
- package/package.json +17 -17
- package/src/decorators/metadata.ts +1 -1
- package/src/define-model-class.ts +2 -2
- package/src/define-repository-class.ts +4 -4
- package/src/mixins/repository.mixin.ts +11 -8
- package/src/model.ts +1 -1
- package/src/relations/belongs-to/belongs-to.accessor.ts +21 -23
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +1 -1
- package/src/relations/belongs-to/belongs-to.repository.ts +3 -2
- package/src/relations/has-many/has-many-through.helpers.ts +4 -4
- package/src/relations/has-many/has-many-through.inclusion-resolver.ts +5 -2
- package/src/relations/has-many/has-many-through.repository-factory.ts +2 -2
- package/src/relations/has-many/has-many-through.repository.ts +44 -15
- package/src/relations/has-many/has-many.inclusion-resolver.ts +1 -1
- package/src/relations/has-many/has-many.repository-factory.ts +2 -2
- package/src/relations/has-many/has-many.repository.ts +3 -2
- package/src/relations/has-one/has-one.inclusion-resolver.ts +1 -1
- package/src/relations/has-one/has-one.repository-factory.ts +2 -2
- package/src/relations/has-one/has-one.repository.ts +3 -2
- package/src/relations/relation.helpers.ts +43 -12
- package/src/repositories/kv.repository.bridge.ts +4 -4
- package/src/repositories/legacy-juggler-bridge.ts +11 -9
- package/src/repositories/repository.ts +5 -4
- package/src/type-resolver.ts +1 -1
- package/CHANGELOG.md +0 -1925
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.resolveHasManyThroughMetadata = exports.createThroughConstraintFromTarget = exports.getTargetIdsFromTargetModels = exports.createThroughConstraintFromSource = exports.getTargetKeysFromThroughModels = exports.createTargetConstraintFromThrough = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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:relations:has-many-through:helpers');
|
|
13
|
+
const debug = (0, 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
|
|
@@ -100,7 +100,7 @@ function getTargetKeysFromThroughModels(relationMeta, throughInstances) {
|
|
|
100
100
|
const targetFkName = relationMeta.through.keyTo;
|
|
101
101
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
102
102
|
let fkValues = throughInstances.map((throughInstance) => throughInstance[targetFkName]);
|
|
103
|
-
fkValues = __1.deduplicate(fkValues);
|
|
103
|
+
fkValues = (0, __1.deduplicate)(fkValues);
|
|
104
104
|
return fkValues;
|
|
105
105
|
}
|
|
106
106
|
exports.getTargetKeysFromThroughModels = getTargetKeysFromThroughModels;
|
|
@@ -174,7 +174,7 @@ function getTargetIdsFromTargetModels(relationMeta, targetInstances) {
|
|
|
174
174
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
175
175
|
let ids = [];
|
|
176
176
|
ids = targetInstances.map((targetInstance) => targetInstance[targetId]);
|
|
177
|
-
ids = __1.deduplicate(ids);
|
|
177
|
+
ids = (0, __1.deduplicate)(ids);
|
|
178
178
|
return ids;
|
|
179
179
|
}
|
|
180
180
|
exports.getTargetIdsFromTargetModels = getTargetIdsFromTargetModels;
|
|
@@ -227,12 +227,12 @@ exports.createThroughConstraintFromTarget = createThroughConstraintFromTarget;
|
|
|
227
227
|
function resolveHasManyThroughMetadata(relationMeta) {
|
|
228
228
|
var _a, _b, _c, _d, _e, _f;
|
|
229
229
|
// some checks and relationMeta.keyFrom are handled in here
|
|
230
|
-
relationMeta = has_many_helpers_1.resolveHasManyMetaHelper(relationMeta);
|
|
230
|
+
relationMeta = (0, has_many_helpers_1.resolveHasManyMetaHelper)(relationMeta);
|
|
231
231
|
if (!relationMeta.through) {
|
|
232
232
|
const reason = 'through must be specified';
|
|
233
233
|
throw new __1.InvalidRelationError(reason, relationMeta);
|
|
234
234
|
}
|
|
235
|
-
if (!__1.isTypeResolver((_a = relationMeta.through) === null || _a === void 0 ? void 0 : _a.model)) {
|
|
235
|
+
if (!(0, __1.isTypeResolver)((_a = relationMeta.through) === null || _a === void 0 ? void 0 : _a.model)) {
|
|
236
236
|
const reason = 'through.model must be a type resolver';
|
|
237
237
|
throw new __1.InvalidRelationError(reason, relationMeta);
|
|
238
238
|
}
|
|
@@ -253,12 +253,12 @@ function resolveHasManyThroughMetadata(relationMeta) {
|
|
|
253
253
|
const sourceModel = relationMeta.source;
|
|
254
254
|
debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
|
|
255
255
|
debug('Resolved model %s from given metadata: %o', throughModel.modelName, throughModel);
|
|
256
|
-
const sourceFkName = (_d = relationMeta.through.keyFrom) !== null && _d !== void 0 ? _d : lodash_1.camelCase(sourceModel.modelName + '_id');
|
|
256
|
+
const sourceFkName = (_d = relationMeta.through.keyFrom) !== null && _d !== void 0 ? _d : (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
|
|
257
257
|
if (!throughModelProperties[sourceFkName]) {
|
|
258
258
|
const reason = `through model ${throughModel.name} is missing definition of source foreign key`;
|
|
259
259
|
throw new __1.InvalidRelationError(reason, relationMeta);
|
|
260
260
|
}
|
|
261
|
-
const targetFkName = (_e = relationMeta.through.keyTo) !== null && _e !== void 0 ? _e : lodash_1.camelCase(targetModel.modelName + '_id');
|
|
261
|
+
const targetFkName = (_e = relationMeta.through.keyTo) !== null && _e !== void 0 ? _e : (0, lodash_1.camelCase)(targetModel.modelName + '_id');
|
|
262
262
|
if (!throughModelProperties[targetFkName]) {
|
|
263
263
|
const reason = `through model ${throughModel.name} is missing definition of target foreign key`;
|
|
264
264
|
throw new __1.InvalidRelationError(reason, relationMeta);
|
|
@@ -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
|
|
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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"}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createHasManyThroughInclusionResolver = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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:relations:has-many-through:inclusion-resolver');
|
|
12
|
+
const debug = (0, 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.
|
|
@@ -23,7 +23,7 @@ const debug = debug_1.default('loopback:repository:relations:has-many-through:in
|
|
|
23
23
|
* are
|
|
24
24
|
*/
|
|
25
25
|
function createHasManyThroughInclusionResolver(meta, getThroughRepo, getTargetRepo) {
|
|
26
|
-
const relationMeta = has_many_helpers_1.resolveHasManyMetadata(meta);
|
|
26
|
+
const relationMeta = (0, has_many_helpers_1.resolveHasManyMetadata)(meta);
|
|
27
27
|
return async function fetchHasManyThroughModels(entities, inclusion, options) {
|
|
28
28
|
if (!entities.length)
|
|
29
29
|
return [];
|
|
@@ -48,9 +48,9 @@ function createHasManyThroughInclusionResolver(meta, getThroughRepo, getTargetRe
|
|
|
48
48
|
const throughRepo = await getThroughRepo();
|
|
49
49
|
const targetRepo = await getTargetRepo();
|
|
50
50
|
// find through models
|
|
51
|
-
const throughFound = await relation_helpers_1.findByForeignKeys(throughRepo, throughKeyFrom, sourceIds, {}, // scope will be applied at the target level
|
|
51
|
+
const throughFound = await (0, relation_helpers_1.findByForeignKeys)(throughRepo, throughKeyFrom, sourceIds, {}, // scope will be applied at the target level
|
|
52
52
|
options);
|
|
53
|
-
const throughResult = relation_helpers_1.flattenTargetsOfOneToManyRelation(sourceIds, throughFound, throughKeyFrom);
|
|
53
|
+
const throughResult = (0, relation_helpers_1.flattenTargetsOfOneToManyRelation)(sourceIds, throughFound, throughKeyFrom);
|
|
54
54
|
const result = [];
|
|
55
55
|
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
56
56
|
// convert from through entities to the target entities
|
|
@@ -59,7 +59,10 @@ function createHasManyThroughInclusionResolver(meta, getThroughRepo, getTargetRe
|
|
|
59
59
|
// get target ids from the through entities by foreign key
|
|
60
60
|
const targetIds = entityList.map(entity => entity[throughKeyTo]);
|
|
61
61
|
// the explicit types and casts are needed
|
|
62
|
-
const targetEntityList = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, targetIds, scope,
|
|
62
|
+
const targetEntityList = await (0, relation_helpers_1.findByForeignKeys)(targetRepo, targetKey, targetIds, scope, {
|
|
63
|
+
...options,
|
|
64
|
+
isThroughModelInclude: true,
|
|
65
|
+
});
|
|
63
66
|
result.push(targetEntityList);
|
|
64
67
|
}
|
|
65
68
|
else {
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,+DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,mEAAmE,CACpE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAgB,qCAAqC,CAQnD,IAAuB,EACvB,cAEC,EACD,aAEC;IAED,MAAM,YAAY,GAAG,IAAA,yCAAsB,EAAC,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,IAAA,oCAAiB,EAC1C,WAAW,EACX,cAAc,EACd,SAAS,EACT,EAAE,EAAE,4CAA4C;QAChD,OAAO,CACR,CAAC;QAEF,MAAM,aAAa,GAAG,IAAA,oDAAiC,EACrD,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,IAAA,oCAAiB,EAI9C,UAAU,EAAE,SAAS,EAAE,SAA0B,EAAE,KAAK,EAAE;oBAC1D,GAAG,OAAO;oBACV,qBAAqB,EAAE,IAAI;iBAC5B,CAAC,CAAC;gBACH,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;AApGD,sFAoGC"}
|
|
@@ -9,28 +9,28 @@ const has_many_through_helpers_1 = require("./has-many-through.helpers");
|
|
|
9
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
|
-
const meta = has_many_through_helpers_1.resolveHasManyThroughMetadata(relationMetadata);
|
|
12
|
+
const meta = (0, has_many_through_helpers_1.resolveHasManyThroughMetadata)(relationMetadata);
|
|
13
13
|
const result = function (fkValue) {
|
|
14
14
|
function getTargetConstraintFromThroughModels(throughInstances) {
|
|
15
|
-
return has_many_through_helpers_1.createTargetConstraintFromThrough(meta, throughInstances);
|
|
15
|
+
return (0, has_many_through_helpers_1.createTargetConstraintFromThrough)(meta, throughInstances);
|
|
16
16
|
}
|
|
17
17
|
function getTargetKeys(throughInstances) {
|
|
18
|
-
return has_many_through_helpers_1.getTargetKeysFromThroughModels(meta, throughInstances);
|
|
18
|
+
return (0, has_many_through_helpers_1.getTargetKeysFromThroughModels)(meta, throughInstances);
|
|
19
19
|
}
|
|
20
20
|
function getThroughConstraintFromSource() {
|
|
21
|
-
const constraint = has_many_through_helpers_1.createThroughConstraintFromSource(meta, fkValue);
|
|
21
|
+
const constraint = (0, has_many_through_helpers_1.createThroughConstraintFromSource)(meta, fkValue);
|
|
22
22
|
return constraint;
|
|
23
23
|
}
|
|
24
24
|
function getTargetIds(targetInstances) {
|
|
25
|
-
return has_many_through_helpers_1.getTargetIdsFromTargetModels(meta, targetInstances);
|
|
25
|
+
return (0, has_many_through_helpers_1.getTargetIdsFromTargetModels)(meta, targetInstances);
|
|
26
26
|
}
|
|
27
27
|
function getThroughConstraintFromTarget(fkValues) {
|
|
28
|
-
const constraint = has_many_through_helpers_1.createThroughConstraintFromTarget(meta, fkValues);
|
|
28
|
+
const constraint = (0, has_many_through_helpers_1.createThroughConstraintFromTarget)(meta, fkValues);
|
|
29
29
|
return constraint;
|
|
30
30
|
}
|
|
31
31
|
return new has_many_through_repository_1.DefaultHasManyThroughRepository(targetRepositoryGetter, throughRepositoryGetter, getTargetConstraintFromThroughModels, getTargetKeys, getThroughConstraintFromSource, getTargetIds, getThroughConstraintFromTarget);
|
|
32
32
|
};
|
|
33
|
-
result.inclusionResolver = has_many_through_inclusion_resolver_1.createHasManyThroughInclusionResolver(meta, throughRepositoryGetter, targetRepositoryGetter);
|
|
33
|
+
result.inclusionResolver = (0, has_many_through_inclusion_resolver_1.createHasManyThroughInclusionResolver)(meta, throughRepositoryGetter, targetRepositoryGetter);
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
36
36
|
exports.createHasManyThroughRepositoryFactory = createHasManyThroughRepositoryFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many-through.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.repository-factory.ts"],"names":[],"mappings":";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,
|
|
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,IAAA,wDAA6B,EAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,UAAU,OAAiB;QACxC,SAAS,oCAAoC,CAC3C,gBAA2B;YAE3B,OAAO,IAAA,4DAAiC,EACtC,IAAI,EACJ,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,SAAS,aAAa,CAAC,gBAA2B;YAChD,OAAO,IAAA,yDAA8B,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAChE,CAAC;QACD,SAAS,8BAA8B;YACrC,MAAM,UAAU,GAAwB,IAAA,4DAAiC,EAGvE,IAAI,EAAE,OAAO,CAAC,CAAC;YACjB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,SAAS,YAAY,CAAC,eAAyB;YAC7C,OAAO,IAAA,uDAA4B,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC7D,CAAC;QACD,SAAS,8BAA8B,CACrC,QAAoB;YAEpB,MAAM,UAAU,GAAwB,IAAA,4DAAiC,EAGvE,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,IAAA,2EAAqC,EAC9D,IAAI,EACJ,uBAAuB,EACvB,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAnED,sFAmEC"}
|
|
@@ -63,6 +63,14 @@ export interface HasManyThroughRepository<Target extends Entity, TargetID, Throu
|
|
|
63
63
|
unlink(targetModelId: TargetID, options?: Options & {
|
|
64
64
|
throughOptions?: Options;
|
|
65
65
|
}): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Remove all association to an existing target model instance
|
|
68
|
+
* @param options
|
|
69
|
+
* @return A promise which resolves to void
|
|
70
|
+
*/
|
|
71
|
+
unlinkAll(options?: Options & {
|
|
72
|
+
throughOptions?: Options;
|
|
73
|
+
}): Promise<void>;
|
|
66
74
|
}
|
|
67
75
|
/**
|
|
68
76
|
* a class for CRUD operations for hasManyThrough relation.
|
|
@@ -100,4 +108,7 @@ export declare class DefaultHasManyThroughRepository<TargetEntity extends Entity
|
|
|
100
108
|
unlink(targetId: TargetID, options?: Options & {
|
|
101
109
|
throughOptions?: Options;
|
|
102
110
|
}): Promise<void>;
|
|
111
|
+
unlinkAll(options?: Options & {
|
|
112
|
+
throughOptions?: Options;
|
|
113
|
+
}): Promise<void>;
|
|
103
114
|
}
|
|
@@ -33,15 +33,15 @@ class DefaultHasManyThroughRepository {
|
|
|
33
33
|
const targetRepository = await this.getTargetRepository();
|
|
34
34
|
const throughRepository = await this.getThroughRepository();
|
|
35
35
|
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
36
|
-
const throughInstances = await throughRepository.find(__1.constrainFilter(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
36
|
+
const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
37
37
|
const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
|
|
38
|
-
return targetRepository.find(__1.constrainFilter(filter, targetConstraint), options);
|
|
38
|
+
return targetRepository.find((0, __1.constrainFilter)(filter, targetConstraint), options);
|
|
39
39
|
}
|
|
40
40
|
async delete(where, options) {
|
|
41
41
|
const targetRepository = await this.getTargetRepository();
|
|
42
42
|
const throughRepository = await this.getThroughRepository();
|
|
43
43
|
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
44
|
-
const throughInstances = await throughRepository.find(__1.constrainFilter(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
44
|
+
const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
45
45
|
if (where) {
|
|
46
46
|
// only delete related through models
|
|
47
47
|
// TODO(Agnes): this performance can be improved by only fetching related data
|
|
@@ -51,7 +51,7 @@ class DefaultHasManyThroughRepository {
|
|
|
51
51
|
if (targetIds.length > 0) {
|
|
52
52
|
const targetConstraint = this.getThroughConstraintFromTarget(targetIds);
|
|
53
53
|
const constraints = { ...targetConstraint, ...sourceConstraint };
|
|
54
|
-
await throughRepository.deleteAll(__1.constrainDataObject({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
54
|
+
await throughRepository.deleteAll((0, __1.constrainDataObject)({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
@@ -59,20 +59,20 @@ class DefaultHasManyThroughRepository {
|
|
|
59
59
|
const targetFkValues = this.getTargetKeys(throughInstances);
|
|
60
60
|
// delete through instances that have the targets that are going to be deleted
|
|
61
61
|
const throughFkConstraint = this.getThroughConstraintFromTarget(targetFkValues);
|
|
62
|
-
await throughRepository.deleteAll(__1.constrainWhereOr({}, [sourceConstraint, throughFkConstraint]));
|
|
62
|
+
await throughRepository.deleteAll((0, __1.constrainWhereOr)({}, [sourceConstraint, throughFkConstraint]));
|
|
63
63
|
}
|
|
64
64
|
// delete target(s)
|
|
65
65
|
const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
|
|
66
|
-
return targetRepository.deleteAll(__1.constrainWhere(where, targetConstraint), options);
|
|
66
|
+
return targetRepository.deleteAll((0, __1.constrainWhere)(where, targetConstraint), options);
|
|
67
67
|
}
|
|
68
68
|
// only allows patch target instances for now
|
|
69
69
|
async patch(dataObject, where, options) {
|
|
70
70
|
const targetRepository = await this.getTargetRepository();
|
|
71
71
|
const throughRepository = await this.getThroughRepository();
|
|
72
72
|
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
73
|
-
const throughInstances = await throughRepository.find(__1.constrainFilter(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
73
|
+
const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
74
74
|
const targetConstraint = this.getTargetConstraintFromThroughModels(throughInstances);
|
|
75
|
-
return targetRepository.updateAll(__1.constrainDataObject(dataObject, targetConstraint), __1.constrainWhere(where, targetConstraint), options);
|
|
75
|
+
return targetRepository.updateAll((0, __1.constrainDataObject)(dataObject, targetConstraint), (0, __1.constrainWhere)(where, targetConstraint), options);
|
|
76
76
|
}
|
|
77
77
|
async link(targetId, options) {
|
|
78
78
|
var _a;
|
|
@@ -80,14 +80,23 @@ class DefaultHasManyThroughRepository {
|
|
|
80
80
|
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
81
81
|
const targetConstraint = this.getThroughConstraintFromTarget([targetId]);
|
|
82
82
|
const constraints = { ...targetConstraint, ...sourceConstraint };
|
|
83
|
-
await throughRepository.create(__1.constrainDataObject((_a = options === null || options === void 0 ? void 0 : options.throughData) !== null && _a !== void 0 ? _a : {}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
83
|
+
await throughRepository.create((0, __1.constrainDataObject)((_a = options === null || options === void 0 ? void 0 : options.throughData) !== null && _a !== void 0 ? _a : {}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
84
84
|
}
|
|
85
85
|
async unlink(targetId, options) {
|
|
86
86
|
const throughRepository = await this.getThroughRepository();
|
|
87
87
|
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
88
88
|
const targetConstraint = this.getThroughConstraintFromTarget([targetId]);
|
|
89
89
|
const constraints = { ...targetConstraint, ...sourceConstraint };
|
|
90
|
-
await throughRepository.deleteAll(__1.constrainDataObject({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
90
|
+
await throughRepository.deleteAll((0, __1.constrainDataObject)({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
91
|
+
}
|
|
92
|
+
async unlinkAll(options) {
|
|
93
|
+
const throughRepository = await this.getThroughRepository();
|
|
94
|
+
const sourceConstraint = this.getThroughConstraintFromSource();
|
|
95
|
+
const throughInstances = await throughRepository.find((0, __1.constrainFilter)(undefined, sourceConstraint), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
96
|
+
const targetFkValues = this.getTargetKeys(throughInstances);
|
|
97
|
+
const targetConstraint = this.getThroughConstraintFromTarget(targetFkValues);
|
|
98
|
+
const constraints = { ...targetConstraint, ...sourceConstraint };
|
|
99
|
+
await throughRepository.deleteAll((0, __1.constrainDataObject)({}, constraints), options === null || options === void 0 ? void 0 : options.throughOptions);
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
102
|
exports.DefaultHasManyThroughRepository = DefaultHasManyThroughRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many-through.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-through.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,6BAae;
|
|
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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"}
|
|
@@ -29,7 +29,7 @@ function hasMany(targetResolver, definition) {
|
|
|
29
29
|
source: decoratedTarget.constructor,
|
|
30
30
|
target: targetResolver,
|
|
31
31
|
});
|
|
32
|
-
relation_decorator_1.relation(meta)(decoratedTarget, key);
|
|
32
|
+
(0, relation_decorator_1.relation)(meta)(decoratedTarget, key);
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
exports.hasMany = hasMany;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,OAAO,CACrB,cAAiC,EACjC,UAAuC;IAEvC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,MAAM,IAAI,GAAsB,MAAM,CAAC,MAAM;QAC3C,kDAAkD;QAClD,EAAC,IAAI,EAAE,GAAG,EAAC;QACX,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,OAAO;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,6BAAQ,
|
|
1
|
+
{"version":3,"file":"has-many.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAkE;AAElE;;;;;;;GAOG;AACH,SAAgB,OAAO,CACrB,cAAiC,EACjC,UAAuC;IAEvC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,MAAM,IAAI,GAAsB,MAAM,CAAC,MAAM;QAC3C,kDAAkD;QAClD,EAAC,IAAI,EAAE,GAAG,EAAC;QACX,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,OAAO;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AApBD,0BAoBC"}
|
|
@@ -6,12 +6,12 @@
|
|
|
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 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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");
|
|
13
13
|
const relation_types_1 = require("../relation.types");
|
|
14
|
-
const debug = debug_1.default('loopback:repository:relations:has-many:helpers');
|
|
14
|
+
const debug = (0, 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
|
|
@@ -31,7 +31,7 @@ function resolveHasManyMetadata(relationMeta) {
|
|
|
31
31
|
return relationMeta;
|
|
32
32
|
}
|
|
33
33
|
debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
|
|
34
|
-
const defaultFkName = lodash_1.camelCase(sourceModel.modelName + '_id');
|
|
34
|
+
const defaultFkName = (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
|
|
35
35
|
const hasDefaultFkProperty = targetModelProperties[defaultFkName];
|
|
36
36
|
if (!hasDefaultFkProperty) {
|
|
37
37
|
const reason = `target model ${targetModel.name} is missing definition of foreign key ${defaultFkName}`;
|
|
@@ -55,7 +55,7 @@ function resolveHasManyMetaHelper(relationMeta) {
|
|
|
55
55
|
const reason = 'relation type must be HasMany';
|
|
56
56
|
throw new errors_1.InvalidRelationError(reason, relationMeta);
|
|
57
57
|
}
|
|
58
|
-
if (!type_resolver_1.isTypeResolver(relationMeta.target)) {
|
|
58
|
+
if (!(0, type_resolver_1.isTypeResolver)(relationMeta.target)) {
|
|
59
59
|
const reason = 'target must be a type resolver';
|
|
60
60
|
throw new errors_1.InvalidRelationError(reason, relationMeta);
|
|
61
61
|
}
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"has-many.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAkE;AAElE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,gDAAgD,CAAC,CAAC;AAW7E;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,YAA+B;;IAE/B,2DAA2D;IAC3D,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IAExC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,YAAyC,CAAC;KAClD;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;QACjC,KAAK,EAAE,aAAa;KACQ,CAAC,CAAC;AAClC,CAAC;AAhCD,wDAgCC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,YAA+B;IAE/B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,OAAO,EAAE;QAChE,MAAM,MAAM,GAAG,+BAA+B,CAAC;QAC/C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IACD,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAAsB,CAAC;AACrE,CAAC;AA5BD,4DA4BC"}
|
|
@@ -6,10 +6,10 @@
|
|
|
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 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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:relations:has-many:inclusion-resolver');
|
|
12
|
+
const debug = (0, 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.
|
|
@@ -21,7 +21,7 @@ const debug = debug_1.default('loopback:repository:relations:has-many:inclusion-
|
|
|
21
21
|
* @param getTargetRepo - target repository i.e where related instances are
|
|
22
22
|
*/
|
|
23
23
|
function createHasManyInclusionResolver(meta, getTargetRepo) {
|
|
24
|
-
const relationMeta = has_many_helpers_1.resolveHasManyMetadata(meta);
|
|
24
|
+
const relationMeta = (0, has_many_helpers_1.resolveHasManyMetadata)(meta);
|
|
25
25
|
return async function fetchHasManyModels(entities, inclusion, options) {
|
|
26
26
|
if (!entities.length)
|
|
27
27
|
return [];
|
|
@@ -34,9 +34,9 @@ function createHasManyInclusionResolver(meta, getTargetRepo) {
|
|
|
34
34
|
debug('sourceId types', sourceIds.map(i => typeof i));
|
|
35
35
|
const scope = typeof inclusion === 'string' ? {} : inclusion.scope;
|
|
36
36
|
const targetRepo = await getTargetRepo();
|
|
37
|
-
const targetsFound = await relation_helpers_1.findByForeignKeys(targetRepo, targetKey, sourceIds, scope, options);
|
|
37
|
+
const targetsFound = await (0, relation_helpers_1.findByForeignKeys)(targetRepo, targetKey, sourceIds, scope, options);
|
|
38
38
|
debug('Targets found:', targetsFound);
|
|
39
|
-
const result = relation_helpers_1.flattenTargetsOfOneToManyRelation(sourceIds, targetsFound, targetKey);
|
|
39
|
+
const result = (0, relation_helpers_1.flattenTargetsOfOneToManyRelation)(sourceIds, targetsFound, targetKey);
|
|
40
40
|
debug('fetchHasManyModels result', result);
|
|
41
41
|
return result;
|
|
42
42
|
};
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"has-many.inclusion-resolver.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.inclusion-resolver.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,+DAAiC;AAIjC,0DAI6B;AAE7B,yDAA0D;AAE1D,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAK5C,IAAuB,EACvB,aAEC;IAED,MAAM,YAAY,GAAG,IAAA,yCAAsB,EAAC,IAAI,CAAC,CAAC;IAElD,OAAO,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,SAA0B,EAC1B,OAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,KAAK,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QACxD,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,YAAY,CAAC,KAA4B,CAAC;QAE5D,KAAK,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;QACxD,KAAK,CACH,gBAAgB,EAChB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAC7B,CAAC;QAEF,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,SAAS,CAAC,KAAwB,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAA,oCAAiB,EAC1C,UAAU,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;QAEF,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAA,oDAAiC,EAC9C,SAAS,EACT,YAAY,EACZ,SAAS,CACV,CAAC;QAEF,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAvDD,wEAuDC"}
|
|
@@ -6,11 +6,11 @@
|
|
|
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 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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:relations:has-many:repository-factory');
|
|
13
|
+
const debug = (0, 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
|
|
@@ -25,14 +25,14 @@ const debug = debug_1.default('loopback:repository:relations:has-many:repository
|
|
|
25
25
|
* the given target repository
|
|
26
26
|
*/
|
|
27
27
|
function createHasManyRepositoryFactory(relationMetadata, targetRepositoryGetter) {
|
|
28
|
-
const meta = has_many_helpers_1.resolveHasManyMetadata(relationMetadata);
|
|
28
|
+
const meta = (0, has_many_helpers_1.resolveHasManyMetadata)(relationMetadata);
|
|
29
29
|
debug('Resolved HasMany relation metadata: %o', meta);
|
|
30
30
|
const result = function (fkValue) {
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
32
|
const constraint = { [meta.keyTo]: fkValue };
|
|
33
33
|
return new has_many_repository_1.DefaultHasManyRepository(targetRepositoryGetter, constraint);
|
|
34
34
|
};
|
|
35
|
-
result.inclusionResolver = has_many_inclusion_resolver_1.createHasManyInclusionResolver(meta, targetRepositoryGetter);
|
|
35
|
+
result.inclusionResolver = (0, has_many_inclusion_resolver_1.createHasManyInclusionResolver)(meta, targetRepositoryGetter);
|
|
36
36
|
return result;
|
|
37
37
|
}
|
|
38
38
|
exports.createHasManyRepositoryFactory = createHasManyRepositoryFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository-factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"has-many.repository-factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository-factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AAKjC,yDAA0D;AAC1D,+EAA6E;AAC7E,+DAG+B;AAE/B,MAAM,KAAK,GAAG,IAAA,eAAY,EACxB,2DAA2D,CAC5D,CAAC;AAiBF;;;;;;;;;;;;GAYG;AACH,SAAgB,8BAA8B,CAK5C,gBAAmC,EACnC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,IAAA,yCAAsB,EAAC,gBAAgB,CAAC,CAAC;IACtD,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAqD,UAC/D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,8CAAwB,CAIjC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,IAAA,4DAA8B,EACvD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,wEA0BC"}
|
|
@@ -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(repositories_1.constrainDataObject(targetModelData, this.constraint), options);
|
|
22
|
+
return targetRepository.create((0, 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(repositories_1.constrainFilter(filter, this.constraint), options);
|
|
26
|
+
return targetRepository.find((0, 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(repositories_1.constrainWhere(where, this.constraint), options);
|
|
30
|
+
return targetRepository.deleteAll((0, 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(repositories_1.constrainDataObject(dataObject, this.constraint), repositories_1.constrainWhere(where, this.constraint), options);
|
|
34
|
+
return targetRepository.updateAll((0, repositories_1.constrainDataObject)(dataObject, this.constraint), (0, 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,qDAK4B;AA4C5B,MAAa,wBAAwB;
|
|
1
|
+
{"version":3,"file":"has-many.repository.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many.repository.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAMhE,qDAK4B;AA4C5B,MAAa,wBAAwB;IAMnC;;;;;OAKG;IACH,YACS,mBAA6C,EAC7C,UAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAA0B;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,eAAyC,EACzC,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAA,kCAAmB,EAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA6B,EAC7B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,IAAI,CAC1B,IAAA,8BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EACxC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2B,EAAE,OAAiB;QACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAoC,EACpC,KAA2B,EAC3B,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,SAAS,CAC/B,IAAA,kCAAmB,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChD,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,UAAiC,CAAC,EAC7D,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA3DD,4DA2DC"}
|
|
@@ -5,10 +5,10 @@
|
|
|
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.repository-factory"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./has-many-through.repository-factory"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./has-many-through.repository"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./has-many.decorator"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./has-many.inclusion-resolver"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./has-many.repository"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./has-many.repository-factory"), exports);
|
|
9
|
+
(0, tslib_1.__exportStar)(require("./has-many-through.repository-factory"), exports);
|
|
10
|
+
(0, tslib_1.__exportStar)(require("./has-many-through.repository"), exports);
|
|
11
|
+
(0, tslib_1.__exportStar)(require("./has-many.decorator"), exports);
|
|
12
|
+
(0, tslib_1.__exportStar)(require("./has-many.inclusion-resolver"), exports);
|
|
13
|
+
(0, tslib_1.__exportStar)(require("./has-many.repository"), exports);
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-many/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relations/has-many/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,6EAA8C;AAC9C,qFAAsD;AACtD,6EAA8C;AAC9C,oEAAqC;AACrC,6EAA8C;AAC9C,qEAAsC"}
|
|
@@ -30,7 +30,7 @@ function hasOne(targetResolver, definition) {
|
|
|
30
30
|
source: decoratedTarget.constructor,
|
|
31
31
|
target: targetResolver,
|
|
32
32
|
});
|
|
33
|
-
relation_decorator_1.relation(meta)(decoratedTarget, key);
|
|
33
|
+
(0, relation_decorator_1.relation)(meta)(decoratedTarget, key);
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
exports.hasOne = hasOne;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-one.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAiE;AAEjE;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,cAAiC,EACjC,UAAsC;IAEtC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,wDAAwD;QAExD,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM;QAC1C,kDAAkD;QAClD,EAAE;QACF,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,6BAAQ,
|
|
1
|
+
{"version":3,"file":"has-one.decorator.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,8DAA+C;AAC/C,sDAAiE;AAEjE;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,cAAiC,EACjC,UAAsC;IAEtC,OAAO,UAAU,eAAuB,EAAE,GAAW;QACnD,wDAAwD;QAExD,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM;QAC1C,kDAAkD;QAClD,EAAE;QACF,oCAAoC;QACpC,UAAU;QACV,uCAAuC;QACvC;YACE,IAAI,EAAE,6BAAY,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,eAAe,CAAC,WAAW;YACnC,MAAM,EAAE,cAAc;SACvB,CACF,CAAC;QACF,IAAA,6BAAQ,EAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAvBD,wBAuBC"}
|
|
@@ -6,12 +6,12 @@
|
|
|
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 = tslib_1.__importDefault(require("debug"));
|
|
9
|
+
const debug_1 = (0, 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");
|
|
13
13
|
const relation_types_1 = require("../relation.types");
|
|
14
|
-
const debug = debug_1.default('loopback:repository:relations:has-one:helpers');
|
|
14
|
+
const debug = (0, 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
|
|
@@ -25,7 +25,7 @@ function resolveHasOneMetadata(relationMeta) {
|
|
|
25
25
|
const reason = 'relation type must be HasOne';
|
|
26
26
|
throw new errors_1.InvalidRelationError(reason, relationMeta);
|
|
27
27
|
}
|
|
28
|
-
if (!type_resolver_1.isTypeResolver(relationMeta.target)) {
|
|
28
|
+
if (!(0, type_resolver_1.isTypeResolver)(relationMeta.target)) {
|
|
29
29
|
const reason = 'target must be a type resolver';
|
|
30
30
|
throw new errors_1.InvalidRelationError(reason, relationMeta);
|
|
31
31
|
}
|
|
@@ -52,7 +52,7 @@ function resolveHasOneMetadata(relationMeta) {
|
|
|
52
52
|
return Object.assign(relationMeta, { keyFrom });
|
|
53
53
|
}
|
|
54
54
|
debug('Resolved model %s from given metadata: %o', targetModel.modelName, targetModel);
|
|
55
|
-
const defaultFkName = lodash_1.camelCase(sourceModel.modelName + '_id');
|
|
55
|
+
const defaultFkName = (0, lodash_1.camelCase)(sourceModel.modelName + '_id');
|
|
56
56
|
const hasDefaultFkProperty = targetModelProperties[defaultFkName];
|
|
57
57
|
if (!hasDefaultFkProperty) {
|
|
58
58
|
const reason = `target model ${targetModel.name} is missing definition of foreign key ${defaultFkName}`;
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"has-one.helpers.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+DAAiC;AACjC,mCAAiC;AACjC,yCAAkD;AAClD,uDAAmD;AACnD,sDAAiE;AAEjE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+CAA+C,CAAC,CAAC;AAW5E;;;;;;GAMG;AACH,SAAgB,qBAAqB,CACnC,YAA8B;;IAE9B,IAAK,YAAY,CAAC,IAAqB,KAAK,6BAAY,CAAC,MAAM,EAAE;QAC/D,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,IAAA,8BAAc,EAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,gCAAgC,CAAC;QAChD,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,qBAAqB,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,UAAU,CAAC;IAEjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC1C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC;IACZ,IACE,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,EAC/D;QACA,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;KAChC;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5C;IAED,iEAAiE;IACjE,qCAAqC;IACrC,IAAI,YAAY,CAAC,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACnE,wEAAwE;QACxE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAC,CAA6B,CAAC;KAC3E;IAED,KAAK,CACH,2CAA2C,EAC3C,WAAW,CAAC,SAAS,EACrB,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAC/D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,MAAM,GAAG,gBAAgB,WAAW,CAAC,IAAI,yCAAyC,aAAa,EAAE,CAAC;QACxG,MAAM,IAAI,6BAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC,CAAC,CAAC;AACtE,CAAC;AAtDD,sDAsDC"}
|