@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,123 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2017,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Common types/interfaces such as Class/Constructor/Options/Callback
|
|
8
|
+
*/
|
|
9
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Interface for classes with `new` operator and static properties/methods
|
|
13
|
+
*/
|
|
14
|
+
export interface Class<T> {
|
|
15
|
+
// new MyClass(...args) ==> T
|
|
16
|
+
new (...args: any[]): T;
|
|
17
|
+
// Other static properties/operations
|
|
18
|
+
[property: string]: any;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Interface for constructor functions without `new` operator.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* function Foo(x) {
|
|
27
|
+
* if (!(this instanceof Foo)) { return new Foo(x); }
|
|
28
|
+
* this.x = x;
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export interface ConstructorFunction<T> {
|
|
33
|
+
(...args: any[]): T;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Constructor type - class or function
|
|
38
|
+
*/
|
|
39
|
+
export type Constructor<T> = Class<T> | ConstructorFunction<T>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Objects with open properties
|
|
43
|
+
*/
|
|
44
|
+
export interface AnyObject {
|
|
45
|
+
[property: string]: any;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* An extension of the built-in Partial<T> type which allows partial values
|
|
50
|
+
* in deeply nested properties too.
|
|
51
|
+
*/
|
|
52
|
+
export type DeepPartial<T> =
|
|
53
|
+
| Partial<T> // handle free-form properties, e.g. DeepPartial<AnyObject>
|
|
54
|
+
| {[P in keyof T]?: DeepPartial<T[P]>};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Type alias for strongly or weakly typed objects of T
|
|
58
|
+
*/
|
|
59
|
+
export type DataObject<T extends object> = T | DeepPartial<T>;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Type alias for Node.js options object
|
|
63
|
+
*/
|
|
64
|
+
export type Options = AnyObject;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Type alias for Node.js callback functions
|
|
68
|
+
*/
|
|
69
|
+
export type Callback<T> = (
|
|
70
|
+
err: Error | string | null | undefined,
|
|
71
|
+
result?: T,
|
|
72
|
+
) => void;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Type for a command
|
|
76
|
+
*/
|
|
77
|
+
export type Command = string | AnyObject;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Named parameters, such as `{x: 1, y: 'a'}`
|
|
81
|
+
*/
|
|
82
|
+
export type NamedParameters = AnyObject;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Positional parameters, such as [1, 'a']
|
|
86
|
+
*/
|
|
87
|
+
export type PositionalParameters = any[];
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Count of Model instances that were successful for methods like `updateAll`,
|
|
91
|
+
* `deleteAll`, etc.
|
|
92
|
+
*/
|
|
93
|
+
export interface Count {
|
|
94
|
+
count: number;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* JSON Schema describing the Count interface. It's the response type for
|
|
99
|
+
* REST calls to APIs which return `count`. The type is compatible with
|
|
100
|
+
* `SchemaObject` from `@loopback/openapi-v3`, which is not an explicit
|
|
101
|
+
* dependency for `@loopback/repository`.
|
|
102
|
+
*/
|
|
103
|
+
export const CountSchema /* :SchemaObject */ = {
|
|
104
|
+
type: 'object' as const, // Force to be `object` type instead of `string`
|
|
105
|
+
title: 'loopback.Count',
|
|
106
|
+
'x-typescript-type': '@loopback/repository#Count',
|
|
107
|
+
properties: {
|
|
108
|
+
count: {
|
|
109
|
+
type: 'number' as const, // Force to be `number` type instead of `string`
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Type helper to infer prototype from a constructor function.
|
|
116
|
+
*
|
|
117
|
+
* Example: `PrototypeOf<typeof Entity>` is resolved to `Entity`.
|
|
118
|
+
*/
|
|
119
|
+
export type PrototypeOf<Ctor extends Function> = Ctor extends {
|
|
120
|
+
prototype: infer Proto;
|
|
121
|
+
}
|
|
122
|
+
? Proto
|
|
123
|
+
: never;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2019. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
AnyObject,
|
|
8
|
+
Command,
|
|
9
|
+
NamedParameters,
|
|
10
|
+
Options,
|
|
11
|
+
PositionalParameters,
|
|
12
|
+
} from '../common-types';
|
|
13
|
+
import {Model} from '../model';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Interfaces adopted by a {@link Connector}.
|
|
17
|
+
*
|
|
18
|
+
* @experimental
|
|
19
|
+
*/
|
|
20
|
+
export namespace ConnectorInterfaces {
|
|
21
|
+
/**
|
|
22
|
+
* Strong relation interfaces adopted by a {@link Connector}
|
|
23
|
+
*
|
|
24
|
+
* @experimental
|
|
25
|
+
*/
|
|
26
|
+
export const enum StrongRelation {
|
|
27
|
+
BELONGS_TO = 'strongBelongsTo',
|
|
28
|
+
HAS_ONE = 'strongHasOne',
|
|
29
|
+
HAS_MANY = 'strongHasMany',
|
|
30
|
+
HAS_MANY_THROUGH = 'strongHasManyThrough',
|
|
31
|
+
HAS_AND_BELONGS_TO_MANY = 'strongHasAndBelongsToMany',
|
|
32
|
+
EMBEDS_ONE = 'strongEmbedsOne',
|
|
33
|
+
EMBEDS_MANY = 'strongEmbedsMany',
|
|
34
|
+
REFERNCES_MANY = 'strongReferencesMany',
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Strong query join interfaces adopted by a {@link Connector}
|
|
39
|
+
*
|
|
40
|
+
* @experimental
|
|
41
|
+
*/
|
|
42
|
+
export const enum StrongJoins {
|
|
43
|
+
INNER = 'strongInnerJoin',
|
|
44
|
+
LEFT = 'strongLeftJoin',
|
|
45
|
+
RIGHT = 'strongRightJoin',
|
|
46
|
+
FULL = 'strongFullJoin',
|
|
47
|
+
CARTESIAN = 'strongCartesianJoin',
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Common properties/operations for connectors
|
|
53
|
+
*/
|
|
54
|
+
export interface Connector {
|
|
55
|
+
name: string; // Name/type of the connector
|
|
56
|
+
configModel?: Model; // The configuration model
|
|
57
|
+
interfaces?: (
|
|
58
|
+
| string
|
|
59
|
+
| ConnectorInterfaces.StrongRelation
|
|
60
|
+
| ConnectorInterfaces.StrongJoins
|
|
61
|
+
)[]; // A list of interfaces implemented by the connector
|
|
62
|
+
connect(): Promise<void>; // Connect to the underlying system
|
|
63
|
+
disconnect(): Promise<void>; // Disconnect from the underlying system
|
|
64
|
+
ping(): Promise<void>; // Ping the underlying system
|
|
65
|
+
execute?(
|
|
66
|
+
command: Command,
|
|
67
|
+
parameters: NamedParameters | PositionalParameters,
|
|
68
|
+
options?: Options,
|
|
69
|
+
): Promise<AnyObject>;
|
|
70
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Filter, Where} from '@loopback/filter';
|
|
7
|
+
import {Class, Count, Options} from '../common-types';
|
|
8
|
+
import {Entity, EntityData} from '../model';
|
|
9
|
+
import {Connector} from './connector';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* CRUD operations for connector implementations
|
|
13
|
+
*/
|
|
14
|
+
export interface CrudConnector extends Connector {
|
|
15
|
+
/**
|
|
16
|
+
* Create a new entity
|
|
17
|
+
* @param modelClass - The model class
|
|
18
|
+
* @param entity - The entity instance or data
|
|
19
|
+
* @param options - Options for the operation
|
|
20
|
+
* @returns A promise of the entity created
|
|
21
|
+
*/
|
|
22
|
+
create(
|
|
23
|
+
modelClass: Class<Entity>,
|
|
24
|
+
entity: EntityData,
|
|
25
|
+
options?: Options,
|
|
26
|
+
): Promise<EntityData>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Create multiple entities
|
|
30
|
+
* @param modelClass - The model class
|
|
31
|
+
* @param entities - An array of entity instances or data
|
|
32
|
+
* @param options - Options for the operation
|
|
33
|
+
* @returns A promise of an array of entities created
|
|
34
|
+
*/
|
|
35
|
+
createAll?(
|
|
36
|
+
modelClass: Class<Entity>,
|
|
37
|
+
entities: EntityData[],
|
|
38
|
+
options?: Options,
|
|
39
|
+
): Promise<EntityData[]>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Save an entity
|
|
43
|
+
* @param modelClass - The model class
|
|
44
|
+
* @param entity - The entity instance or data
|
|
45
|
+
* @param options - Options for the operation
|
|
46
|
+
* @returns A promise of the entity saved
|
|
47
|
+
*/
|
|
48
|
+
save?(
|
|
49
|
+
modelClass: Class<Entity>,
|
|
50
|
+
entity: EntityData,
|
|
51
|
+
options?: Options,
|
|
52
|
+
): Promise<EntityData>;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Find matching entities by the filter
|
|
56
|
+
* @param modelClass - The model class
|
|
57
|
+
* @param filter - The query filter
|
|
58
|
+
* @param options - Options for the operation
|
|
59
|
+
* @returns A promise of an array of entities found for the filter
|
|
60
|
+
*/
|
|
61
|
+
find(
|
|
62
|
+
modelClass: Class<Entity>,
|
|
63
|
+
filter?: Filter,
|
|
64
|
+
options?: Options,
|
|
65
|
+
): Promise<EntityData[]>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Find an entity by id
|
|
69
|
+
* @param modelClass - The model class
|
|
70
|
+
* @param id - The entity id value
|
|
71
|
+
* @param options - Options for the operation
|
|
72
|
+
* @returns A promise of the entity found for the id
|
|
73
|
+
*/
|
|
74
|
+
findById?<IdType>(
|
|
75
|
+
modelClass: Class<Entity>,
|
|
76
|
+
id: IdType,
|
|
77
|
+
options?: Options,
|
|
78
|
+
): Promise<EntityData>;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Update an entity
|
|
82
|
+
* @param modelClass - The model class
|
|
83
|
+
* @param entity - The entity instance or data
|
|
84
|
+
* @param options - Options for the operation
|
|
85
|
+
* @returns Promise<true> if an entity is updated, otherwise
|
|
86
|
+
* Promise<false>
|
|
87
|
+
*/
|
|
88
|
+
update?(
|
|
89
|
+
modelClass: Class<Entity>,
|
|
90
|
+
entity: EntityData,
|
|
91
|
+
options?: Options,
|
|
92
|
+
): Promise<boolean>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Delete an entity
|
|
96
|
+
* @param modelClass - The model class
|
|
97
|
+
* @param entity - The entity instance or data
|
|
98
|
+
* @param options - Options for the operation
|
|
99
|
+
* @returns Promise<true> if an entity is deleted, otherwise
|
|
100
|
+
* Promise<false>
|
|
101
|
+
*/
|
|
102
|
+
delete?(
|
|
103
|
+
modelClass: Class<Entity>,
|
|
104
|
+
entity: EntityData,
|
|
105
|
+
options?: Options,
|
|
106
|
+
): Promise<boolean>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Update matching entities
|
|
110
|
+
* @param modelClass - The model class
|
|
111
|
+
* @param data - The data attributes to be updated
|
|
112
|
+
* @param where - The matching criteria
|
|
113
|
+
* @param options - Options for the operation
|
|
114
|
+
* @returns A promise of number of matching entities deleted
|
|
115
|
+
*/
|
|
116
|
+
updateAll(
|
|
117
|
+
modelClass: Class<Entity>,
|
|
118
|
+
data: EntityData,
|
|
119
|
+
where?: Where<Entity>,
|
|
120
|
+
options?: Options,
|
|
121
|
+
): Promise<Count>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Update an entity by id
|
|
125
|
+
* @param modelClass - The model class
|
|
126
|
+
* @param id - The entity id value
|
|
127
|
+
* @param data - The data attributes to be updated
|
|
128
|
+
* @param options - Options for the operation
|
|
129
|
+
* @returns Promise<true> if an entity is updated for the id, otherwise
|
|
130
|
+
* Promise<false>
|
|
131
|
+
*/
|
|
132
|
+
updateById?<IdType>(
|
|
133
|
+
modelClass: Class<Entity>,
|
|
134
|
+
id: IdType,
|
|
135
|
+
data: EntityData,
|
|
136
|
+
options?: Options,
|
|
137
|
+
): Promise<boolean>;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Replace an entity by id
|
|
141
|
+
* @param modelClass - The model class
|
|
142
|
+
* @param id - The entity id value
|
|
143
|
+
* @param data - The data attributes to be updated
|
|
144
|
+
* @param options - Options for the operation
|
|
145
|
+
* @returns Promise<true> if an entity is replaced for the id, otherwise
|
|
146
|
+
* Promise<false>
|
|
147
|
+
*/
|
|
148
|
+
replaceById?<IdType>(
|
|
149
|
+
modelClass: Class<Entity>,
|
|
150
|
+
id: IdType,
|
|
151
|
+
data: EntityData,
|
|
152
|
+
options?: Options,
|
|
153
|
+
): Promise<boolean>;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Delete matching entities
|
|
157
|
+
* @param modelClass - The model class
|
|
158
|
+
* @param where - The matching criteria
|
|
159
|
+
* @param options - Options for the operation
|
|
160
|
+
* @returns A promise of number of matching entities deleted
|
|
161
|
+
*/
|
|
162
|
+
deleteAll(
|
|
163
|
+
modelClass: Class<Entity>,
|
|
164
|
+
where?: Where<Entity>,
|
|
165
|
+
options?: Options,
|
|
166
|
+
): Promise<Count>;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Delete an entity by id
|
|
170
|
+
* @param modelClass - The model class
|
|
171
|
+
* @param id - The entity id value
|
|
172
|
+
* @param options - Options for the operation
|
|
173
|
+
* @returns Promise<true> if an entity is deleted for the id, otherwise
|
|
174
|
+
* Promise<false>
|
|
175
|
+
*/
|
|
176
|
+
deleteById?<IdType>(
|
|
177
|
+
modelClass: Class<Entity>,
|
|
178
|
+
id: IdType,
|
|
179
|
+
options?: Options,
|
|
180
|
+
): Promise<boolean>;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Count matching entities
|
|
184
|
+
* @param modelClass - The model class
|
|
185
|
+
* @param where - The matching criteria
|
|
186
|
+
* @param options - Options for the operation
|
|
187
|
+
* @returns A promise of number of matching entities
|
|
188
|
+
*/
|
|
189
|
+
count(
|
|
190
|
+
modelClass: Class<Entity>,
|
|
191
|
+
where?: Where<Entity>,
|
|
192
|
+
options?: Options,
|
|
193
|
+
): Promise<Count>;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Check if an entity exists for the id
|
|
197
|
+
* @param modelClass - The model class
|
|
198
|
+
* @param id - The entity id value
|
|
199
|
+
* @param options - Options for the operation
|
|
200
|
+
* @returns Promise<true> if an entity exists for the id, otherwise
|
|
201
|
+
* Promise<false>
|
|
202
|
+
*/
|
|
203
|
+
exists?<IdType>(
|
|
204
|
+
modelClass: Class<Entity>,
|
|
205
|
+
id: IdType,
|
|
206
|
+
options?: Options,
|
|
207
|
+
): Promise<boolean>;
|
|
208
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
export * from './connector';
|
|
7
|
+
export * from './crud.connector';
|
|
8
|
+
export * from './kv.connector';
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Filter} from '@loopback/filter';
|
|
7
|
+
import {Class, Options} from '../common-types';
|
|
8
|
+
import {Entity, EntityData} from '../model';
|
|
9
|
+
import {Connector} from './connector';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Key/Value operations for connector implementations
|
|
13
|
+
*/
|
|
14
|
+
export interface KVConnector<T extends Entity> extends Connector {
|
|
15
|
+
/**
|
|
16
|
+
* Delete an entry by key
|
|
17
|
+
* @param modelClass - Model class
|
|
18
|
+
* @param key - Key for the entry
|
|
19
|
+
* @param options - Options for the operation
|
|
20
|
+
* @returns Promise<true> if an entry is deleted for the id, otherwise
|
|
21
|
+
* Promise<false>
|
|
22
|
+
*/
|
|
23
|
+
delete(
|
|
24
|
+
modelClass: Class<Entity>,
|
|
25
|
+
key: string,
|
|
26
|
+
options?: Options,
|
|
27
|
+
): Promise<boolean>;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Delete all entries
|
|
31
|
+
* @param modelClass - Model class
|
|
32
|
+
* @param options - Options for the operation
|
|
33
|
+
* @returns A promise of the number of entries deleted
|
|
34
|
+
*/
|
|
35
|
+
deleteAll(modelClass: Class<Entity>, options?: Options): Promise<number>;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Get an entry by key
|
|
39
|
+
* @param modelClass - Model class
|
|
40
|
+
* @param key - Key for the entry
|
|
41
|
+
* @param options - Options for the operation
|
|
42
|
+
* @returns A promise of the entry found for the key
|
|
43
|
+
*/
|
|
44
|
+
get(modelClass: Class<Entity>, key: string, options?: Options): Promise<T>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Set an entry with key/value
|
|
48
|
+
* @param modelClass - Model class
|
|
49
|
+
* @param key - Key for the entry
|
|
50
|
+
* @param value - Value for the entry
|
|
51
|
+
* @param options - Options for the operation
|
|
52
|
+
* @returns Promise<true> if an entry is set for the key, otherwise
|
|
53
|
+
* Promise<false>
|
|
54
|
+
*/
|
|
55
|
+
set(
|
|
56
|
+
modelClass: Class<Entity>,
|
|
57
|
+
key: string,
|
|
58
|
+
value: EntityData,
|
|
59
|
+
options?: Options,
|
|
60
|
+
): Promise<boolean>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Set up ttl for an entry by key
|
|
64
|
+
* @param modelClass - Model class
|
|
65
|
+
* @param key - Key for the entry
|
|
66
|
+
* @param options - Options for the operation
|
|
67
|
+
* @returns Promise<true> if an entry is configured for the key, otherwise
|
|
68
|
+
* Promise<false>
|
|
69
|
+
*/
|
|
70
|
+
expire(
|
|
71
|
+
modelClass: Class<Entity>,
|
|
72
|
+
key: string,
|
|
73
|
+
ttl: number,
|
|
74
|
+
options?: Options,
|
|
75
|
+
): Promise<boolean>;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Get ttl for an entry by key
|
|
79
|
+
* @param modelClass - Model class
|
|
80
|
+
* @param key - Key for the entry
|
|
81
|
+
* @param ttl - Time to live in millisenconds
|
|
82
|
+
* @param options - Options for the operation
|
|
83
|
+
* @returns A promise of the TTL value
|
|
84
|
+
*/
|
|
85
|
+
ttl?(
|
|
86
|
+
modelClass: Class<Entity>,
|
|
87
|
+
key: string,
|
|
88
|
+
ttl: number,
|
|
89
|
+
options?: Options,
|
|
90
|
+
): Promise<number>;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Fetch all keys
|
|
94
|
+
* @param modelClass - Model class
|
|
95
|
+
* @param key - Key for the entry
|
|
96
|
+
* @param options - Options for the operation
|
|
97
|
+
* @returns A promise of an array of keys for all entries
|
|
98
|
+
*/
|
|
99
|
+
keys?(modelClass: Class<Entity>, options?: Options): Promise<string[]>;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Get an Iterator for matching keys
|
|
103
|
+
* @param modelClass - Model class
|
|
104
|
+
* @param filter - Matching filter
|
|
105
|
+
* @param options - Options for the operation
|
|
106
|
+
* @returns A promise of an iterator of entries
|
|
107
|
+
*/
|
|
108
|
+
iterateKeys?(
|
|
109
|
+
modelClass: Class<Entity>,
|
|
110
|
+
filter?: Filter,
|
|
111
|
+
options?: Options,
|
|
112
|
+
): Promise<Iterator<T>>;
|
|
113
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2017,2019. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {AnyObject, Options} from './common-types';
|
|
7
|
+
import {Connector} from './connectors';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* DataSource denotes a configured connector
|
|
11
|
+
*/
|
|
12
|
+
export interface DataSource {
|
|
13
|
+
name: string; // Name of the data source
|
|
14
|
+
connector?: Connector; // The underlying connector instance
|
|
15
|
+
|
|
16
|
+
settings: AnyObject; // Settings
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
[property: string]: any; // Other properties that vary by connectors
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SchemaMigrationOptions extends Options {
|
|
22
|
+
/**
|
|
23
|
+
* When set to 'drop', schema migration will drop existing tables and recreate
|
|
24
|
+
* them from scratch, removing any existing data along the way.
|
|
25
|
+
*
|
|
26
|
+
* When set to 'alter', schema migration will try to preserve current schema
|
|
27
|
+
* and data, and perform a non-destructive incremental update.
|
|
28
|
+
*/
|
|
29
|
+
existingSchema?: 'drop' | 'alter';
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* List of model names to migrate.
|
|
33
|
+
*
|
|
34
|
+
* By default, all models are migrated.
|
|
35
|
+
*/
|
|
36
|
+
models?: string[];
|
|
37
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
export * from './metadata';
|
|
7
|
+
export * from './model.decorator';
|
|
8
|
+
export * from './repository.decorator';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Copyright IBM Corp. 2017,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {InspectionOptions, MetadataInspector} from '@loopback/core';
|
|
7
|
+
import {ModelDefinition, RelationDefinitionMap} from '../model';
|
|
8
|
+
import {RELATIONS_KEY} from '../relations';
|
|
9
|
+
import {
|
|
10
|
+
MODEL_KEY,
|
|
11
|
+
MODEL_PROPERTIES_KEY,
|
|
12
|
+
MODEL_WITH_PROPERTIES_KEY,
|
|
13
|
+
PropertyMap,
|
|
14
|
+
} from './model.decorator';
|
|
15
|
+
|
|
16
|
+
export class ModelMetadataHelper {
|
|
17
|
+
/**
|
|
18
|
+
* A utility function to simplify retrieving metadata from a target model and
|
|
19
|
+
* its properties.
|
|
20
|
+
* @param target - The class from which to retrieve metadata.
|
|
21
|
+
* @param options - An options object for the MetadataInspector to customize
|
|
22
|
+
* the output of the metadata retrieval functions.
|
|
23
|
+
*/
|
|
24
|
+
static getModelMetadata(
|
|
25
|
+
target: Function,
|
|
26
|
+
options?: InspectionOptions,
|
|
27
|
+
): ModelDefinition | {} {
|
|
28
|
+
const classDef = MetadataInspector.getClassMetadata(
|
|
29
|
+
MODEL_WITH_PROPERTIES_KEY,
|
|
30
|
+
target,
|
|
31
|
+
// https://github.com/loopbackio/loopback-next/issues/4721
|
|
32
|
+
// The `target` can be a subclass for a base model
|
|
33
|
+
{...options, ownMetadataOnly: true},
|
|
34
|
+
);
|
|
35
|
+
// Return the cached value, if it exists.
|
|
36
|
+
// XXX(kjdelisle): If we're going to support dynamic updates, then this
|
|
37
|
+
// will be problematic in the future, since it will never update.
|
|
38
|
+
if (classDef) {
|
|
39
|
+
return classDef;
|
|
40
|
+
} else {
|
|
41
|
+
const modelMeta = MetadataInspector.getClassMetadata<ModelDefinition>(
|
|
42
|
+
MODEL_KEY,
|
|
43
|
+
target,
|
|
44
|
+
options,
|
|
45
|
+
);
|
|
46
|
+
if (!modelMeta) {
|
|
47
|
+
return {};
|
|
48
|
+
} else {
|
|
49
|
+
// sets the metadata to a dedicated key if cached value does not exist
|
|
50
|
+
|
|
51
|
+
// set ModelDefinition properties if they don't already exist
|
|
52
|
+
const meta = new ModelDefinition({...modelMeta});
|
|
53
|
+
|
|
54
|
+
// set properties lost from creating instance of ModelDefinition
|
|
55
|
+
Object.assign(meta, modelMeta);
|
|
56
|
+
|
|
57
|
+
meta.properties = Object.assign(
|
|
58
|
+
<PropertyMap>meta.properties,
|
|
59
|
+
MetadataInspector.getAllPropertyMetadata(
|
|
60
|
+
MODEL_PROPERTIES_KEY,
|
|
61
|
+
target.prototype,
|
|
62
|
+
options,
|
|
63
|
+
),
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
meta.relations = Object.assign(
|
|
67
|
+
<RelationDefinitionMap>meta.relations,
|
|
68
|
+
MetadataInspector.getAllPropertyMetadata(
|
|
69
|
+
RELATIONS_KEY,
|
|
70
|
+
target.prototype,
|
|
71
|
+
options,
|
|
72
|
+
),
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
MetadataInspector.defineMetadata(
|
|
76
|
+
MODEL_WITH_PROPERTIES_KEY.key,
|
|
77
|
+
meta,
|
|
78
|
+
target,
|
|
79
|
+
);
|
|
80
|
+
return meta;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|