@loopback/repository 4.0.0-alpha.9 → 4.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/LICENSE +25 -0
- package/README.md +93 -389
- package/dist/common-types.d.ts +96 -0
- package/dist/common-types.js +24 -0
- package/dist/common-types.js.map +1 -0
- package/dist/connectors/connector.d.ts +48 -0
- package/{lib → dist/connectors}/connector.js +1 -1
- package/dist/connectors/connector.js.map +1 -0
- package/{lib/crud-connector.d.ts → dist/connectors/crud.connector.d.ts} +51 -51
- package/{lib/common-types.js → dist/connectors/crud.connector.js} +2 -2
- package/dist/connectors/crud.connector.js.map +1 -0
- package/dist/connectors/index.d.ts +3 -0
- package/dist/connectors/index.js +11 -0
- package/dist/connectors/index.js.map +1 -0
- package/{lib6/kv-connector.d.ts → dist/connectors/kv.connector.d.ts} +28 -28
- package/{lib/datasource.js → dist/connectors/kv.connector.js} +2 -2
- package/dist/connectors/kv.connector.js.map +1 -0
- package/dist/datasource.d.ts +27 -0
- package/{lib6 → dist}/datasource.js +1 -1
- package/dist/datasource.js.map +1 -0
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.js +11 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/metadata.d.ts +12 -0
- package/dist/decorators/metadata.js +51 -0
- package/dist/decorators/metadata.js.map +1 -0
- package/dist/decorators/model.decorator.d.ts +40 -0
- package/dist/decorators/model.decorator.js +112 -0
- package/dist/decorators/model.decorator.js.map +1 -0
- package/dist/decorators/repository.decorator.d.ts +106 -0
- package/dist/decorators/repository.decorator.js +114 -0
- package/dist/decorators/repository.decorator.js.map +1 -0
- package/dist/define-model-class.d.ts +55 -0
- package/dist/define-model-class.js +57 -0
- package/dist/define-model-class.js.map +1 -0
- package/dist/define-repository-class.d.ts +119 -0
- package/dist/define-repository-class.js +98 -0
- package/dist/define-repository-class.js.map +1 -0
- package/dist/errors/entity-not-found.error.d.ts +8 -0
- package/dist/errors/entity-not-found.error.js +28 -0
- package/dist/errors/entity-not-found.error.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.js +10 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/invalid-relation.error.d.ts +10 -0
- package/dist/errors/invalid-relation.error.js +28 -0
- package/dist/errors/invalid-relation.error.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +34 -0
- package/dist/keys.js +44 -0
- package/dist/keys.js.map +1 -0
- package/dist/mixins/index.d.ts +1 -0
- package/dist/mixins/index.js +9 -0
- package/dist/mixins/index.js.map +1 -0
- package/dist/mixins/repository.mixin.d.ts +377 -0
- package/dist/mixins/repository.mixin.js +405 -0
- package/dist/mixins/repository.mixin.js.map +1 -0
- package/dist/model.d.ts +232 -0
- package/dist/model.js +367 -0
- package/dist/model.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.accessor.d.ts +17 -0
- package/dist/relations/belongs-to/belongs-to.accessor.js +40 -0
- package/dist/relations/belongs-to/belongs-to.accessor.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.decorator.d.ts +11 -0
- package/dist/relations/belongs-to/belongs-to.decorator.js +64 -0
- package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.helpers.d.ts +17 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js +63 -0
- package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +14 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js +36 -0
- package/dist/relations/belongs-to/belongs-to.inclusion-resolver.js.map +1 -0
- package/dist/relations/belongs-to/belongs-to.repository.d.ts +28 -0
- package/dist/relations/belongs-to/belongs-to.repository.js +33 -0
- package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -0
- package/dist/relations/belongs-to/index.d.ts +4 -0
- package/dist/relations/belongs-to/index.js +12 -0
- package/dist/relations/belongs-to/index.js.map +1 -0
- package/dist/relations/has-many/has-many-through.helpers.d.ts +182 -0
- package/dist/relations/has-many/has-many-through.helpers.js +282 -0
- package/dist/relations/has-many/has-many-through.helpers.js.map +1 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.d.ts +16 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js +78 -0
- package/dist/relations/has-many/has-many-through.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-many/has-many-through.repository-factory.d.ts +17 -0
- package/dist/relations/has-many/has-many-through.repository-factory.js +37 -0
- package/dist/relations/has-many/has-many-through.repository-factory.js.map +1 -0
- package/dist/relations/has-many/has-many-through.repository.d.ts +114 -0
- package/dist/relations/has-many/has-many-through.repository.js +103 -0
- package/dist/relations/has-many/has-many-through.repository.js.map +1 -0
- package/dist/relations/has-many/has-many.decorator.d.ts +11 -0
- package/dist/relations/has-many/has-many.decorator.js +36 -0
- package/dist/relations/has-many/has-many.decorator.js.map +1 -0
- package/dist/relations/has-many/has-many.helpers.d.ts +26 -0
- package/dist/relations/has-many/has-many.helpers.js +78 -0
- package/dist/relations/has-many/has-many.helpers.js.map +1 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.d.ts +14 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.js +45 -0
- package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-many/has-many.repository-factory.d.ts +28 -0
- package/dist/relations/has-many/has-many.repository-factory.js +39 -0
- package/dist/relations/has-many/has-many.repository-factory.js.map +1 -0
- package/dist/relations/has-many/has-many.repository.d.ts +54 -0
- package/dist/relations/has-many/has-many.repository.js +38 -0
- package/dist/relations/has-many/has-many.repository.js.map +1 -0
- package/dist/relations/has-many/index.d.ts +6 -0
- package/dist/relations/has-many/index.js +14 -0
- package/dist/relations/has-many/index.js.map +1 -0
- package/dist/relations/has-one/has-one.decorator.d.ts +3 -0
- package/dist/relations/has-one/has-one.decorator.js +37 -0
- package/dist/relations/has-one/has-one.decorator.js.map +1 -0
- package/dist/relations/has-one/has-one.helpers.d.ts +17 -0
- package/dist/relations/has-one/has-one.helpers.js +64 -0
- package/dist/relations/has-one/has-one.helpers.js.map +1 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +14 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.js +35 -0
- package/dist/relations/has-one/has-one.inclusion-resolver.js.map +1 -0
- package/dist/relations/has-one/has-one.repository-factory.d.ts +28 -0
- package/dist/relations/has-one/has-one.repository-factory.js +39 -0
- package/dist/relations/has-one/has-one.repository-factory.js.map +1 -0
- package/dist/relations/has-one/has-one.repository.d.ts +53 -0
- package/dist/relations/has-one/has-one.repository.js +45 -0
- package/dist/relations/has-one/has-one.repository.js.map +1 -0
- package/dist/relations/has-one/index.d.ts +3 -0
- package/dist/relations/has-one/index.js +11 -0
- package/dist/relations/has-one/index.js.map +1 -0
- package/dist/relations/index.d.ts +6 -0
- package/dist/relations/index.js +14 -0
- package/dist/relations/index.js.map +1 -0
- package/dist/relations/relation.decorator.d.ts +39 -0
- package/dist/relations/relation.decorator.js +88 -0
- package/dist/relations/relation.decorator.js.map +1 -0
- package/dist/relations/relation.helpers.d.ts +105 -0
- package/dist/relations/relation.helpers.js +298 -0
- package/dist/relations/relation.helpers.js.map +1 -0
- package/dist/relations/relation.types.d.ts +142 -0
- package/dist/relations/relation.types.js +21 -0
- package/dist/relations/relation.types.js.map +1 -0
- package/dist/repositories/constraint-utils.d.ts +49 -0
- package/dist/repositories/constraint-utils.js +87 -0
- package/dist/repositories/constraint-utils.js.map +1 -0
- package/dist/repositories/index.d.ts +5 -0
- package/dist/repositories/index.js +13 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/kv.repository.bridge.d.ts +30 -0
- package/dist/repositories/kv.repository.bridge.js +76 -0
- package/dist/repositories/kv.repository.bridge.js.map +1 -0
- package/dist/repositories/kv.repository.d.ts +74 -0
- package/{lib/crud-connector.js → dist/repositories/kv.repository.js} +2 -2
- package/dist/repositories/kv.repository.js.map +1 -0
- package/dist/repositories/legacy-juggler-bridge.d.ts +305 -0
- package/dist/repositories/legacy-juggler-bridge.js +452 -0
- package/dist/repositories/legacy-juggler-bridge.js.map +1 -0
- package/dist/repositories/repository.d.ts +223 -0
- package/dist/repositories/repository.js +157 -0
- package/dist/repositories/repository.js.map +1 -0
- package/dist/transaction.d.ts +30 -0
- package/dist/transaction.js +18 -0
- package/dist/transaction.js.map +1 -0
- package/dist/type-resolver.d.ts +42 -0
- package/dist/type-resolver.js +61 -0
- package/dist/type-resolver.js.map +1 -0
- package/{lib → dist}/types/any.d.ts +1 -1
- package/{lib6 → dist}/types/any.js +3 -2
- package/dist/types/any.js.map +1 -0
- package/{lib6 → dist}/types/array.d.ts +4 -4
- package/{lib → dist}/types/array.js +6 -4
- package/dist/types/array.js.map +1 -0
- package/{lib → dist}/types/boolean.d.ts +1 -1
- package/{lib6 → dist}/types/boolean.js +3 -2
- package/dist/types/boolean.js.map +1 -0
- package/{lib6 → dist}/types/buffer.d.ts +2 -2
- package/{lib → dist}/types/buffer.js +8 -6
- package/dist/types/buffer.js.map +1 -0
- package/{lib → dist}/types/date.d.ts +1 -1
- package/{lib → dist}/types/date.js +6 -4
- package/dist/types/date.js.map +1 -0
- package/{lib → dist}/types/index.d.ts +11 -9
- package/dist/types/index.js +49 -0
- package/dist/types/index.js.map +1 -0
- package/{lib6 → dist}/types/model.d.ts +2 -1
- package/{lib6 → dist}/types/model.js +2 -2
- package/dist/types/model.js.map +1 -0
- package/dist/types/null.d.ts +12 -0
- package/{lib/types/boolean.js → dist/types/null.js} +12 -11
- package/dist/types/null.js.map +1 -0
- package/{lib6 → dist}/types/number.d.ts +1 -1
- package/{lib → dist}/types/number.js +6 -4
- package/dist/types/number.js.map +1 -0
- package/{lib → dist}/types/object.d.ts +1 -1
- package/{lib → dist}/types/object.js +7 -6
- package/dist/types/object.js.map +1 -0
- package/{lib → dist}/types/string.d.ts +1 -1
- package/{lib → dist}/types/string.js +3 -2
- package/dist/types/string.js.map +1 -0
- package/{lib6 → dist}/types/type.d.ts +7 -7
- package/{lib6 → dist}/types/type.js +1 -1
- package/dist/types/type.js.map +1 -0
- package/{lib → dist}/types/union.d.ts +1 -1
- package/{lib → dist}/types/union.js +6 -4
- package/dist/types/union.js.map +1 -0
- package/package.json +49 -33
- package/src/common-types.ts +123 -0
- package/src/connectors/connector.ts +70 -0
- package/src/connectors/crud.connector.ts +208 -0
- package/src/connectors/index.ts +8 -0
- package/src/connectors/kv.connector.ts +113 -0
- package/src/datasource.ts +37 -0
- package/src/decorators/index.ts +8 -0
- package/src/decorators/metadata.ts +84 -0
- package/src/decorators/model.decorator.ts +166 -0
- package/src/decorators/repository.decorator.ts +223 -0
- package/src/define-model-class.ts +90 -0
- package/src/define-repository-class.ts +170 -0
- package/src/errors/entity-not-found.error.ts +40 -0
- package/src/errors/index.ts +7 -0
- package/src/errors/invalid-relation.error.ts +39 -0
- package/src/index.ts +36 -0
- package/src/keys.ts +40 -0
- package/{index.d.ts → src/mixins/index.ts} +2 -2
- package/src/mixins/repository.mixin.ts +499 -0
- package/src/model.ts +539 -0
- package/src/relations/belongs-to/belongs-to.accessor.ts +74 -0
- package/src/relations/belongs-to/belongs-to.decorator.ts +81 -0
- package/src/relations/belongs-to/belongs-to.helpers.ts +78 -0
- package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +71 -0
- package/src/relations/belongs-to/belongs-to.repository.ts +55 -0
- package/src/relations/belongs-to/index.ts +9 -0
- package/src/relations/has-many/has-many-through.helpers.ts +361 -0
- package/src/relations/has-many/has-many-through.inclusion-resolver.ts +135 -0
- package/src/relations/has-many/has-many-through.repository-factory.ts +121 -0
- package/src/relations/has-many/has-many-through.repository.ts +318 -0
- package/src/relations/has-many/has-many.decorator.ts +38 -0
- package/src/relations/has-many/has-many.helpers.ts +100 -0
- package/src/relations/has-many/has-many.inclusion-resolver.ts +88 -0
- package/src/relations/has-many/has-many.repository-factory.ts +76 -0
- package/src/relations/has-many/has-many.repository.ts +118 -0
- package/src/relations/has-many/index.ts +11 -0
- package/src/relations/has-one/has-one.decorator.ts +40 -0
- package/src/relations/has-one/has-one.helpers.ts +84 -0
- package/src/relations/has-one/has-one.inclusion-resolver.ts +65 -0
- package/src/relations/has-one/has-one.repository-factory.ts +72 -0
- package/src/relations/has-one/has-one.repository.ts +127 -0
- package/src/relations/has-one/index.ts +8 -0
- package/src/relations/index.ts +11 -0
- package/src/relations/relation.decorator.ts +90 -0
- package/src/relations/relation.helpers.ts +364 -0
- package/src/relations/relation.types.ts +180 -0
- package/src/repositories/constraint-utils.ts +98 -0
- package/src/repositories/index.ts +10 -0
- package/src/repositories/kv.repository.bridge.ts +97 -0
- package/src/repositories/kv.repository.ts +87 -0
- package/src/repositories/legacy-juggler-bridge.ts +788 -0
- package/src/repositories/repository.ts +441 -0
- package/src/transaction.ts +39 -0
- package/src/type-resolver.ts +98 -0
- package/src/types/any.ts +38 -0
- package/src/types/array.ts +53 -0
- package/src/types/boolean.ts +35 -0
- package/src/types/buffer.ts +53 -0
- package/src/types/date.ts +61 -0
- package/src/types/index.ts +52 -0
- package/src/types/model.ts +24 -0
- package/src/types/null.ts +35 -0
- package/src/types/number.ts +42 -0
- package/src/types/object.ts +53 -0
- package/src/types/string.ts +42 -0
- package/src/types/type.ts +51 -0
- package/src/types/union.ts +55 -0
- package/api-docs/apple-touch-icon-114x114-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-144x144-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-57x57-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-72x72-precomposed.png +0 -0
- package/api-docs/apple-touch-icon-precomposed.png +0 -0
- package/api-docs/apple-touch-icon.png +0 -0
- package/api-docs/css/bootstrap.min.css +0 -9
- package/api-docs/css/code-themes/arta.css +0 -158
- package/api-docs/css/code-themes/ascetic.css +0 -50
- package/api-docs/css/code-themes/brown_paper.css +0 -104
- package/api-docs/css/code-themes/brown_papersq.png +0 -0
- package/api-docs/css/code-themes/dark.css +0 -103
- package/api-docs/css/code-themes/default.css +0 -135
- package/api-docs/css/code-themes/far.css +0 -111
- package/api-docs/css/code-themes/github.css +0 -127
- package/api-docs/css/code-themes/googlecode.css +0 -144
- package/api-docs/css/code-themes/idea.css +0 -121
- package/api-docs/css/code-themes/ir_black.css +0 -104
- package/api-docs/css/code-themes/magula.css +0 -121
- package/api-docs/css/code-themes/monokai.css +0 -114
- package/api-docs/css/code-themes/pojoaque.css +0 -104
- package/api-docs/css/code-themes/pojoaque.jpg +0 -0
- package/api-docs/css/code-themes/rainbow.css +0 -114
- package/api-docs/css/code-themes/school_book.css +0 -111
- package/api-docs/css/code-themes/school_book.png +0 -0
- package/api-docs/css/code-themes/sl-theme.css +0 -45
- package/api-docs/css/code-themes/solarized_dark.css +0 -88
- package/api-docs/css/code-themes/solarized_light.css +0 -88
- package/api-docs/css/code-themes/sunburst.css +0 -158
- package/api-docs/css/code-themes/tomorrow-night-blue.css +0 -52
- package/api-docs/css/code-themes/tomorrow-night-bright.css +0 -51
- package/api-docs/css/code-themes/tomorrow-night-eighties.css +0 -51
- package/api-docs/css/code-themes/tomorrow-night.css +0 -52
- package/api-docs/css/code-themes/tomorrow.css +0 -49
- package/api-docs/css/code-themes/vs.css +0 -86
- package/api-docs/css/code-themes/xcode.css +0 -154
- package/api-docs/css/code-themes/zenburn.css +0 -115
- package/api-docs/css/main.css +0 -139
- package/api-docs/favicon.ico +0 -0
- package/api-docs/fonts/0ihfXUL2emPh0ROJezvraLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/fonts/OsJ2DjdpjqFRVUSto6IffLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/fonts/_aijTyevf54tkVDLy-dlnLO3LdcAZYWl9Si6vvxL-qU.woff +0 -0
- package/api-docs/index.html +0 -18017
- package/api-docs/js/main.js +0 -19
- package/api-docs/js/vendor/bootstrap.min.js +0 -6
- package/api-docs/js/vendor/jquery-1.10.1.min.js +0 -6
- package/api-docs/js/vendor/jquery.scrollTo-1.4.3.1.js +0 -218
- package/api-docs/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js +0 -11
- package/index.js +0 -9
- package/lib/common-types.d.ts +0 -44
- package/lib/common-types.js.map +0 -1
- package/lib/connector.d.ts +0 -12
- package/lib/connector.js.map +0 -1
- package/lib/crud-connector.js.map +0 -1
- package/lib/datasource.d.ts +0 -11
- package/lib/datasource.js.map +0 -1
- package/lib/decorators/model.d.ts +0 -17
- package/lib/decorators/model.js +0 -55
- package/lib/decorators/model.js.map +0 -1
- package/lib/decorators/relation.d.ts +0 -65
- package/lib/decorators/relation.js +0 -126
- package/lib/decorators/relation.js.map +0 -1
- package/lib/decorators/repository.d.ts +0 -61
- package/lib/decorators/repository.js +0 -107
- package/lib/decorators/repository.js.map +0 -1
- package/lib/index.d.ts +0 -17
- package/lib/index.js +0 -21
- package/lib/index.js.map +0 -1
- package/lib/kv-connector.d.ts +0 -77
- package/lib/kv-connector.js +0 -7
- package/lib/kv-connector.js.map +0 -1
- package/lib/kv-repository.d.ts +0 -78
- package/lib/kv-repository.js +0 -7
- package/lib/kv-repository.js.map +0 -1
- package/lib/legacy-juggler-bridge.d.ts +0 -53
- package/lib/legacy-juggler-bridge.js +0 -142
- package/lib/legacy-juggler-bridge.js.map +0 -1
- package/lib/loopback-datasource-juggler.d.ts +0 -666
- package/lib/loopback-datasource-juggler.js +0 -8
- package/lib/loopback-datasource-juggler.js.map +0 -1
- package/lib/mixin.d.ts +0 -43
- package/lib/mixin.js +0 -34
- package/lib/mixin.js.map +0 -1
- package/lib/model.d.ts +0 -137
- package/lib/model.js +0 -182
- package/lib/model.js.map +0 -1
- package/lib/query.d.ts +0 -112
- package/lib/query.js +0 -25
- package/lib/query.js.map +0 -1
- package/lib/repository-mixin.d.ts +0 -20
- package/lib/repository-mixin.js +0 -111
- package/lib/repository-mixin.js.map +0 -1
- package/lib/repository.d.ts +0 -172
- package/lib/repository.js +0 -128
- package/lib/repository.js.map +0 -1
- package/lib/types/any.js +0 -35
- package/lib/types/any.js.map +0 -1
- package/lib/types/array.d.ts +0 -14
- package/lib/types/array.js.map +0 -1
- package/lib/types/boolean.js.map +0 -1
- package/lib/types/buffer.d.ts +0 -14
- package/lib/types/buffer.js.map +0 -1
- package/lib/types/date.js.map +0 -1
- package/lib/types/index.js +0 -33
- package/lib/types/index.js.map +0 -1
- package/lib/types/model.d.ts +0 -11
- package/lib/types/model.js +0 -25
- package/lib/types/model.js.map +0 -1
- package/lib/types/number.d.ts +0 -12
- package/lib/types/number.js.map +0 -1
- package/lib/types/object.js.map +0 -1
- package/lib/types/string.js.map +0 -1
- package/lib/types/type.d.ts +0 -38
- package/lib/types/type.js +0 -7
- package/lib/types/type.js.map +0 -1
- package/lib/types/union.js.map +0 -1
- package/lib6/common-types.d.ts +0 -44
- package/lib6/common-types.js +0 -7
- package/lib6/common-types.js.map +0 -1
- package/lib6/connector.d.ts +0 -12
- package/lib6/connector.js +0 -7
- package/lib6/connector.js.map +0 -1
- package/lib6/crud-connector.d.ts +0 -130
- package/lib6/crud-connector.js +0 -7
- package/lib6/crud-connector.js.map +0 -1
- package/lib6/datasource.d.ts +0 -11
- package/lib6/datasource.js.map +0 -1
- package/lib6/decorators/model.d.ts +0 -17
- package/lib6/decorators/model.js +0 -55
- package/lib6/decorators/model.js.map +0 -1
- package/lib6/decorators/relation.d.ts +0 -65
- package/lib6/decorators/relation.js +0 -126
- package/lib6/decorators/relation.js.map +0 -1
- package/lib6/decorators/repository.d.ts +0 -61
- package/lib6/decorators/repository.js +0 -117
- package/lib6/decorators/repository.js.map +0 -1
- package/lib6/index.d.ts +0 -17
- package/lib6/index.js +0 -21
- package/lib6/index.js.map +0 -1
- package/lib6/kv-connector.js +0 -7
- package/lib6/kv-connector.js.map +0 -1
- package/lib6/kv-repository.d.ts +0 -78
- package/lib6/kv-repository.js +0 -7
- package/lib6/kv-repository.js.map +0 -1
- package/lib6/legacy-juggler-bridge.d.ts +0 -53
- package/lib6/legacy-juggler-bridge.js +0 -158
- package/lib6/legacy-juggler-bridge.js.map +0 -1
- package/lib6/loopback-datasource-juggler.d.ts +0 -666
- package/lib6/loopback-datasource-juggler.js +0 -8
- package/lib6/loopback-datasource-juggler.js.map +0 -1
- package/lib6/mixin.d.ts +0 -43
- package/lib6/mixin.js +0 -34
- package/lib6/mixin.js.map +0 -1
- package/lib6/model.d.ts +0 -137
- package/lib6/model.js +0 -182
- package/lib6/model.js.map +0 -1
- package/lib6/query.d.ts +0 -112
- package/lib6/query.js +0 -25
- package/lib6/query.js.map +0 -1
- package/lib6/repository-mixin.d.ts +0 -20
- package/lib6/repository-mixin.js +0 -111
- package/lib6/repository-mixin.js.map +0 -1
- package/lib6/repository.d.ts +0 -172
- package/lib6/repository.js +0 -128
- package/lib6/repository.js.map +0 -1
- package/lib6/types/any.d.ts +0 -12
- package/lib6/types/any.js.map +0 -1
- package/lib6/types/array.js +0 -53
- package/lib6/types/array.js.map +0 -1
- package/lib6/types/boolean.d.ts +0 -12
- package/lib6/types/boolean.js.map +0 -1
- package/lib6/types/buffer.js +0 -57
- package/lib6/types/buffer.js.map +0 -1
- package/lib6/types/date.d.ts +0 -12
- package/lib6/types/date.js +0 -60
- package/lib6/types/date.js.map +0 -1
- package/lib6/types/index.d.ts +0 -30
- package/lib6/types/index.js +0 -33
- package/lib6/types/index.js.map +0 -1
- package/lib6/types/model.js.map +0 -1
- package/lib6/types/number.js +0 -40
- package/lib6/types/number.js.map +0 -1
- package/lib6/types/object.d.ts +0 -15
- package/lib6/types/object.js +0 -49
- package/lib6/types/object.js.map +0 -1
- package/lib6/types/string.d.ts +0 -12
- package/lib6/types/string.js +0 -40
- package/lib6/types/string.js.map +0 -1
- package/lib6/types/type.js.map +0 -1
- package/lib6/types/union.d.ts +0 -14
- package/lib6/types/union.js +0 -51
- package/lib6/types/union.js.map +0 -1
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
3
|
+
// Node module: @loopback/repository
|
|
4
|
+
// This file is licensed under the MIT License.
|
|
5
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DefaultTransactionalRepository = exports.DefaultCrudRepository = exports.ensurePromise = exports.bindModel = exports.juggler = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const assert_1 = (0, tslib_1.__importDefault)(require("assert"));
|
|
10
|
+
const loopback_datasource_juggler_1 = (0, tslib_1.__importDefault)(require("loopback-datasource-juggler"));
|
|
11
|
+
const errors_1 = require("../errors");
|
|
12
|
+
const model_1 = require("../model");
|
|
13
|
+
const relations_1 = require("../relations");
|
|
14
|
+
const type_resolver_1 = require("../type-resolver");
|
|
15
|
+
var juggler;
|
|
16
|
+
(function (juggler) {
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
18
|
+
juggler.DataSource = loopback_datasource_juggler_1.default.DataSource;
|
|
19
|
+
juggler.ModelBase = loopback_datasource_juggler_1.default.ModelBase;
|
|
20
|
+
juggler.PersistedModel = loopback_datasource_juggler_1.default.PersistedModel;
|
|
21
|
+
juggler.KeyValueModel = loopback_datasource_juggler_1.default.KeyValueModel;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
23
|
+
juggler.IsolationLevel = loopback_datasource_juggler_1.default.IsolationLevel;
|
|
24
|
+
})(juggler = exports.juggler || (exports.juggler = {}));
|
|
25
|
+
function isModelClass(propertyType) {
|
|
26
|
+
return (!(0, type_resolver_1.isTypeResolver)(propertyType) &&
|
|
27
|
+
typeof propertyType === 'function' &&
|
|
28
|
+
typeof propertyType.definition === 'object' &&
|
|
29
|
+
propertyType.toString().startsWith('class '));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* This is a bridge to the legacy DAO class. The function mixes DAO methods
|
|
33
|
+
* into a model class and attach it to a given data source
|
|
34
|
+
* @param modelClass - Model class
|
|
35
|
+
* @param ds - Data source
|
|
36
|
+
* @returns {} The new model class with DAO (CRUD) operations
|
|
37
|
+
*/
|
|
38
|
+
function bindModel(modelClass, ds) {
|
|
39
|
+
const BoundModelClass = class extends modelClass {
|
|
40
|
+
};
|
|
41
|
+
BoundModelClass.attachTo(ds);
|
|
42
|
+
return BoundModelClass;
|
|
43
|
+
}
|
|
44
|
+
exports.bindModel = bindModel;
|
|
45
|
+
/**
|
|
46
|
+
* Ensure the value is a promise
|
|
47
|
+
* @param p - Promise or void
|
|
48
|
+
*/
|
|
49
|
+
function ensurePromise(p) {
|
|
50
|
+
if (p && p instanceof Promise) {
|
|
51
|
+
return p;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return Promise.reject(new Error('The value should be a Promise: ' + p));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ensurePromise = ensurePromise;
|
|
58
|
+
/**
|
|
59
|
+
* Default implementation of CRUD repository using legacy juggler model
|
|
60
|
+
* and data source
|
|
61
|
+
*/
|
|
62
|
+
class DefaultCrudRepository {
|
|
63
|
+
/**
|
|
64
|
+
* Constructor of DefaultCrudRepository
|
|
65
|
+
* @param entityClass - LoopBack 4 entity class
|
|
66
|
+
* @param dataSource - Legacy juggler data source
|
|
67
|
+
*/
|
|
68
|
+
constructor(
|
|
69
|
+
// entityClass should have type "typeof T", but that's not supported by TSC
|
|
70
|
+
entityClass, dataSource) {
|
|
71
|
+
this.entityClass = entityClass;
|
|
72
|
+
this.dataSource = dataSource;
|
|
73
|
+
this.inclusionResolvers = new Map();
|
|
74
|
+
const definition = entityClass.definition;
|
|
75
|
+
(0, assert_1.default)(!!definition, `Entity ${entityClass.name} must have valid model definition.`);
|
|
76
|
+
(0, assert_1.default)(definition.idProperties().length > 0, `Entity ${entityClass.name} must have at least one id/pk property.`);
|
|
77
|
+
this.modelClass = this.ensurePersistedModel(entityClass);
|
|
78
|
+
}
|
|
79
|
+
// Create an internal legacy Model attached to the datasource
|
|
80
|
+
ensurePersistedModel(entityClass) {
|
|
81
|
+
const definition = entityClass.definition;
|
|
82
|
+
(0, assert_1.default)(!!definition, `Entity ${entityClass.name} must have valid model definition.`);
|
|
83
|
+
const dataSource = this.dataSource;
|
|
84
|
+
const model = dataSource.getModel(definition.name);
|
|
85
|
+
if (model) {
|
|
86
|
+
// The backing persisted model has been already defined.
|
|
87
|
+
return model;
|
|
88
|
+
}
|
|
89
|
+
return this.definePersistedModel(entityClass);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Creates a legacy persisted model class, attaches it to the datasource and
|
|
93
|
+
* returns it. This method can be overriden in sub-classes to acess methods
|
|
94
|
+
* and properties in the generated model class.
|
|
95
|
+
* @param entityClass - LB4 Entity constructor
|
|
96
|
+
*/
|
|
97
|
+
definePersistedModel(entityClass) {
|
|
98
|
+
const dataSource = this.dataSource;
|
|
99
|
+
const definition = entityClass.definition;
|
|
100
|
+
// To handle circular reference back to the same model,
|
|
101
|
+
// we create a placeholder model that will be replaced by real one later
|
|
102
|
+
dataSource.getModel(definition.name, true /* forceCreate */);
|
|
103
|
+
// We need to convert property definitions from PropertyDefinition
|
|
104
|
+
// to plain data object because of a juggler limitation
|
|
105
|
+
const properties = {};
|
|
106
|
+
// We need to convert PropertyDefinition into the definition that
|
|
107
|
+
// the juggler understands
|
|
108
|
+
Object.entries(definition.properties).forEach(([key, value]) => {
|
|
109
|
+
// always clone value so that we do not modify the original model definition
|
|
110
|
+
// ensures that model definitions can be reused with multiple datasources
|
|
111
|
+
if (value.type === 'array' || value.type === Array) {
|
|
112
|
+
value = Object.assign({}, value, {
|
|
113
|
+
type: [value.itemType && this.resolvePropertyType(value.itemType)],
|
|
114
|
+
});
|
|
115
|
+
delete value.itemType;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
value = Object.assign({}, value, {
|
|
119
|
+
type: this.resolvePropertyType(value.type),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
properties[key] = Object.assign({}, value);
|
|
123
|
+
});
|
|
124
|
+
const modelClass = dataSource.createModel(definition.name, properties, Object.assign(
|
|
125
|
+
// settings that users can override
|
|
126
|
+
{ strict: true },
|
|
127
|
+
// user-defined settings
|
|
128
|
+
definition.settings,
|
|
129
|
+
// settings enforced by the framework
|
|
130
|
+
{ strictDelete: false }));
|
|
131
|
+
modelClass.attachTo(dataSource);
|
|
132
|
+
return modelClass;
|
|
133
|
+
}
|
|
134
|
+
resolvePropertyType(type) {
|
|
135
|
+
const resolved = (0, type_resolver_1.resolveType)(type);
|
|
136
|
+
return isModelClass(resolved)
|
|
137
|
+
? this.ensurePersistedModel(resolved)
|
|
138
|
+
: resolved;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @deprecated
|
|
142
|
+
* Function to create a constrained relation repository factory
|
|
143
|
+
*
|
|
144
|
+
* Use `this.createHasManyRepositoryFactoryFor()` instead
|
|
145
|
+
*
|
|
146
|
+
* @param relationName - Name of the relation defined on the source model
|
|
147
|
+
* @param targetRepo - Target repository instance
|
|
148
|
+
*/
|
|
149
|
+
_createHasManyRepositoryFactoryFor(relationName, targetRepoGetter) {
|
|
150
|
+
return this.createHasManyRepositoryFactoryFor(relationName, targetRepoGetter);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Function to create a constrained relation repository factory
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* class CustomerRepository extends DefaultCrudRepository<
|
|
158
|
+
* Customer,
|
|
159
|
+
* typeof Customer.prototype.id,
|
|
160
|
+
* CustomerRelations
|
|
161
|
+
* > {
|
|
162
|
+
* public readonly orders: HasManyRepositoryFactory<Order, typeof Customer.prototype.id>;
|
|
163
|
+
*
|
|
164
|
+
* constructor(
|
|
165
|
+
* protected db: juggler.DataSource,
|
|
166
|
+
* orderRepository: EntityCrudRepository<Order, typeof Order.prototype.id>,
|
|
167
|
+
* ) {
|
|
168
|
+
* super(Customer, db);
|
|
169
|
+
* this.orders = this._createHasManyRepositoryFactoryFor(
|
|
170
|
+
* 'orders',
|
|
171
|
+
* orderRepository,
|
|
172
|
+
* );
|
|
173
|
+
* }
|
|
174
|
+
* }
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* @param relationName - Name of the relation defined on the source model
|
|
178
|
+
* @param targetRepo - Target repository instance
|
|
179
|
+
*/
|
|
180
|
+
createHasManyRepositoryFactoryFor(relationName, targetRepoGetter) {
|
|
181
|
+
const meta = this.entityClass.definition.relations[relationName];
|
|
182
|
+
return (0, relations_1.createHasManyRepositoryFactory)(meta, targetRepoGetter);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Function to create a constrained hasManyThrough relation repository factory
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```ts
|
|
189
|
+
* class CustomerRepository extends DefaultCrudRepository<
|
|
190
|
+
* Customer,
|
|
191
|
+
* typeof Customer.prototype.id,
|
|
192
|
+
* CustomerRelations
|
|
193
|
+
* > {
|
|
194
|
+
* public readonly cartItems: HasManyRepositoryFactory<CartItem, typeof Customer.prototype.id>;
|
|
195
|
+
*
|
|
196
|
+
* constructor(
|
|
197
|
+
* protected db: juggler.DataSource,
|
|
198
|
+
* cartItemRepository: EntityCrudRepository<CartItem, typeof, CartItem.prototype.id>,
|
|
199
|
+
* throughRepository: EntityCrudRepository<Through, typeof Through.prototype.id>,
|
|
200
|
+
* ) {
|
|
201
|
+
* super(Customer, db);
|
|
202
|
+
* this.cartItems = this.createHasManyThroughRepositoryFactoryFor(
|
|
203
|
+
* 'cartItems',
|
|
204
|
+
* cartItemRepository,
|
|
205
|
+
* );
|
|
206
|
+
* }
|
|
207
|
+
* }
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* @param relationName - Name of the relation defined on the source model
|
|
211
|
+
* @param targetRepo - Target repository instance
|
|
212
|
+
* @param throughRepo - Through repository instance
|
|
213
|
+
*/
|
|
214
|
+
createHasManyThroughRepositoryFactoryFor(relationName, targetRepoGetter, throughRepoGetter) {
|
|
215
|
+
const meta = this.entityClass.definition.relations[relationName];
|
|
216
|
+
return (0, relations_1.createHasManyThroughRepositoryFactory)(meta, targetRepoGetter, throughRepoGetter);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* @deprecated
|
|
220
|
+
* Function to create a belongs to accessor
|
|
221
|
+
*
|
|
222
|
+
* Use `this.createBelongsToAccessorFor()` instead
|
|
223
|
+
*
|
|
224
|
+
* @param relationName - Name of the relation defined on the source model
|
|
225
|
+
* @param targetRepo - Target repository instance
|
|
226
|
+
*/
|
|
227
|
+
_createBelongsToAccessorFor(relationName, targetRepoGetter) {
|
|
228
|
+
return this.createBelongsToAccessorFor(relationName, targetRepoGetter);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Function to create a belongs to accessor
|
|
232
|
+
*
|
|
233
|
+
* @param relationName - Name of the relation defined on the source model
|
|
234
|
+
* @param targetRepo - Target repository instance
|
|
235
|
+
*/
|
|
236
|
+
createBelongsToAccessorFor(relationName, targetRepoGetter) {
|
|
237
|
+
const meta = this.entityClass.definition.relations[relationName];
|
|
238
|
+
return (0, relations_1.createBelongsToAccessor)(meta, targetRepoGetter, this);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* @deprecated
|
|
242
|
+
* Function to create a constrained hasOne relation repository factory
|
|
243
|
+
*
|
|
244
|
+
* @param relationName - Name of the relation defined on the source model
|
|
245
|
+
* @param targetRepo - Target repository instance
|
|
246
|
+
*/
|
|
247
|
+
_createHasOneRepositoryFactoryFor(relationName, targetRepoGetter) {
|
|
248
|
+
return this.createHasOneRepositoryFactoryFor(relationName, targetRepoGetter);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Function to create a constrained hasOne relation repository factory
|
|
252
|
+
*
|
|
253
|
+
* @param relationName - Name of the relation defined on the source model
|
|
254
|
+
* @param targetRepo - Target repository instance
|
|
255
|
+
*/
|
|
256
|
+
createHasOneRepositoryFactoryFor(relationName, targetRepoGetter) {
|
|
257
|
+
const meta = this.entityClass.definition.relations[relationName];
|
|
258
|
+
return (0, relations_1.createHasOneRepositoryFactory)(meta, targetRepoGetter);
|
|
259
|
+
}
|
|
260
|
+
async create(entity, options) {
|
|
261
|
+
// perform persist hook
|
|
262
|
+
const data = await this.entityToData(entity, options);
|
|
263
|
+
const model = await ensurePromise(this.modelClass.create(data, options));
|
|
264
|
+
return this.toEntity(model);
|
|
265
|
+
}
|
|
266
|
+
async createAll(entities, options) {
|
|
267
|
+
// perform persist hook
|
|
268
|
+
const data = await Promise.all(entities.map(e => this.entityToData(e, options)));
|
|
269
|
+
const models = await ensurePromise(this.modelClass.create(data, options));
|
|
270
|
+
return this.toEntities(models);
|
|
271
|
+
}
|
|
272
|
+
async save(entity, options) {
|
|
273
|
+
const id = this.entityClass.getIdOf(entity);
|
|
274
|
+
if (id == null) {
|
|
275
|
+
return this.create(entity, options);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
await this.replaceById(id, entity, options);
|
|
279
|
+
return new this.entityClass(entity.toObject());
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
async find(filter, options) {
|
|
283
|
+
const include = filter === null || filter === void 0 ? void 0 : filter.include;
|
|
284
|
+
const models = await ensurePromise(this.modelClass.find(this.normalizeFilter(filter), options));
|
|
285
|
+
const entities = this.toEntities(models);
|
|
286
|
+
return this.includeRelatedModels(entities, include, options);
|
|
287
|
+
}
|
|
288
|
+
async findOne(filter, options) {
|
|
289
|
+
const model = await ensurePromise(this.modelClass.findOne(this.normalizeFilter(filter), options));
|
|
290
|
+
if (!model)
|
|
291
|
+
return null;
|
|
292
|
+
const entity = this.toEntity(model);
|
|
293
|
+
const include = filter === null || filter === void 0 ? void 0 : filter.include;
|
|
294
|
+
const resolved = await this.includeRelatedModels([entity], include, options);
|
|
295
|
+
return resolved[0];
|
|
296
|
+
}
|
|
297
|
+
async findById(id, filter, options) {
|
|
298
|
+
const include = filter === null || filter === void 0 ? void 0 : filter.include;
|
|
299
|
+
const model = await ensurePromise(this.modelClass.findById(id, this.normalizeFilter(filter), options));
|
|
300
|
+
if (!model) {
|
|
301
|
+
throw new errors_1.EntityNotFoundError(this.entityClass, id);
|
|
302
|
+
}
|
|
303
|
+
const entity = this.toEntity(model);
|
|
304
|
+
const resolved = await this.includeRelatedModels([entity], include, options);
|
|
305
|
+
return resolved[0];
|
|
306
|
+
}
|
|
307
|
+
update(entity, options) {
|
|
308
|
+
return this.updateById(entity.getId(), entity, options);
|
|
309
|
+
}
|
|
310
|
+
async delete(entity, options) {
|
|
311
|
+
// perform persist hook
|
|
312
|
+
await this.entityToData(entity, options);
|
|
313
|
+
return this.deleteById(entity.getId(), options);
|
|
314
|
+
}
|
|
315
|
+
async updateAll(data, where, options) {
|
|
316
|
+
where = where !== null && where !== void 0 ? where : {};
|
|
317
|
+
const persistedData = await this.entityToData(data, options);
|
|
318
|
+
const result = await ensurePromise(this.modelClass.updateAll(where, persistedData, options));
|
|
319
|
+
return { count: result.count };
|
|
320
|
+
}
|
|
321
|
+
async updateById(id, data, options) {
|
|
322
|
+
if (id === undefined) {
|
|
323
|
+
throw new Error('Invalid Argument: id cannot be undefined');
|
|
324
|
+
}
|
|
325
|
+
const idProp = this.modelClass.definition.idName();
|
|
326
|
+
const where = {};
|
|
327
|
+
where[idProp] = id;
|
|
328
|
+
const result = await this.updateAll(data, where, options);
|
|
329
|
+
if (result.count === 0) {
|
|
330
|
+
throw new errors_1.EntityNotFoundError(this.entityClass, id);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
async replaceById(id, data, options) {
|
|
334
|
+
try {
|
|
335
|
+
const payload = await this.entityToData(data, options);
|
|
336
|
+
await ensurePromise(this.modelClass.replaceById(id, payload, options));
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
if (err.statusCode === 404) {
|
|
340
|
+
throw new errors_1.EntityNotFoundError(this.entityClass, id);
|
|
341
|
+
}
|
|
342
|
+
throw err;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
async deleteAll(where, options) {
|
|
346
|
+
const result = await ensurePromise(this.modelClass.deleteAll(where, options));
|
|
347
|
+
return { count: result.count };
|
|
348
|
+
}
|
|
349
|
+
async deleteById(id, options) {
|
|
350
|
+
const result = await ensurePromise(this.modelClass.deleteById(id, options));
|
|
351
|
+
if (result.count === 0) {
|
|
352
|
+
throw new errors_1.EntityNotFoundError(this.entityClass, id);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
async count(where, options) {
|
|
356
|
+
const result = await ensurePromise(this.modelClass.count(where, options));
|
|
357
|
+
return { count: result };
|
|
358
|
+
}
|
|
359
|
+
exists(id, options) {
|
|
360
|
+
return ensurePromise(this.modelClass.exists(id, options));
|
|
361
|
+
}
|
|
362
|
+
async execute(...args) {
|
|
363
|
+
return ensurePromise(this.dataSource.execute(...args));
|
|
364
|
+
}
|
|
365
|
+
toEntity(model) {
|
|
366
|
+
return new this.entityClass(model.toObject());
|
|
367
|
+
}
|
|
368
|
+
toEntities(models) {
|
|
369
|
+
return models.map(m => this.toEntity(m));
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Register an inclusion resolver for the related model name.
|
|
373
|
+
*
|
|
374
|
+
* @param relationName - Name of the relation defined on the source model
|
|
375
|
+
* @param resolver - Resolver function for getting related model entities
|
|
376
|
+
*/
|
|
377
|
+
registerInclusionResolver(relationName, resolver) {
|
|
378
|
+
this.inclusionResolvers.set(relationName, resolver);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Returns model instances that include related models of this repository
|
|
382
|
+
* that have a registered resolver.
|
|
383
|
+
*
|
|
384
|
+
* @param entities - An array of entity instances or data
|
|
385
|
+
* @param include -Inclusion filter
|
|
386
|
+
* @param options - Options for the operations
|
|
387
|
+
*/
|
|
388
|
+
async includeRelatedModels(entities, include, options) {
|
|
389
|
+
return (0, relations_1.includeRelatedModels)(this, entities, include, options);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* This function works as a persist hook.
|
|
393
|
+
* It converts an entity from the CRUD operations' caller
|
|
394
|
+
* to a persistable data that can will be stored in the
|
|
395
|
+
* back-end database.
|
|
396
|
+
*
|
|
397
|
+
* User can extend `DefaultCrudRepository` then override this
|
|
398
|
+
* function to execute custom persist hook.
|
|
399
|
+
* @param entity The entity passed from CRUD operations' caller.
|
|
400
|
+
* @param options
|
|
401
|
+
*/
|
|
402
|
+
async entityToData(entity, options = {}) {
|
|
403
|
+
return this.ensurePersistable(entity, options);
|
|
404
|
+
}
|
|
405
|
+
/** Converts an entity object to a JSON object to check if it contains navigational property.
|
|
406
|
+
* Throws an error if `entity` contains navigational property.
|
|
407
|
+
*
|
|
408
|
+
* @param entity The entity passed from CRUD operations' caller.
|
|
409
|
+
* @param options
|
|
410
|
+
*/
|
|
411
|
+
ensurePersistable(entity, options = {}) {
|
|
412
|
+
// FIXME(bajtos) Ideally, we should call toJSON() to convert R to data object
|
|
413
|
+
// Unfortunately that breaks replaceById for MongoDB connector, where we
|
|
414
|
+
// would call replaceId with id *argument* set to ObjectID value but
|
|
415
|
+
// id *property* set to string value.
|
|
416
|
+
/*
|
|
417
|
+
const data: AnyObject =
|
|
418
|
+
typeof entity.toJSON === 'function' ? entity.toJSON() : {...entity};
|
|
419
|
+
*/
|
|
420
|
+
const data = new this.entityClass(entity);
|
|
421
|
+
(0, model_1.rejectNavigationalPropertiesInData)(this.entityClass, data);
|
|
422
|
+
return data;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Removes juggler's "include" filter as it does not apply to LoopBack 4
|
|
426
|
+
* relations.
|
|
427
|
+
*
|
|
428
|
+
* @param filter - Query filter
|
|
429
|
+
*/
|
|
430
|
+
normalizeFilter(filter) {
|
|
431
|
+
if (!filter)
|
|
432
|
+
return undefined;
|
|
433
|
+
return { ...filter, include: undefined };
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
exports.DefaultCrudRepository = DefaultCrudRepository;
|
|
437
|
+
/**
|
|
438
|
+
* Default implementation of CRUD repository using legacy juggler model
|
|
439
|
+
* and data source with beginTransaction() method for connectors which
|
|
440
|
+
* support Transactions
|
|
441
|
+
*/
|
|
442
|
+
class DefaultTransactionalRepository extends DefaultCrudRepository {
|
|
443
|
+
async beginTransaction(options) {
|
|
444
|
+
const dsOptions = options !== null && options !== void 0 ? options : {};
|
|
445
|
+
// juggler.Transaction still has the Promise/Callback variants of the
|
|
446
|
+
// Transaction methods
|
|
447
|
+
// so we need it cast it back
|
|
448
|
+
return (await this.dataSource.beginTransaction(dsOptions));
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
exports.DefaultTransactionalRepository = DefaultTransactionalRepository;
|
|
452
|
+
//# sourceMappingURL=legacy-juggler-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-juggler-bridge.js","sourceRoot":"","sources":["../../src/repositories/legacy-juggler-bridge.ts"],"names":[],"mappings":"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"}
|