@loopback/repository 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/repository.decorator.js +1 -1
- package/dist/decorators/repository.decorator.js.map +1 -1
- package/dist/define-model-class.js +1 -1
- 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.d.ts +1 -0
- package/dist/errors/index.js +3 -2
- 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/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.js +1 -1
- package/dist/mixins/repository.mixin.js.map +1 -1
- package/dist/model.d.ts +7 -1
- package/dist/model.js +14 -0
- 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 +19 -6
- package/dist/relations/belongs-to/belongs-to.accessor.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 +33 -9
- 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 +81 -8
- 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 +49 -10
- 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.d.ts +3 -0
- package/dist/relations/has-many/has-many-through.helpers.js +26 -2
- 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 +93 -22
- 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 +7 -1
- 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 +211 -35
- package/dist/relations/has-many/has-many-through.repository.js.map +1 -1
- package/dist/relations/has-many/has-many.helpers.js +1 -1
- package/dist/relations/has-many/has-many.helpers.js.map +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js +1 -1
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
- package/dist/relations/has-many/has-many.repository-factory.js +1 -1
- package/dist/relations/has-many/has-many.repository-factory.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.helpers.d.ts +3 -0
- package/dist/relations/has-one/has-one.helpers.js +35 -9
- 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 +82 -7
- 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 +14 -4
- 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 +118 -15
- 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.d.ts +2 -0
- package/dist/relations/index.js +8 -6
- 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 +1 -13
- 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 +19 -4
- package/dist/relations/relation.helpers.js.map +1 -1
- package/dist/relations/relation.types.d.ts +52 -1
- package/dist/relations/relation.types.js.map +1 -1
- package/dist/repositories/index.js +5 -5
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/legacy-juggler-bridge.d.ts +35 -8
- package/dist/repositories/legacy-juggler-bridge.js +38 -16
- package/dist/repositories/legacy-juggler-bridge.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 +16 -16
- package/src/errors/index.ts +1 -0
- package/src/errors/invalid-polymorphism.error.ts +28 -0
- package/src/model.ts +19 -0
- package/src/relations/belongs-to/belongs-to.accessor.ts +35 -6
- package/src/relations/belongs-to/belongs-to.helpers.ts +36 -9
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +108 -17
- package/src/relations/belongs-to/belongs-to.repository.ts +77 -17
- package/src/relations/has-many/has-many-through.helpers.ts +27 -1
- package/src/relations/has-many/has-many-through.inclusion-resolver.ts +117 -26
- package/src/relations/has-many/has-many-through.repository-factory.ts +21 -3
- package/src/relations/has-many/has-many-through.repository.ts +343 -76
- package/src/relations/has-one/has-one.helpers.ts +40 -13
- package/src/relations/has-one/has-one.inclusion-resolver.ts +109 -15
- package/src/relations/has-one/has-one.repository-factory.ts +34 -6
- package/src/relations/has-one/has-one.repository.ts +188 -35
- package/src/relations/index.ts +2 -0
- 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 +0 -12
- package/src/relations/relation.filter.solver.ts +56 -0
- package/src/relations/relation.helpers.ts +16 -1
- package/src/relations/relation.types.ts +51 -0
- package/src/repositories/legacy-juggler-bridge.ts +78 -14
package/dist/connectors/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const tslib_1 = require("tslib");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
tslib_1.__exportStar(require("./connector"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./crud.connector"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./kv.connector"), exports);
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,sDAA4B;AAC5B,2DAAiC;AACjC,yDAA+B"}
|
package/dist/decorators/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const tslib_1 = require("tslib");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
tslib_1.__exportStar(require("./metadata"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./model.decorator"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./repository.decorator"), exports);
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,qDAA2B;AAC3B,4DAAkC;AAClC,iEAAuC"}
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.repository = exports.RepositoryMetadata = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
const core_1 = require("@loopback/core");
|
|
10
|
-
const assert_1 =
|
|
10
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
11
11
|
const repositories_1 = require("../repositories");
|
|
12
12
|
const legacy_juggler_bridge_1 = require("../repositories/legacy-juggler-bridge");
|
|
13
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.decorator.js","sourceRoot":"","sources":["../../src/decorators/repository.decorator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"repository.decorator.js","sourceRoot":"","sources":["../../src/decorators/repository.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.defineModelClass = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const assert =
|
|
9
|
+
const assert = tslib_1.__importStar(require("assert"));
|
|
10
10
|
const decorators_1 = require("./decorators");
|
|
11
11
|
/**
|
|
12
12
|
* Create (define) a new model class with the given name and definition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-model-class.js","sourceRoot":"","sources":["../src/define-model-class.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"define-model-class.js","sourceRoot":"","sources":["../src/define-model-class.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,uDAAiC;AAEjC,6CAAmC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAgB,gBAAgB,CAI9B,IAAc,CAAC,qBAAqB,EACpC,UAA2B;IAE3B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAClC,MAAM,qBAAqB,GAAG,IAAI,QAAQ,CACxC,IAAI,CAAC,IAAI,EACT,gBAAgB,SAAS,YAAY,IAAI,CAAC,IAAI,KAAK,CACpD,CAAC;IACF,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAG5C,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEzC,oDAAoD;IACpD,IAAA,kBAAK,EAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9B,OAAO,UAAU,CAAC;AACpB,CAAC;AArBD,4CAqBC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.defineKeyValueRepositoryClass = exports.defineCrudRepositoryClass = exports.defineRepositoryClass = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const assert_1 =
|
|
9
|
+
const assert_1 = tslib_1.__importDefault(require("assert"));
|
|
10
10
|
const repositories_1 = require("./repositories");
|
|
11
11
|
/**
|
|
12
12
|
* Create (define) a repository class for the given model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-repository-class.js","sourceRoot":"","sources":["../src/define-repository-class.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"define-repository-class.js","sourceRoot":"","sources":["../src/define-repository-class.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,4DAA4B;AAG5B,iDAKwB;AAoDxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,qBAAqB,CAInC,UAAa,EACb,mBAA8C;IAE9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC;IAChD,MAAM,eAAe,GAAG,IAAI,QAAQ,CAClC,WAAW,EACX,gBAAgB,EAChB,gBAAgB,QAAQ;;;;OAIrB,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC9D,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,sDAqBC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,yBAAyB,CAKvC,WAA2C;IAE3C,OAAO,qBAAqB,CAAC,WAAW,EAAE,oCAAqB,CAAC,CAAC;AACnE,CAAC;AARD,8DAQC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,6BAA6B,CAC3C,UAAyC;IAEzC,OAAO,qBAAqB,CAAC,UAAU,EAAE,wCAAyB,CAAC,CAAC;AACtE,CAAC;AAJD,sEAIC"}
|
package/dist/errors/index.d.ts
CHANGED
package/dist/errors/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
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
|
-
|
|
8
|
+
tslib_1.__exportStar(require("./entity-not-found.error"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./invalid-relation.error"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./invalid-polymorphism.error"), exports);
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,mEAAyC;AACzC,mEAAyC;AACzC,uEAA6C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare class InvalidPolymorphismError<Props extends object = {}> extends Error {
|
|
2
|
+
code: string;
|
|
3
|
+
constructor(typeName: string, discriminator?: string, extraProperties?: Props);
|
|
4
|
+
}
|
|
5
|
+
export declare function isInvalidPolymorphismError(e: any): e is InvalidPolymorphismError<any>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isInvalidPolymorphismError = exports.InvalidPolymorphismError = void 0;
|
|
4
|
+
class InvalidPolymorphismError extends Error {
|
|
5
|
+
constructor(typeName, discriminator, extraProperties) {
|
|
6
|
+
const message = discriminator
|
|
7
|
+
? `Invalid class name ${typeName} by discriminator ${discriminator}. Please check polymorphic types and the discriminator.`
|
|
8
|
+
: `Invalid class name ${typeName}. Please check polymorphic types and the discriminator.`;
|
|
9
|
+
super(message);
|
|
10
|
+
Error.captureStackTrace(this, this.constructor);
|
|
11
|
+
this.code = 'INVALID_POLYMORPHISM';
|
|
12
|
+
Object.assign(this, extraProperties);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.InvalidPolymorphismError = InvalidPolymorphismError;
|
|
16
|
+
function isInvalidPolymorphismError(
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
e) {
|
|
19
|
+
return e instanceof InvalidPolymorphismError;
|
|
20
|
+
}
|
|
21
|
+
exports.isInvalidPolymorphismError = isInvalidPolymorphismError;
|
|
22
|
+
//# sourceMappingURL=invalid-polymorphism.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-polymorphism.error.js","sourceRoot":"","sources":["../../src/errors/invalid-polymorphism.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,wBAAoD,SAAQ,KAAK;IAG5E,YACE,QAAgB,EAChB,aAAsB,EACtB,eAAuB;QAEvB,MAAM,OAAO,GAAG,aAAa;YAC3B,CAAC,CAAC,sBAAsB,QAAQ,qBAAqB,aAAa,yDAAyD;YAC3H,CAAC,CAAC,sBAAsB,QAAQ,yDAAyD,CAAC;QAC5F,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvC,CAAC;CACF;AAnBD,4DAmBC;AAED,SAAgB,0BAA0B;AACxC,8DAA8D;AAC9D,CAAM;IAGN,OAAO,CAAC,YAAY,wBAAwB,CAAC;AAC/C,CAAC;AAND,gEAMC"}
|
package/dist/index.js
CHANGED
|
@@ -14,26 +14,26 @@ const tslib_1 = require("tslib");
|
|
|
14
14
|
*
|
|
15
15
|
* @packageDocumentation
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
tslib_1.__exportStar(require("@loopback/filter"), exports);
|
|
18
18
|
/**
|
|
19
19
|
* Export the DataSource to avoid TypeScript 4.2's complaint about
|
|
20
20
|
* RepositoryMixin as it references `juggler.DataSource`
|
|
21
21
|
*/
|
|
22
22
|
var loopback_datasource_juggler_1 = require("loopback-datasource-juggler");
|
|
23
23
|
Object.defineProperty(exports, "JugglerDataSource", { enumerable: true, get: function () { return loopback_datasource_juggler_1.DataSource; } });
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
tslib_1.__exportStar(require("./common-types"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./connectors"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./datasource"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./decorators"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./define-model-class"), exports);
|
|
29
|
+
tslib_1.__exportStar(require("./define-repository-class"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./errors"), exports);
|
|
31
|
+
tslib_1.__exportStar(require("./keys"), exports);
|
|
32
|
+
tslib_1.__exportStar(require("./mixins"), exports);
|
|
33
|
+
tslib_1.__exportStar(require("./model"), exports);
|
|
34
|
+
tslib_1.__exportStar(require("./relations"), exports);
|
|
35
|
+
tslib_1.__exportStar(require("./repositories"), exports);
|
|
36
|
+
tslib_1.__exportStar(require("./transaction"), exports);
|
|
37
|
+
tslib_1.__exportStar(require("./type-resolver"), exports);
|
|
38
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
39
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE;;;;;;;GAOG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE;;;;;;;GAOG;AAEH,2DAAiC;AAEjC;;;GAGG;AACH,2EAA4E;AAApE,gIAAA,UAAU,OAAqB;AACvC,yDAA+B;AAC/B,uDAA6B;AAC7B,uDAA6B;AAC7B,uDAA6B;AAC7B,+DAAqC;AACrC,oEAA0C;AAC1C,mDAAyB;AACzB,iDAAuB;AACvB,mDAAyB;AACzB,kDAAwB;AACxB,sDAA4B;AAC5B,yDAA+B;AAC/B,wDAA8B;AAC9B,0DAAgC;AAChC,kDAAwB"}
|
package/dist/mixins/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
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
|
-
|
|
8
|
+
tslib_1.__exportStar(require("./repository.mixin"), exports);
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/mixins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mixins/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mixins/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,6DAAmC"}
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.createModelClassBinding = exports.RepositoryMixinDoc = exports.RepositoryMixin = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
const core_1 = require("@loopback/core");
|
|
10
|
-
const debug_1 =
|
|
10
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
11
11
|
const keys_1 = require("../keys");
|
|
12
12
|
const repositories_1 = require("../repositories");
|
|
13
13
|
const debug = (0, debug_1.default)('loopback:repository:mixin');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../src/mixins/repository.mixin.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAUwB;AACxB
|
|
1
|
+
{"version":3,"file":"repository.mixin.js","sourceRoot":"","sources":["../../src/mixins/repository.mixin.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAUwB;AACxB,0DAAiC;AAGjC,kCAA2D;AAE3D,kDAAoD;AAEpD,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,2BAA2B,CAAC,CAAC;AAOxD,qDAAqD;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,eAAe,CAC7B,UAAa;IAEb,OAAO,KAAM,SAAQ,UAAU;QAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BG;QACH,8DAA8D;QAC9D,UAAU,CACR,SAAmB,EACnB,aAAgD;YAEhD,MAAM,OAAO,GAAG,IAAA,6BAAsB,EAAC,SAAS,EAAE;gBAChD,SAAS,EAAE,yBAAkB,CAAC,YAAY;gBAC1C,IAAI,EAAE,qBAAc,CAAC,UAAU;gBAC/B,YAAY,EAAE,mBAAY,CAAC,SAAS;gBACpC,GAAG,SAAS,CAAC,aAAa,CAAC;aAC5B,CAAC,CAAC,GAAG,CAAC,qBAAc,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED;;;;WAIG;QACH,8DAA8D;QAC9D,KAAK,CAAC,aAAa,CAA4B,IAAc;YAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,UAAU,CACR,UAAwB,EACxB,aAAgD;;YAEhD,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;YACzC,yBAAyB;YACzB,IAAI,UAAU,YAAY,sBAAO,CAAC,UAAU,EAAE;gBAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;gBAC7C,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,SAAS,mCAAI,yBAAkB,CAAC,WAAW,CAAC;gBACtE,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,qBAAc,CAAC,UAAU,CAAC,CAAC;aACrE;iBAAM,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;gBAC3C,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,cAAc,CAAC;gBACzD,MAAM,OAAO,GAAG,IAAA,6BAAsB,EAAC,UAAU,EAAE;oBACjD,SAAS,EAAE,yBAAkB,CAAC,WAAW;oBACzC,IAAI,EAAE,qBAAc,CAAC,UAAU;oBAC/B,YAAY,EAAE,mBAAY,CAAC,SAAS;oBACpC,GAAG,OAAO;iBACX,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO,OAAO,CAAC;aAChB;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;aAC5C;QACH,CAAC;QAED;;;WAGG;QACH,KAAK,CAA2B,UAAa;YAC3C,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,wEAAwE;QACxE,0EAA0E;QAC1E,6DAA6D;QAC7D,aAAa;QACN,SAAS,CACd,aAA6B,EAC7B,aAAgD;YAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAA0B,OAAO,CAAC,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED;;;;;;;;;;;WAWG;QACH,0BAA0B;QACxB,kEAAkE;QAClE,oEAAoE;QACpE,wBAA8D;YAE9D,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,SAAS,CAAC,YAAY,EAAE;gBAC1B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,YAAY,EAAE;oBACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;YAED,gEAAgE;YAChE,0DAA0D;YAC1D,SAAS,wBAAwB,CAAC,GAA0B;gBAC1D,IAAI,OAAO,wBAAwB,KAAK,UAAU;oBAChD,OAAO,wBAAwB,CAAC;gBAElC,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC;gBACpD,MAAM,YAAY,GAAG,GAAG,mBAAY,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;gBACnE,OAAO,GAAG,CAAC,OAAO,CAAsB,YAAY,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED;;;;WAIG;QACH,oBAAoB,CAAC,SAA8B;YACjD,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO;YAC9B,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACf;QACH,CAAC;QAED;;;;;;;;;;;;WAYG;QACH,KAAK,CAAC,aAAa,CAAC,UAAkC,EAAE;;YACtD,MAAM,SAAS,GACb,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;YAEnE,0EAA0E;YAC1E,uBAAuB;YACvB,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1D,gEAAgE;YAChE,MAAM,UAAU,GAAgC,IAAI,CAAC,SAAS,CAC5D,qBAAc,CAAC,UAAU,CAC1B,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;gBAC1B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAqB,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,MAAM,gBAAgB,GAAG,MAAA,EAAE,CAAC,QAAQ,CAAC,gBAAgB,mCAAI,KAAK,CAAC;gBAE/D,IACE,SAAS,IAAI,EAAE;oBACf,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,UAAU;oBACnC,CAAC,gBAAgB,EACjB;oBACA,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACxC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACrC;qBAAM;oBACL,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;iBACrD;aACF;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAvPD,0CAuPC;AAoBD;;;GAGG;AACH,SAAS,SAAS,CAAC,aAAgD;IACjE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACrC,OAAO,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;KAC9B;IACD,OAAO,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;AAC7B,CAAC;AAuBD;;;;;;GAMG;AACH,MAAa,kBAAkB;IAC7B,8DAA8D;IAC9D,YAAY,GAAG,IAAW;QACxB,MAAM,IAAI,KAAK,CACb,2CAA2C,GAAG,uBAAuB,CACtE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,8DAA8D;IAC9D,UAAU,CAAC,IAA4B;QACrC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,8DAA8D;IAC9D,KAAK,CAAC,aAAa,CAA4B,IAAc;QAC3D,OAAO,IAAI,IAAI,EAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CACR,UAA0D,EAC1D,IAAa;QAEb,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,SAAS,CAAC,SAAoB;QACnC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,SAAoB,IAAG,CAAC;IAEjD;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgC,IAAkB,CAAC;CACxE;AAhID,gDAgIC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CACrC,UAAa;IAEb,OAAO,cAAO,CAAC,IAAI,CAAI,GAAG,yBAAkB,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;SACtE,EAAE,CAAC,UAAU,CAAC;SACd,GAAG,CAAC,qBAAc,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAND,0DAMC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnyObject, DataObject, Options, PrototypeOf } from './common-types';
|
|
2
|
-
import { BelongsToDefinition, HasManyDefinition, HasOneDefinition, JsonSchema, RelationMetadata } from './index';
|
|
2
|
+
import { BelongsToDefinition, HasManyDefinition, HasOneDefinition, ReferencesManyDefinition, JsonSchema, RelationMetadata } from './index';
|
|
3
3
|
import { TypeResolver } from './type-resolver';
|
|
4
4
|
import { Type } from './types';
|
|
5
5
|
/**
|
|
@@ -130,6 +130,12 @@ export declare class ModelDefinition {
|
|
|
130
130
|
* @param definition - The definition of the hasMany relation.
|
|
131
131
|
*/
|
|
132
132
|
hasMany(name: string, definition: Omit<HasManyDefinition, 'name' | 'type' | 'targetsMany'>): this;
|
|
133
|
+
/**
|
|
134
|
+
* Define a new referencesMany relation.
|
|
135
|
+
* @param name - The name of the referencesMany relation.
|
|
136
|
+
* @param definition - The definition of the referencesMany relation.
|
|
137
|
+
*/
|
|
138
|
+
referencesMany(name: string, definition: Omit<ReferencesManyDefinition, 'name' | 'type' | 'targetsMany'>): this;
|
|
133
139
|
/**
|
|
134
140
|
* Get an array of names of ID properties, which are specified in
|
|
135
141
|
* the model settings or properties with `id` attribute.
|
package/dist/model.js
CHANGED
|
@@ -102,6 +102,20 @@ class ModelDefinition {
|
|
|
102
102
|
};
|
|
103
103
|
return this.addRelation(meta);
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Define a new referencesMany relation.
|
|
107
|
+
* @param name - The name of the referencesMany relation.
|
|
108
|
+
* @param definition - The definition of the referencesMany relation.
|
|
109
|
+
*/
|
|
110
|
+
referencesMany(name, definition) {
|
|
111
|
+
const meta = {
|
|
112
|
+
...definition,
|
|
113
|
+
name,
|
|
114
|
+
type: index_1.RelationType.referencesMany,
|
|
115
|
+
targetsMany: true,
|
|
116
|
+
};
|
|
117
|
+
return this.addRelation(meta);
|
|
118
|
+
}
|
|
105
119
|
/**
|
|
106
120
|
* Get an array of names of ID properties, which are specified in
|
|
107
121
|
* the model settings or properties with `id` attribute.
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAGhE,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export interface BelongsToAccessor<Target extends Entity, SourceId> {
|
|
|
5
5
|
/**
|
|
6
6
|
* Invoke the function to obtain HasManyRepository.
|
|
7
7
|
*/
|
|
8
|
-
(sourceId: SourceId): Promise<Target>;
|
|
8
|
+
(sourceId: SourceId, polymorphicTypes?: string | string[]): Promise<Target>;
|
|
9
9
|
/**
|
|
10
10
|
* Use `resolver` property to obtain an InclusionResolver for this relation.
|
|
11
11
|
*/
|
|
@@ -13,5 +13,9 @@ export interface BelongsToAccessor<Target extends Entity, SourceId> {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Enforces a BelongsTo constraint on a repository
|
|
16
|
+
* If the target model is polymorphic, i.e. stored within different repositories,
|
|
17
|
+
* supply the targetRepositoryGetter with a dictionary in the form of {[typeName: string]: repositoryGetter}
|
|
16
18
|
*/
|
|
17
|
-
export declare function createBelongsToAccessor<Target extends Entity, TargetId, Source extends Entity, SourceId>(belongsToMetadata: BelongsToDefinition,
|
|
19
|
+
export declare function createBelongsToAccessor<Target extends Entity, TargetId, Source extends Entity, SourceId>(belongsToMetadata: BelongsToDefinition, targetRepositoryGetter: Getter<EntityCrudRepository<Target, TargetId>> | {
|
|
20
|
+
[repoType: string]: Getter<EntityCrudRepository<Target, TargetId>>;
|
|
21
|
+
}, sourceRepository: EntityCrudRepository<Source, SourceId>): BelongsToAccessor<Target, SourceId>;
|
|
@@ -6,18 +6,31 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createBelongsToAccessor = 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 belongs_to_helpers_1 = require("./belongs-to.helpers");
|
|
11
11
|
const belongs_to_inclusion_resolver_1 = require("./belongs-to.inclusion-resolver");
|
|
12
12
|
const belongs_to_repository_1 = require("./belongs-to.repository");
|
|
13
13
|
const debug = (0, debug_1.default)('loopback:repository:relations:belongs-to:accessor');
|
|
14
14
|
/**
|
|
15
15
|
* Enforces a BelongsTo constraint on a repository
|
|
16
|
+
* If the target model is polymorphic, i.e. stored within different repositories,
|
|
17
|
+
* supply the targetRepositoryGetter with a dictionary in the form of {[typeName: string]: repositoryGetter}
|
|
16
18
|
*/
|
|
17
|
-
function createBelongsToAccessor(belongsToMetadata,
|
|
19
|
+
function createBelongsToAccessor(belongsToMetadata, targetRepositoryGetter, sourceRepository) {
|
|
18
20
|
const meta = (0, belongs_to_helpers_1.resolveBelongsToMetadata)(belongsToMetadata);
|
|
21
|
+
// resolve the repositoryGetter into a dictionary
|
|
22
|
+
if (typeof targetRepositoryGetter === 'function') {
|
|
23
|
+
targetRepositoryGetter = {
|
|
24
|
+
[meta.target().name]: targetRepositoryGetter,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
19
27
|
debug('Resolved BelongsTo relation metadata: %o', meta);
|
|
20
|
-
const result = async function getTargetInstanceOfBelongsTo(sourceId) {
|
|
28
|
+
const result = async function getTargetInstanceOfBelongsTo(sourceId, polymorphicTypes) {
|
|
29
|
+
if (meta.polymorphic !== false) {
|
|
30
|
+
if (!polymorphicTypes || polymorphicTypes.length === 0) {
|
|
31
|
+
console.warn('It is highly recommended to specify the polymorphicTypes param when using polymorphic types.');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
21
34
|
const foreignKey = meta.keyFrom;
|
|
22
35
|
const primaryKey = meta.keyTo;
|
|
23
36
|
const sourceModel = await sourceRepository.findById(sourceId);
|
|
@@ -30,10 +43,10 @@ function createBelongsToAccessor(belongsToMetadata, targetRepoGetter, sourceRepo
|
|
|
30
43
|
}
|
|
31
44
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
45
|
const constraint = { [primaryKey]: foreignKeyValue };
|
|
33
|
-
const constrainedRepo = new belongs_to_repository_1.DefaultBelongsToRepository(
|
|
34
|
-
return constrainedRepo.get();
|
|
46
|
+
const constrainedRepo = new belongs_to_repository_1.DefaultBelongsToRepository(targetRepositoryGetter, constraint, belongsToMetadata.target);
|
|
47
|
+
return constrainedRepo.get({ polymorphicType: polymorphicTypes });
|
|
35
48
|
};
|
|
36
|
-
result.inclusionResolver = (0, belongs_to_inclusion_resolver_1.createBelongsToInclusionResolver)(meta,
|
|
49
|
+
result.inclusionResolver = (0, belongs_to_inclusion_resolver_1.createBelongsToInclusionResolver)(meta, targetRepositoryGetter);
|
|
37
50
|
return result;
|
|
38
51
|
}
|
|
39
52
|
exports.createBelongsToAccessor = createBelongsToAccessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.accessor.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.accessor.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"belongs-to.accessor.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.accessor.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AASjC,6DAA8D;AAC9D,mFAAiF;AACjF,mEAAmE;AAEnE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,mDAAmD,CAAC,CAAC;AAchF;;;;GAIG;AACH,SAAgB,uBAAuB,CAMrC,iBAAsC,EACtC,sBAIK,EACL,gBAAwD;IAExD,MAAM,IAAI,GAAG,IAAA,6CAAwB,EAAC,iBAAiB,CAAC,CAAC;IACzD,iDAAiD;IACjD,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE;QAChD,sBAAsB,GAAG;YACvB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,sBAErB;SACF,CAAC;KACH;IACD,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,MAAM,GACV,KAAK,UAAU,4BAA4B,CACzC,QAAkB,EAClB,gBAAoC;QAEpC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC9B,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtD,OAAO,CAAC,IAAI,CACV,8FAA8F,CAC/F,CAAC;aACH;SACF;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,UAA0B,CAAC,CAAC;QAChE,6CAA6C;QAC7C,oEAAoE;QACpE,oEAAoE;QACpE,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,SAA8B,CAAC;SACvC;QACD,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,kDAA0B,CACpD,sBAEC,EACD,UAAgC,EAChC,iBAAiB,CAAC,MAAM,CACzB,CAAC;QACF,OAAO,eAAe,CAAC,GAAG,CAAC,EAAC,eAAe,EAAE,gBAAgB,EAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,GAAG,IAAA,gEAAgC,EACzD,IAAI,EACJ,sBAEC,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAjED,0DAiEC"}
|
|
@@ -6,6 +6,9 @@ import { BelongsToDefinition } from '../relation.types';
|
|
|
6
6
|
export declare type BelongsToResolvedDefinition = BelongsToDefinition & {
|
|
7
7
|
keyFrom: string;
|
|
8
8
|
keyTo: string;
|
|
9
|
+
polymorphic: false | {
|
|
10
|
+
discriminator: string;
|
|
11
|
+
};
|
|
9
12
|
};
|
|
10
13
|
/**
|
|
11
14
|
* Resolves given belongsTo metadata if target is specified to be a resolver.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.resolveBelongsToMetadata = 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");
|
|
@@ -46,18 +46,42 @@ function resolveBelongsToMetadata(relationMeta) {
|
|
|
46
46
|
}
|
|
47
47
|
const targetProperties = targetModel.definition.properties;
|
|
48
48
|
debug('relation metadata from %o: %o', targetName, targetProperties);
|
|
49
|
+
let keyTo;
|
|
49
50
|
if (relationMeta.keyTo && targetProperties[relationMeta.keyTo]) {
|
|
50
51
|
// The explicit cast is needed because of a limitation of type inference
|
|
51
|
-
|
|
52
|
-
keyFrom,
|
|
53
|
-
});
|
|
52
|
+
keyTo = relationMeta.keyTo;
|
|
54
53
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
else {
|
|
55
|
+
keyTo = targetModel.definition.idProperties()[0];
|
|
56
|
+
if (!keyTo) {
|
|
57
|
+
const reason = `${targetName} does not have any primary key (id property)`;
|
|
58
|
+
throw new errors_1.InvalidRelationError(reason, relationMeta);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
let polymorphic;
|
|
62
|
+
if (relationMeta.polymorphic === undefined ||
|
|
63
|
+
relationMeta.polymorphic === false ||
|
|
64
|
+
!relationMeta.polymorphic) {
|
|
65
|
+
const polymorphicFalse = false;
|
|
66
|
+
polymorphic = polymorphicFalse;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
if (relationMeta.polymorphic === true) {
|
|
70
|
+
const polymorphicObject = {
|
|
71
|
+
discriminator: (0, lodash_1.camelCase)(relationMeta.target().name + '_type'),
|
|
72
|
+
};
|
|
73
|
+
polymorphic = polymorphicObject;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const polymorphicObject = relationMeta.polymorphic;
|
|
77
|
+
polymorphic = polymorphicObject;
|
|
78
|
+
}
|
|
59
79
|
}
|
|
60
|
-
return Object.assign(relationMeta, {
|
|
80
|
+
return Object.assign(relationMeta, {
|
|
81
|
+
keyFrom,
|
|
82
|
+
keyTo: keyTo,
|
|
83
|
+
polymorphic: polymorphic,
|
|
84
|
+
});
|
|
61
85
|
}
|
|
62
86
|
exports.resolveBelongsToMetadata = resolveBelongsToMetadata;
|
|
63
87
|
//# sourceMappingURL=belongs-to.helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.helpers.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.helpers.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"belongs-to.helpers.js","sourceRoot":"","sources":["../../../src/relations/belongs-to/belongs-to.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ import { BelongsToDefinition, Getter, InclusionResolver } from '../relation.type
|
|
|
9
9
|
* Notice: scope field for inclusion is not supported yet
|
|
10
10
|
*
|
|
11
11
|
* @param meta - resolved BelongsToMetadata
|
|
12
|
-
* @param
|
|
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 createBelongsToInclusionResolver<Target extends Entity, TargetID, TargetRelations extends object>(meta: BelongsToDefinition,
|
|
15
|
+
export declare function createBelongsToInclusionResolver<Target extends Entity, TargetID, TargetRelations extends object>(meta: BelongsToDefinition, getTargetRepoDict: {
|
|
16
|
+
[repoType: string]: Getter<EntityCrudRepository<Target, TargetID, TargetRelations>>;
|
|
17
|
+
}): InclusionResolver<Entity, Target>;
|