joist-orm 1.293.0 → 2.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/build/{drivers/PostgresDriver.d.ts → PostgresDriver.d.ts} +1 -4
- package/build/PostgresDriver.d.ts.map +1 -0
- package/build/{drivers/PostgresDriver.js → PostgresDriver.js} +49 -58
- package/build/PostgresDriver.js.map +1 -0
- package/build/codegen.d.ts +2 -0
- package/build/codegen.d.ts.map +1 -0
- package/build/codegen.js +29 -0
- package/build/codegen.js.map +1 -0
- package/build/graphql-codegen-export.d.ts +2 -0
- package/build/graphql-codegen-export.d.ts.map +1 -0
- package/build/{drivers/index.js → graphql-codegen-export.js} +3 -5
- package/build/graphql-codegen-export.js.map +1 -0
- package/build/graphql-export.d.ts +2 -0
- package/build/graphql-export.d.ts.map +1 -0
- package/build/graphql-export.js +19 -0
- package/build/graphql-export.js.map +1 -0
- package/build/index.d.ts +3 -127
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -282
- package/build/index.js.map +1 -1
- package/build/knex-export.d.ts +2 -0
- package/build/knex-export.d.ts.map +1 -0
- package/build/knex-export.js +19 -0
- package/build/knex-export.js.map +1 -0
- package/build/pg-migrate.d.ts +2 -0
- package/build/pg-migrate.d.ts.map +1 -0
- package/build/pg-migrate.js +30 -0
- package/build/pg-migrate.js.map +1 -0
- package/build/postgres-driver.d.ts +2 -0
- package/build/postgres-driver.d.ts.map +1 -0
- package/build/postgres-driver.js +7 -0
- package/build/postgres-driver.js.map +1 -0
- package/build/tests-export.d.ts +2 -0
- package/build/tests-export.d.ts.map +1 -0
- package/build/tests-export.js +19 -0
- package/build/tests-export.js.map +1 -0
- package/build/trusted.d.ts +5 -0
- package/build/trusted.d.ts.map +1 -0
- package/build/trusted.js +15 -0
- package/build/trusted.js.map +1 -0
- package/package.json +85 -16
- package/build/AliasAssigner.d.ts +0 -7
- package/build/AliasAssigner.d.ts.map +0 -1
- package/build/AliasAssigner.js +0 -30
- package/build/AliasAssigner.js.map +0 -1
- package/build/Aliases.d.ts +0 -110
- package/build/Aliases.d.ts.map +0 -1
- package/build/Aliases.js +0 -456
- package/build/Aliases.js.map +0 -1
- package/build/BaseEntity.d.ts +0 -66
- package/build/BaseEntity.d.ts.map +0 -1
- package/build/BaseEntity.js +0 -120
- package/build/BaseEntity.js.map +0 -1
- package/build/ConditionBuilder.d.ts +0 -50
- package/build/ConditionBuilder.d.ts.map +0 -1
- package/build/ConditionBuilder.js +0 -178
- package/build/ConditionBuilder.js.map +0 -1
- package/build/Entity.d.ts +0 -38
- package/build/Entity.d.ts.map +0 -1
- package/build/Entity.js +0 -8
- package/build/Entity.js.map +0 -1
- package/build/EntityFields.d.ts +0 -37
- package/build/EntityFields.d.ts.map +0 -1
- package/build/EntityFields.js +0 -3
- package/build/EntityFields.js.map +0 -1
- package/build/EntityFilter.d.ts +0 -113
- package/build/EntityFilter.d.ts.map +0 -1
- package/build/EntityFilter.js +0 -3
- package/build/EntityFilter.js.map +0 -1
- package/build/EntityGraphQLFilter.d.ts +0 -51
- package/build/EntityGraphQLFilter.d.ts.map +0 -1
- package/build/EntityGraphQLFilter.js +0 -54
- package/build/EntityGraphQLFilter.js.map +0 -1
- package/build/EntityManager.d.ts +0 -734
- package/build/EntityManager.d.ts.map +0 -1
- package/build/EntityManager.js +0 -2069
- package/build/EntityManager.js.map +0 -1
- package/build/EntityMetadata.d.ts +0 -185
- package/build/EntityMetadata.d.ts.map +0 -1
- package/build/EntityMetadata.js +0 -61
- package/build/EntityMetadata.js.map +0 -1
- package/build/EnumMetadata.d.ts +0 -15
- package/build/EnumMetadata.d.ts.map +0 -1
- package/build/EnumMetadata.js +0 -3
- package/build/EnumMetadata.js.map +0 -1
- package/build/FlushLock.d.ts +0 -26
- package/build/FlushLock.d.ts.map +0 -1
- package/build/FlushLock.js +0 -57
- package/build/FlushLock.js.map +0 -1
- package/build/HintTree.d.ts +0 -42
- package/build/HintTree.d.ts.map +0 -1
- package/build/HintTree.js +0 -64
- package/build/HintTree.js.map +0 -1
- package/build/IndexManager.d.ts +0 -30
- package/build/IndexManager.d.ts.map +0 -1
- package/build/IndexManager.js +0 -206
- package/build/IndexManager.js.map +0 -1
- package/build/InstanceData.d.ts +0 -59
- package/build/InstanceData.d.ts.map +0 -1
- package/build/InstanceData.js +0 -162
- package/build/InstanceData.js.map +0 -1
- package/build/IsLoadedCache.d.ts +0 -32
- package/build/IsLoadedCache.d.ts.map +0 -1
- package/build/IsLoadedCache.js +0 -80
- package/build/IsLoadedCache.js.map +0 -1
- package/build/JoinRows.d.ts +0 -75
- package/build/JoinRows.d.ts.map +0 -1
- package/build/JoinRows.js +0 -246
- package/build/JoinRows.js.map +0 -1
- package/build/PluginManager.d.ts +0 -90
- package/build/PluginManager.d.ts.map +0 -1
- package/build/PluginManager.js +0 -97
- package/build/PluginManager.js.map +0 -1
- package/build/QueryParser.d.ts +0 -271
- package/build/QueryParser.d.ts.map +0 -1
- package/build/QueryParser.js +0 -853
- package/build/QueryParser.js.map +0 -1
- package/build/QueryParser.pruning.d.ts +0 -5
- package/build/QueryParser.pruning.d.ts.map +0 -1
- package/build/QueryParser.pruning.js +0 -118
- package/build/QueryParser.pruning.js.map +0 -1
- package/build/QueryVisitor.d.ts +0 -19
- package/build/QueryVisitor.d.ts.map +0 -1
- package/build/QueryVisitor.js +0 -84
- package/build/QueryVisitor.js.map +0 -1
- package/build/ReactionsManager.d.ts +0 -84
- package/build/ReactionsManager.d.ts.map +0 -1
- package/build/ReactionsManager.js +0 -307
- package/build/ReactionsManager.js.map +0 -1
- package/build/Todo.d.ts +0 -31
- package/build/Todo.d.ts.map +0 -1
- package/build/Todo.js +0 -73
- package/build/Todo.js.map +0 -1
- package/build/caches.d.ts +0 -6
- package/build/caches.d.ts.map +0 -1
- package/build/caches.js +0 -42
- package/build/caches.js.map +0 -1
- package/build/changes.d.ts +0 -79
- package/build/changes.d.ts.map +0 -1
- package/build/changes.js +0 -251
- package/build/changes.js.map +0 -1
- package/build/config.d.ts +0 -237
- package/build/config.d.ts.map +0 -1
- package/build/config.js +0 -298
- package/build/config.js.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -53
- package/build/config.test.js.map +0 -1
- package/build/configure.d.ts +0 -13
- package/build/configure.d.ts.map +0 -1
- package/build/configure.js +0 -329
- package/build/configure.js.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
- package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.js +0 -47
- package/build/dataloaders/findByUniqueDataLoader.js.map +0 -1
- package/build/dataloaders/findCountDataLoader.d.ts +0 -7
- package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findCountDataLoader.js +0 -74
- package/build/dataloaders/findCountDataLoader.js.map +0 -1
- package/build/dataloaders/findDataLoader.d.ts +0 -37
- package/build/dataloaders/findDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findDataLoader.js +0 -337
- package/build/dataloaders/findDataLoader.js.map +0 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +0 -7
- package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findIdsDataLoader.js +0 -74
- package/build/dataloaders/findIdsDataLoader.js.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.js +0 -174
- package/build/dataloaders/findOrCreateDataLoader.js.map +0 -1
- package/build/dataloaders/lensDataLoader.d.ts +0 -12
- package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
- package/build/dataloaders/lensDataLoader.js +0 -180
- package/build/dataloaders/lensDataLoader.js.map +0 -1
- package/build/dataloaders/loadDataLoader.d.ts +0 -11
- package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
- package/build/dataloaders/loadDataLoader.js +0 -54
- package/build/dataloaders/loadDataLoader.js.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyDataLoader.js +0 -74
- package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.js +0 -70
- package/build/dataloaders/manyToManyFindDataLoader.js.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyDataLoader.js +0 -60
- package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
- package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.js +0 -71
- package/build/dataloaders/oneToManyFindDataLoader.js.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
- package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToOneDataLoader.js +0 -59
- package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
- package/build/dataloaders/populateDataLoader.d.ts +0 -13
- package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/populateDataLoader.js +0 -148
- package/build/dataloaders/populateDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveChildrenDataLoader.js +0 -77
- package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
- package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/recursiveParentsDataLoader.js +0 -59
- package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
- package/build/defaults.d.ts +0 -54
- package/build/defaults.d.ts.map +0 -1
- package/build/defaults.js +0 -282
- package/build/defaults.js.map +0 -1
- package/build/driverApi.d.ts +0 -19
- package/build/driverApi.d.ts.map +0 -1
- package/build/driverApi.js +0 -17
- package/build/driverApi.js.map +0 -1
- package/build/drivers/Driver.d.ts +0 -26
- package/build/drivers/Driver.d.ts.map +0 -1
- package/build/drivers/Driver.js +0 -3
- package/build/drivers/Driver.js.map +0 -1
- package/build/drivers/EntityWriter.d.ts +0 -64
- package/build/drivers/EntityWriter.d.ts.map +0 -1
- package/build/drivers/EntityWriter.js +0 -237
- package/build/drivers/EntityWriter.js.map +0 -1
- package/build/drivers/IdAssigner.d.ts +0 -50
- package/build/drivers/IdAssigner.d.ts.map +0 -1
- package/build/drivers/IdAssigner.js +0 -133
- package/build/drivers/IdAssigner.js.map +0 -1
- package/build/drivers/PostgresDriver.d.ts.map +0 -1
- package/build/drivers/PostgresDriver.js.map +0 -1
- package/build/drivers/buildRawQuery.d.ts +0 -20
- package/build/drivers/buildRawQuery.d.ts.map +0 -1
- package/build/drivers/buildRawQuery.js +0 -148
- package/build/drivers/buildRawQuery.js.map +0 -1
- package/build/drivers/buildUtils.d.ts +0 -4
- package/build/drivers/buildUtils.d.ts.map +0 -1
- package/build/drivers/buildUtils.js +0 -79
- package/build/drivers/buildUtils.js.map +0 -1
- package/build/drivers/index.d.ts +0 -5
- package/build/drivers/index.d.ts.map +0 -1
- package/build/drivers/index.js.map +0 -1
- package/build/fields.d.ts +0 -24
- package/build/fields.d.ts.map +0 -1
- package/build/fields.js +0 -161
- package/build/fields.js.map +0 -1
- package/build/getProperties.d.ts +0 -28
- package/build/getProperties.d.ts.map +0 -1
- package/build/getProperties.js +0 -141
- package/build/getProperties.js.map +0 -1
- package/build/json.d.ts +0 -77
- package/build/json.d.ts.map +0 -1
- package/build/json.js +0 -116
- package/build/json.js.map +0 -1
- package/build/k.d.ts +0 -2
- package/build/k.d.ts.map +0 -1
- package/build/k.js +0 -9
- package/build/k.js.map +0 -1
- package/build/keys.d.ts +0 -49
- package/build/keys.d.ts.map +0 -1
- package/build/keys.js +0 -195
- package/build/keys.js.map +0 -1
- package/build/keywords.d.ts +0 -5
- package/build/keywords.d.ts.map +0 -1
- package/build/keywords.js +0 -124
- package/build/keywords.js.map +0 -1
- package/build/loadHints.d.ts +0 -112
- package/build/loadHints.d.ts.map +0 -1
- package/build/loadHints.js +0 -75
- package/build/loadHints.js.map +0 -1
- package/build/loadLens.d.ts +0 -66
- package/build/loadLens.d.ts.map +0 -1
- package/build/loadLens.js +0 -287
- package/build/loadLens.js.map +0 -1
- package/build/logging/FactoryLogger.d.ts +0 -24
- package/build/logging/FactoryLogger.d.ts.map +0 -1
- package/build/logging/FactoryLogger.js +0 -77
- package/build/logging/FactoryLogger.js.map +0 -1
- package/build/logging/FieldLogger.d.ts +0 -27
- package/build/logging/FieldLogger.d.ts.map +0 -1
- package/build/logging/FieldLogger.js +0 -69
- package/build/logging/FieldLogger.js.map +0 -1
- package/build/logging/ReactionLogger.d.ts +0 -23
- package/build/logging/ReactionLogger.d.ts.map +0 -1
- package/build/logging/ReactionLogger.js +0 -65
- package/build/logging/ReactionLogger.js.map +0 -1
- package/build/newEntity.d.ts +0 -45
- package/build/newEntity.d.ts.map +0 -1
- package/build/newEntity.js +0 -106
- package/build/newEntity.js.map +0 -1
- package/build/newTestInstance.d.ts +0 -193
- package/build/newTestInstance.d.ts.map +0 -1
- package/build/newTestInstance.js +0 -738
- package/build/newTestInstance.js.map +0 -1
- package/build/normalizeHints.d.ts +0 -16
- package/build/normalizeHints.d.ts.map +0 -1
- package/build/normalizeHints.js +0 -31
- package/build/normalizeHints.js.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
- package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.js +0 -21
- package/build/plugins/ImmutableEntitiesPlugin.js.map +0 -1
- package/build/plugins/PreloadPlugin.d.ts +0 -69
- package/build/plugins/PreloadPlugin.d.ts.map +0 -1
- package/build/plugins/PreloadPlugin.js +0 -3
- package/build/plugins/PreloadPlugin.js.map +0 -1
- package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
- package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
- package/build/preloading/JsonAggregatePreloader.js +0 -238
- package/build/preloading/JsonAggregatePreloader.js.map +0 -1
- package/build/preloading/canPreload.d.ts +0 -3
- package/build/preloading/canPreload.d.ts.map +0 -1
- package/build/preloading/canPreload.js +0 -21
- package/build/preloading/canPreload.js.map +0 -1
- package/build/preloading/partitionHint.d.ts +0 -5
- package/build/preloading/partitionHint.d.ts.map +0 -1
- package/build/preloading/partitionHint.js +0 -56
- package/build/preloading/partitionHint.js.map +0 -1
- package/build/reactiveHints.d.ts +0 -129
- package/build/reactiveHints.d.ts.map +0 -1
- package/build/reactiveHints.js +0 -458
- package/build/reactiveHints.js.map +0 -1
- package/build/relations/AbstractPropertyImpl.d.ts +0 -8
- package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
- package/build/relations/AbstractPropertyImpl.js +0 -15
- package/build/relations/AbstractPropertyImpl.js.map +0 -1
- package/build/relations/AbstractRelationImpl.d.ts +0 -36
- package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
- package/build/relations/AbstractRelationImpl.js +0 -19
- package/build/relations/AbstractRelationImpl.js.map +0 -1
- package/build/relations/Collection.d.ts +0 -28
- package/build/relations/Collection.d.ts.map +0 -1
- package/build/relations/Collection.js +0 -18
- package/build/relations/Collection.js.map +0 -1
- package/build/relations/CustomCollection.d.ts +0 -69
- package/build/relations/CustomCollection.d.ts.map +0 -1
- package/build/relations/CustomCollection.js +0 -166
- package/build/relations/CustomCollection.js.map +0 -1
- package/build/relations/CustomReference.d.ts +0 -71
- package/build/relations/CustomReference.d.ts.map +0 -1
- package/build/relations/CustomReference.js +0 -152
- package/build/relations/CustomReference.js.map +0 -1
- package/build/relations/LargeCollection.d.ts +0 -19
- package/build/relations/LargeCollection.d.ts.map +0 -1
- package/build/relations/LargeCollection.js +0 -3
- package/build/relations/LargeCollection.js.map +0 -1
- package/build/relations/ManyToManyCollection.d.ts +0 -44
- package/build/relations/ManyToManyCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyCollection.js +0 -268
- package/build/relations/ManyToManyCollection.js.map +0 -1
- package/build/relations/ManyToManyLargeCollection.d.ts +0 -30
- package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyLargeCollection.js +0 -119
- package/build/relations/ManyToManyLargeCollection.js.map +0 -1
- package/build/relations/ManyToOneReference.d.ts +0 -121
- package/build/relations/ManyToOneReference.d.ts.map +0 -1
- package/build/relations/ManyToOneReference.js +0 -389
- package/build/relations/ManyToOneReference.js.map +0 -1
- package/build/relations/OneToManyCollection.d.ts +0 -58
- package/build/relations/OneToManyCollection.d.ts.map +0 -1
- package/build/relations/OneToManyCollection.js +0 -347
- package/build/relations/OneToManyCollection.js.map +0 -1
- package/build/relations/OneToManyLargeCollection.d.ts +0 -26
- package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/OneToManyLargeCollection.js +0 -102
- package/build/relations/OneToManyLargeCollection.js.map +0 -1
- package/build/relations/OneToOneReference.d.ts +0 -93
- package/build/relations/OneToOneReference.d.ts.map +0 -1
- package/build/relations/OneToOneReference.js +0 -228
- package/build/relations/OneToOneReference.js.map +0 -1
- package/build/relations/PolymorphicReference.d.ts +0 -89
- package/build/relations/PolymorphicReference.d.ts.map +0 -1
- package/build/relations/PolymorphicReference.js +0 -244
- package/build/relations/PolymorphicReference.js.map +0 -1
- package/build/relations/ReactiveField.d.ts +0 -87
- package/build/relations/ReactiveField.d.ts.map +0 -1
- package/build/relations/ReactiveField.js +0 -149
- package/build/relations/ReactiveField.js.map +0 -1
- package/build/relations/ReactiveGetter.d.ts +0 -30
- package/build/relations/ReactiveGetter.d.ts.map +0 -1
- package/build/relations/ReactiveGetter.js +0 -38
- package/build/relations/ReactiveGetter.js.map +0 -1
- package/build/relations/ReactiveManyToMany.d.ts +0 -56
- package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
- package/build/relations/ReactiveManyToMany.js +0 -243
- package/build/relations/ReactiveManyToMany.js.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -47
- package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.js +0 -155
- package/build/relations/ReactiveManyToManyOtherSide.js.map +0 -1
- package/build/relations/ReactiveQueryField.d.ts +0 -41
- package/build/relations/ReactiveQueryField.d.ts.map +0 -1
- package/build/relations/ReactiveQueryField.js +0 -125
- package/build/relations/ReactiveQueryField.js.map +0 -1
- package/build/relations/ReactiveReference.d.ts +0 -119
- package/build/relations/ReactiveReference.d.ts.map +0 -1
- package/build/relations/ReactiveReference.js +0 -333
- package/build/relations/ReactiveReference.js.map +0 -1
- package/build/relations/ReadOnlyCollection.d.ts +0 -19
- package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
- package/build/relations/ReadOnlyCollection.js +0 -15
- package/build/relations/ReadOnlyCollection.js.map +0 -1
- package/build/relations/RecursiveCollection.d.ts +0 -84
- package/build/relations/RecursiveCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCollection.js +0 -296
- package/build/relations/RecursiveCollection.js.map +0 -1
- package/build/relations/Reference.d.ts +0 -35
- package/build/relations/Reference.d.ts.map +0 -1
- package/build/relations/Reference.js +0 -21
- package/build/relations/Reference.js.map +0 -1
- package/build/relations/Relation.d.ts +0 -14
- package/build/relations/Relation.d.ts.map +0 -1
- package/build/relations/Relation.js +0 -12
- package/build/relations/Relation.js.map +0 -1
- package/build/relations/hasAsyncMethod.d.ts +0 -27
- package/build/relations/hasAsyncMethod.d.ts.map +0 -1
- package/build/relations/hasAsyncMethod.js +0 -47
- package/build/relations/hasAsyncMethod.js.map +0 -1
- package/build/relations/hasAsyncProperty.d.ts +0 -49
- package/build/relations/hasAsyncProperty.d.ts.map +0 -1
- package/build/relations/hasAsyncProperty.js +0 -98
- package/build/relations/hasAsyncProperty.js.map +0 -1
- package/build/relations/hasManyDerived.d.ts +0 -22
- package/build/relations/hasManyDerived.d.ts.map +0 -1
- package/build/relations/hasManyDerived.js +0 -32
- package/build/relations/hasManyDerived.js.map +0 -1
- package/build/relations/hasManyThrough.d.ts +0 -10
- package/build/relations/hasManyThrough.d.ts.map +0 -1
- package/build/relations/hasManyThrough.js +0 -24
- package/build/relations/hasManyThrough.js.map +0 -1
- package/build/relations/hasOneDerived.d.ts +0 -12
- package/build/relations/hasOneDerived.d.ts.map +0 -1
- package/build/relations/hasOneDerived.js +0 -24
- package/build/relations/hasOneDerived.js.map +0 -1
- package/build/relations/hasOneThrough.d.ts +0 -10
- package/build/relations/hasOneThrough.d.ts.map +0 -1
- package/build/relations/hasOneThrough.js +0 -24
- package/build/relations/hasOneThrough.js.map +0 -1
- package/build/relations/index.d.ts +0 -28
- package/build/relations/index.d.ts.map +0 -1
- package/build/relations/index.js +0 -88
- package/build/relations/index.js.map +0 -1
- package/build/rules.d.ts +0 -123
- package/build/rules.d.ts.map +0 -1
- package/build/rules.js +0 -231
- package/build/rules.js.map +0 -1
- package/build/runtimeConfig.d.ts +0 -17
- package/build/runtimeConfig.d.ts.map +0 -1
- package/build/runtimeConfig.js +0 -18
- package/build/runtimeConfig.js.map +0 -1
- package/build/serde.d.ts +0 -277
- package/build/serde.d.ts.map +0 -1
- package/build/serde.js +0 -517
- package/build/serde.js.map +0 -1
- package/build/temporal.d.ts +0 -16
- package/build/temporal.d.ts.map +0 -1
- package/build/temporal.js +0 -48
- package/build/temporal.js.map +0 -1
- package/build/temporalMappers.d.ts +0 -25
- package/build/temporalMappers.d.ts.map +0 -1
- package/build/temporalMappers.js +0 -59
- package/build/temporalMappers.js.map +0 -1
- package/build/typeMap.d.ts +0 -68
- package/build/typeMap.d.ts.map +0 -1
- package/build/typeMap.js +0 -3
- package/build/typeMap.js.map +0 -1
- package/build/unnest.d.ts +0 -13
- package/build/unnest.d.ts.map +0 -1
- package/build/unnest.js +0 -85
- package/build/unnest.js.map +0 -1
- package/build/upsert.d.ts +0 -42
- package/build/upsert.d.ts.map +0 -1
- package/build/upsert.js +0 -265
- package/build/upsert.js.map +0 -1
- package/build/utils.d.ts +0 -58
- package/build/utils.d.ts.map +0 -1
- package/build/utils.js +0 -236
- package/build/utils.js.map +0 -1
- package/build/withLoaded.d.ts +0 -56
- package/build/withLoaded.d.ts.map +0 -1
- package/build/withLoaded.js +0 -76
- package/build/withLoaded.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"findOrCreateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findOrCreateDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager, MaybeAbstractEntityConstructor, TaggedId } from "../EntityManager";
|
|
4
|
-
export declare const lensOperation = "lens";
|
|
5
|
-
/**
|
|
6
|
-
* Loads lens paths via SQL.
|
|
7
|
-
*
|
|
8
|
-
* I.e. instead of loading `author.load(a => a.books.reviews)` by pulling all
|
|
9
|
-
* Books into memory, we do a join from the Author to BookReviews.
|
|
10
|
-
*/
|
|
11
|
-
export declare function lensDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, startIsArray: boolean, paths: string[]): DataLoader<TaggedId, T | T[]>;
|
|
12
|
-
//# sourceMappingURL=lensDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lensDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/lensDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAqB3F,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,MAAM,EAAE,GACd,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CA4K/B"}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lensOperation = void 0;
|
|
4
|
-
exports.lensDataLoader = lensDataLoader;
|
|
5
|
-
const EntityMetadata_1 = require("../EntityMetadata");
|
|
6
|
-
const QueryParser_1 = require("../QueryParser");
|
|
7
|
-
const keys_1 = require("../keys");
|
|
8
|
-
const loadLens_1 = require("../loadLens");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
|
-
exports.lensOperation = "lens";
|
|
11
|
-
/**
|
|
12
|
-
* Loads lens paths via SQL.
|
|
13
|
-
*
|
|
14
|
-
* I.e. instead of loading `author.load(a => a.books.reviews)` by pulling all
|
|
15
|
-
* Books into memory, we do a join from the Author to BookReviews.
|
|
16
|
-
*/
|
|
17
|
-
function lensDataLoader(em, type, startIsArray, paths) {
|
|
18
|
-
// Batch lens loads by type + path to avoid N+1s
|
|
19
|
-
const batchKey = `${type.name}-${paths.join("/")}`;
|
|
20
|
-
return em.getLoader(exports.lensOperation, batchKey, async (sourceIds) => {
|
|
21
|
-
const aliases = {};
|
|
22
|
-
function getAlias(tableName) {
|
|
23
|
-
const abbrev = (0, utils_1.abbreviation)(tableName);
|
|
24
|
-
const i = aliases[abbrev] || 0;
|
|
25
|
-
aliases[abbrev] = i + 1;
|
|
26
|
-
return i === 0 ? abbrev : `${abbrev}${i}`;
|
|
27
|
-
}
|
|
28
|
-
// br.load(br => br.book.author)
|
|
29
|
-
// select br.id as __source_id, a.*
|
|
30
|
-
// from authors a
|
|
31
|
-
// join books b ON b.author_id = a.id
|
|
32
|
-
// join book_reviews br ON br.book_id = br.id
|
|
33
|
-
// where br.id in (keys)
|
|
34
|
-
// source=BR, target=Author, fields=books,bookReviews
|
|
35
|
-
// a.load(a => a.books.reviews)
|
|
36
|
-
// select b.author_id as __source_id, br.*
|
|
37
|
-
// from book_reviews br
|
|
38
|
-
// join books b on b.id = br.book_id
|
|
39
|
-
// where b.author_id in (keys)
|
|
40
|
-
const source = (0, EntityMetadata_1.getMetadata)(type);
|
|
41
|
-
// Walk source -> paths -> the target, and return the target -> source fields
|
|
42
|
-
const [target, fields] = (0, loadLens_1.mapPathsToTarget)(source, paths);
|
|
43
|
-
let resultIsArray = startIsArray;
|
|
44
|
-
const alias = getAlias(target.tableName);
|
|
45
|
-
const selects = [`"${alias}".*`];
|
|
46
|
-
const tables = [{ alias, join: "primary", table: target.tableName }];
|
|
47
|
-
const conditions = [];
|
|
48
|
-
const orderBys = [];
|
|
49
|
-
const query = { selects, tables, condition: { kind: "exp", op: "and", conditions }, orderBys };
|
|
50
|
-
(0, QueryParser_1.addTablePerClassJoinsAndClassTag)(query, target, alias, true);
|
|
51
|
-
(0, QueryParser_1.maybeAddOrderBy)(query, target, alias);
|
|
52
|
-
function maybeAddNotSoftDeleted(other, alias) {
|
|
53
|
-
const { deletedAt } = (0, EntityMetadata_1.getBaseMeta)(other).timestampFields ?? {};
|
|
54
|
-
if (deletedAt) {
|
|
55
|
-
const column = other.allFields[deletedAt].serde?.columns[0];
|
|
56
|
-
conditions.push({
|
|
57
|
-
kind: "column",
|
|
58
|
-
alias,
|
|
59
|
-
column: column.columnName,
|
|
60
|
-
dbType: column.dbType,
|
|
61
|
-
cond: { kind: "is-null" },
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
let lastAlias = alias;
|
|
66
|
-
fields.forEach(([, field], i) => {
|
|
67
|
-
const isLast = i === fields.length - 1;
|
|
68
|
-
switch (field.kind) {
|
|
69
|
-
case "o2o":
|
|
70
|
-
case "o2m": {
|
|
71
|
-
// This is `Publisher.authors` and we want to join in the authors table,
|
|
72
|
-
// so get the `Author.publisher` field to know the column name
|
|
73
|
-
const other = field.otherMetadata();
|
|
74
|
-
const m2o = other.allFields[field.otherFieldName];
|
|
75
|
-
const alias = getAlias(other.tableName);
|
|
76
|
-
tables.push({
|
|
77
|
-
alias,
|
|
78
|
-
join: "inner",
|
|
79
|
-
table: other.tableName,
|
|
80
|
-
col1: `${alias}.${m2o.serde.columns[0].columnName}`,
|
|
81
|
-
col2: `${lastAlias}.id`,
|
|
82
|
-
});
|
|
83
|
-
maybeAddNotSoftDeleted(other, alias);
|
|
84
|
-
if (isLast) {
|
|
85
|
-
selects.push(`"${alias}".id as __source_id`);
|
|
86
|
-
conditions.push({
|
|
87
|
-
kind: "column",
|
|
88
|
-
alias,
|
|
89
|
-
column: "id",
|
|
90
|
-
dbType: other.idDbType,
|
|
91
|
-
cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) },
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
lastAlias = alias;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
case "m2o": {
|
|
98
|
-
// This is `Book.author` and we want to join in the authors table
|
|
99
|
-
const other = field.otherMetadata();
|
|
100
|
-
const otherField = other.fields[field.otherFieldName];
|
|
101
|
-
const alias = getAlias(other.tableName);
|
|
102
|
-
if (!isLast) {
|
|
103
|
-
tables.push({
|
|
104
|
-
alias,
|
|
105
|
-
join: "inner",
|
|
106
|
-
table: other.tableName,
|
|
107
|
-
col1: `${alias}.id`,
|
|
108
|
-
col2: `${lastAlias}.${field.serde.columns[0].columnName}`,
|
|
109
|
-
});
|
|
110
|
-
maybeAddNotSoftDeleted(other, alias);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
selects.push(`"${lastAlias}".${field.serde.columns[0].columnName} as __source_id`);
|
|
114
|
-
conditions.push({
|
|
115
|
-
kind: "column",
|
|
116
|
-
alias: lastAlias,
|
|
117
|
-
column: field.serde.columns[0].columnName,
|
|
118
|
-
dbType: field.serde.columns[0].dbType,
|
|
119
|
-
cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) },
|
|
120
|
-
});
|
|
121
|
-
// Need to add filter for soft-deleted...
|
|
122
|
-
}
|
|
123
|
-
resultIsArray = otherField.kind === "o2o" ? resultIsArray : true;
|
|
124
|
-
lastAlias = alias;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
case "m2m": {
|
|
128
|
-
// This is `Book.tags` and we want to join through the m2m table
|
|
129
|
-
const other = field.otherMetadata();
|
|
130
|
-
const alias = getAlias(other.tableName);
|
|
131
|
-
tables.push({
|
|
132
|
-
alias: `${alias}_m2m`,
|
|
133
|
-
join: "inner",
|
|
134
|
-
table: field.joinTableName,
|
|
135
|
-
col1: `${alias}_m2m.${field.columnNames[0]}`,
|
|
136
|
-
col2: `${lastAlias}.id`,
|
|
137
|
-
});
|
|
138
|
-
// If this is the last table, we could skip this join like we do for m2os
|
|
139
|
-
tables.push({
|
|
140
|
-
alias,
|
|
141
|
-
join: "inner",
|
|
142
|
-
table: other.tableName,
|
|
143
|
-
col1: `${alias}.id`,
|
|
144
|
-
col2: `${alias}_m2m.${field.columnNames[1]}`,
|
|
145
|
-
});
|
|
146
|
-
maybeAddNotSoftDeleted(other, alias);
|
|
147
|
-
if (isLast) {
|
|
148
|
-
selects.push(`"${alias}".id as __source_id`);
|
|
149
|
-
conditions.push({
|
|
150
|
-
kind: "column",
|
|
151
|
-
alias,
|
|
152
|
-
column: "id",
|
|
153
|
-
dbType: other.idDbType,
|
|
154
|
-
cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) },
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
resultIsArray = true;
|
|
158
|
-
lastAlias = alias;
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
default:
|
|
162
|
-
throw new Error("Unsupported field kind: " + field.kind);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
// Get back `__source_id, target.*`
|
|
166
|
-
const rows = await em["executeFind"](target, exports.lensOperation, query, {});
|
|
167
|
-
// Group the target entities (i.e. BookReview) by the source id we reached them from.
|
|
168
|
-
const entitiesBySourceId = new Map([...(0, utils_1.groupBy)(rows, (row) => row["__source_id"]).entries()].map(([sourceId, rows]) => {
|
|
169
|
-
// We may technically re-hydrate the same entity twice if it was reached
|
|
170
|
-
// via multiple sources, but that should be fine/get deduped by hydrate.
|
|
171
|
-
return [(0, keys_1.tagId)(source, sourceId), em.hydrate(target.cstr, rows)];
|
|
172
|
-
}));
|
|
173
|
-
// Re-order the output by the batched input
|
|
174
|
-
return sourceIds.map((id) => {
|
|
175
|
-
const result = entitiesBySourceId.get(id);
|
|
176
|
-
return resultIsArray ? [...new Set(result ?? [])] : result?.[0];
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=lensDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lensDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/lensDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager } from "../EntityManager";
|
|
4
|
-
import { EntityMetadata } from "../EntityMetadata";
|
|
5
|
-
import { LoadHint } from "../loadHints";
|
|
6
|
-
export declare const loadOperation = "load";
|
|
7
|
-
export declare function loadDataLoader<T extends Entity>(em: EntityManager, meta: EntityMetadata, overwriteExisting?: boolean): DataLoader<{
|
|
8
|
-
entity: string;
|
|
9
|
-
hint: LoadHint<T> | undefined;
|
|
10
|
-
}, T | undefined>;
|
|
11
|
-
//# sourceMappingURL=loadDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/loadDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,cAAc,EACpB,iBAAiB,GAAE,OAAe,GACjC,UAAU,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;CAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CA0C9E"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadOperation = void 0;
|
|
4
|
-
exports.loadDataLoader = loadDataLoader;
|
|
5
|
-
const BaseEntity_1 = require("../BaseEntity");
|
|
6
|
-
const EntityManager_1 = require("../EntityManager");
|
|
7
|
-
const HintTree_1 = require("../HintTree");
|
|
8
|
-
const QueryParser_1 = require("../QueryParser");
|
|
9
|
-
const keys_1 = require("../keys");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
exports.loadOperation = "load";
|
|
12
|
-
function loadDataLoader(em, meta, overwriteExisting = false) {
|
|
13
|
-
// Batch different populate hints together and defer to the hint tree to do the right thing
|
|
14
|
-
return em.getLoader(`${exports.loadOperation}-${overwriteExisting}`, meta.type, async (loads) => {
|
|
15
|
-
const keys = loads.map((l) => (0, keys_1.keyToNumber)(meta, l.entity));
|
|
16
|
-
const alias = (0, utils_1.abbreviation)(meta.tableName);
|
|
17
|
-
const query = {
|
|
18
|
-
selects: [`"${alias}".*`],
|
|
19
|
-
tables: [{ alias, join: "primary", table: meta.tableName }],
|
|
20
|
-
condition: {
|
|
21
|
-
kind: "exp",
|
|
22
|
-
op: "and",
|
|
23
|
-
conditions: [{ kind: "column", alias, column: "id", dbType: meta.idDbType, cond: { kind: "in", value: keys } }],
|
|
24
|
-
},
|
|
25
|
-
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
26
|
-
};
|
|
27
|
-
(0, QueryParser_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
|
|
28
|
-
// Inject preloading joins into the query if enabled
|
|
29
|
-
const { preloader } = (0, EntityManager_1.getEmInternalApi)(em);
|
|
30
|
-
const preloadHydrator = preloader && preloader.addPreloading(meta, (0, HintTree_1.buildHintTree)(loads), query);
|
|
31
|
-
// Skip maybeAddOrderBy?
|
|
32
|
-
// maybeAddNotSoftDeleted(conditions, meta, alias, "include");
|
|
33
|
-
const rows = await em["executeFind"](meta, exports.loadOperation, query, {});
|
|
34
|
-
// Pass overwriteExisting (which defaults to false) because it might be EntityManager.refresh calling us.
|
|
35
|
-
const entities = em.hydrate(meta.cstr, rows, { overwriteExisting });
|
|
36
|
-
preloadHydrator && preloadHydrator(rows, entities);
|
|
37
|
-
// Return the results back in the same order as the keys
|
|
38
|
-
const entitiesById = (0, utils_1.indexBy)(entities, (e) => e.idTagged);
|
|
39
|
-
return loads.map(({ entity: id }) => {
|
|
40
|
-
const entity = entitiesById.get(id);
|
|
41
|
-
// We generally expect all of our entities to be found, but they may not for API calls like
|
|
42
|
-
// `findOneOrFail` or for `EntityManager.refresh` when the entity has been deleted out from
|
|
43
|
-
// under us.
|
|
44
|
-
if (entity === undefined) {
|
|
45
|
-
const existingEntity = em.findExistingInstance(id);
|
|
46
|
-
if (existingEntity) {
|
|
47
|
-
(0, BaseEntity_1.getInstanceData)(existingEntity).markDeletedBecauseNotFound();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return entity;
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=loadDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/loadDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager } from "../EntityManager";
|
|
4
|
-
import { ManyToManyCollection } from "../index";
|
|
5
|
-
export declare const manyToManyLoadOperation = "m2m-load";
|
|
6
|
-
/** Batches m2m.load calls. */
|
|
7
|
-
export declare function manyToManyDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: ManyToManyCollection<T, U>): DataLoader<string, U[]>;
|
|
8
|
-
//# sourceMappingURL=manyToManyDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manyToManyDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/manyToManyDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAA6C,MAAM,UAAU,CAAC;AAG3F,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACrE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAMzB"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.manyToManyLoadOperation = void 0;
|
|
4
|
-
exports.manyToManyDataLoader = manyToManyDataLoader;
|
|
5
|
-
const EntityManager_1 = require("../EntityManager");
|
|
6
|
-
const index_1 = require("../index");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
|
-
exports.manyToManyLoadOperation = "m2m-load";
|
|
9
|
-
/** Batches m2m.load calls. */
|
|
10
|
-
function manyToManyDataLoader(em, collection) {
|
|
11
|
-
// Note that we cache the dataloader on the joinTableName, and not
|
|
12
|
-
// which side of the relation the `collection` is coming from, so
|
|
13
|
-
// the `load` impl will have to handle keys that come from either
|
|
14
|
-
// side of the relation.
|
|
15
|
-
return em.getLoader(exports.manyToManyLoadOperation, collection.joinTableName, (keys) => load(collection, keys));
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Loads join rows (batched).
|
|
19
|
-
*
|
|
20
|
-
* I.e. we can load the `books_to_tags` join rows for multiple `Book`s at a time, or even
|
|
21
|
-
* load `books_to_tags` for several `Book`s and several `Tag`s in a single SQL query.
|
|
22
|
-
*/
|
|
23
|
-
async function load(collection, keys) {
|
|
24
|
-
const { em } = collection.entity;
|
|
25
|
-
// Keep a reference to our row to track updates/deletes
|
|
26
|
-
const joinRows = (0, EntityManager_1.getEmInternalApi)(em).joinRows(collection);
|
|
27
|
-
// Break out `column_id=string` keys out
|
|
28
|
-
const columns = {};
|
|
29
|
-
const tuples = [];
|
|
30
|
-
keys.forEach((key) => {
|
|
31
|
-
const [columnId, id] = key.split("=");
|
|
32
|
-
(0, utils_1.getOrSet)(columns, columnId, []).push(id);
|
|
33
|
-
tuples.push([columnId, id]);
|
|
34
|
-
});
|
|
35
|
-
const alias = (0, utils_1.abbreviation)(collection.joinTableName);
|
|
36
|
-
const query = {
|
|
37
|
-
selects: [`"${alias}".*`],
|
|
38
|
-
tables: [{ alias, join: "primary", table: collection.joinTableName }],
|
|
39
|
-
// Or together `where tag_id in (...)` or `book_id in (...)` if we're loading both sides simultaneously
|
|
40
|
-
condition: {
|
|
41
|
-
kind: "exp",
|
|
42
|
-
op: "or",
|
|
43
|
-
conditions: Object.entries(columns).map(([columnId, values]) => {
|
|
44
|
-
// Pick the right meta i.e. tag_id --> TagMeta or book_id --> BookMeta
|
|
45
|
-
const meta = collection.columnName == columnId ? (0, index_1.getMetadata)(collection.entity) : collection.otherMeta;
|
|
46
|
-
return {
|
|
47
|
-
kind: "column",
|
|
48
|
-
alias,
|
|
49
|
-
column: columnId,
|
|
50
|
-
dbType: meta.idDbType,
|
|
51
|
-
cond: { kind: "in", value: values.map((id) => (0, index_1.keyToNumber)(meta, id)) },
|
|
52
|
-
};
|
|
53
|
-
}),
|
|
54
|
-
},
|
|
55
|
-
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
56
|
-
};
|
|
57
|
-
// maybeAddNotSoftDeleted(conditions, meta, alias, "include");
|
|
58
|
-
const rows = await em["executeFind"](collection.otherMeta, exports.manyToManyLoadOperation, query, {});
|
|
59
|
-
// The order of column1/column2 doesn't really matter, i.e. if the opposite-side collection is later used
|
|
60
|
-
const { columnName: column1, otherColumnName: column2 } = collection;
|
|
61
|
-
// For each join table row, we use `EntityManager.load` to get both entities loaded.
|
|
62
|
-
// This will be another 1 or 2 queries (depending on whether we're loading just
|
|
63
|
-
// `book.getTags` (1 query to load new tags) or both `book.getTags` and `tag.getBooks
|
|
64
|
-
// (1 query to load the new tags and 1 query to look the new books)).
|
|
65
|
-
//
|
|
66
|
-
// Eventually we could have this query join into the entity tables themselves, i.e.
|
|
67
|
-
// `books` and `tags`, and use those results to hydrate the newly-found entities.
|
|
68
|
-
await joinRows.loadRows(tuples, rows);
|
|
69
|
-
// Map the requested keys, i.e. book_id=2 back to "the (other) tags for book 2".
|
|
70
|
-
return tuples.map(([column, id]) => {
|
|
71
|
-
return joinRows.getOthers(column, em.getEntity(id) ?? fail());
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=manyToManyDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manyToManyDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/manyToManyDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager } from "../EntityManager";
|
|
4
|
-
import { ManyToManyCollection, ManyToManyLargeCollection } from "../index";
|
|
5
|
-
export declare const manyToManyFindOperation = "m2m-find";
|
|
6
|
-
/** Batches m2m.find/include calls (i.e. that don't fully load the m2m relation). */
|
|
7
|
-
export declare function manyToManyFindDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: ManyToManyCollection<T, U> | ManyToManyLargeCollection<T, U>): DataLoader<string, boolean>;
|
|
8
|
-
//# sourceMappingURL=manyToManyFindDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manyToManyFindDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/manyToManyFindDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAe,oBAAoB,EAAE,yBAAyB,EAA0B,MAAM,UAAU,CAAC;AAGhH,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACzE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7B"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.manyToManyFindOperation = void 0;
|
|
4
|
-
exports.manyToManyFindDataLoader = manyToManyFindDataLoader;
|
|
5
|
-
const index_1 = require("../index");
|
|
6
|
-
const utils_1 = require("../utils");
|
|
7
|
-
exports.manyToManyFindOperation = "m2m-find";
|
|
8
|
-
/** Batches m2m.find/include calls (i.e. that don't fully load the m2m relation). */
|
|
9
|
-
function manyToManyFindDataLoader(em, collection) {
|
|
10
|
-
return em.getLoader(exports.manyToManyFindOperation, collection.joinTableName, (keys) => load(collection, keys));
|
|
11
|
-
}
|
|
12
|
-
async function load(collection, keys) {
|
|
13
|
-
const { joinTableName } = collection;
|
|
14
|
-
const { em } = collection.entity;
|
|
15
|
-
const alias = (0, utils_1.abbreviation)(joinTableName);
|
|
16
|
-
const query = {
|
|
17
|
-
selects: [`"${alias}".*`],
|
|
18
|
-
tables: [{ alias, join: "primary", table: joinTableName }],
|
|
19
|
-
// Or together `where (tag_id = X and book_id = Y)` or `(book_id = B and tag_id = A)`
|
|
20
|
-
condition: {
|
|
21
|
-
kind: "exp",
|
|
22
|
-
op: "or",
|
|
23
|
-
conditions: keys.map((key) => {
|
|
24
|
-
const [one, two] = key.split(",");
|
|
25
|
-
const [columnOne, idOne] = one.split("=");
|
|
26
|
-
const [columnTwo, idTwo] = two.split("=");
|
|
27
|
-
// Pick the right meta i.e. tag_id --> TagMeta or book_id --> BookMeta
|
|
28
|
-
const [meta1, meta2] = collection.columnName === columnOne
|
|
29
|
-
? [collection.meta, collection.otherMeta]
|
|
30
|
-
: [collection.otherMeta, collection.meta];
|
|
31
|
-
return {
|
|
32
|
-
kind: "exp",
|
|
33
|
-
op: "and",
|
|
34
|
-
conditions: [
|
|
35
|
-
{
|
|
36
|
-
kind: "column",
|
|
37
|
-
alias,
|
|
38
|
-
column: columnOne,
|
|
39
|
-
dbType: meta1.idDbType,
|
|
40
|
-
cond: { kind: "eq", value: (0, index_1.keyToNumber)(meta1, idOne) },
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
kind: "column",
|
|
44
|
-
alias,
|
|
45
|
-
column: columnTwo,
|
|
46
|
-
dbType: meta2.idDbType,
|
|
47
|
-
cond: { kind: "eq", value: (0, index_1.keyToNumber)(meta2, idTwo) },
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}),
|
|
52
|
-
},
|
|
53
|
-
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
54
|
-
};
|
|
55
|
-
const rows = await em["executeFind"](collection.otherMeta, exports.manyToManyFindOperation, query, {});
|
|
56
|
-
const column1 = collection.columnName;
|
|
57
|
-
const column2 = collection.otherColumnName;
|
|
58
|
-
const meta1 = collection.meta;
|
|
59
|
-
const meta2 = collection.otherMeta;
|
|
60
|
-
// Because keys might come from either side of the m2m relationship, build
|
|
61
|
-
// a list of both `foo_id=2,bar_id=3` and `bar_id=3,foo_id=2` to make the
|
|
62
|
-
// final return value just a map of `Set.has`.
|
|
63
|
-
const found = new Set(rows.flatMap((dbRow) => {
|
|
64
|
-
const a = `${column1}=${(0, index_1.tagId)(meta1, dbRow[column1])}`;
|
|
65
|
-
const b = `${column2}=${(0, index_1.tagId)(meta2, dbRow[column2])}`;
|
|
66
|
-
return [`${a},${b}`, `${b},${a}`];
|
|
67
|
-
}));
|
|
68
|
-
return keys.map((key) => found.has(key));
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=manyToManyFindDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manyToManyFindDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/manyToManyFindDataLoader.ts"],"names":[],"mappings":";;;AASA,4DAKC;AAXD,oCAAgH;AAChH,oCAAwC;AAE3B,QAAA,uBAAuB,GAAG,UAAU,CAAC;AAElD,oFAAoF;AACpF,SAAgB,wBAAwB,CACtC,EAAiB,EACjB,UAAwE;IAExE,OAAO,EAAE,CAAC,SAAS,CAAC,+BAAuB,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,UAAwE,EACxE,IAA2B;IAE3B,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;IACrC,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAoB;QAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;QACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QAC1D,qFAAqF;QACrF,SAAS,EAAE;YACT,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,sEAAsE;gBACtE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAClB,UAAU,CAAC,UAAU,KAAK,SAAS;oBACjC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;oBACzC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9C,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE;wBACV;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK;4BACL,MAAM,EAAE,SAAS;4BACjB,MAAM,EAAE,KAAK,CAAC,QAAQ;4BACtB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAA,mBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBACvD;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK;4BACL,MAAM,EAAE,SAAS;4BACjB,MAAM,EAAE,KAAK,CAAC,QAAQ;4BACtB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAA,mBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBACvD;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KAClD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,+BAAuB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE/F,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC;IAEnC,0EAA0E;IAC1E,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,IAAA,aAAK,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAW,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,IAAA,aAAK,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAW,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager } from "../EntityManager";
|
|
4
|
-
import { OneToManyCollection } from "../index";
|
|
5
|
-
export declare const oneToManyLoadOperation = "o2m-load";
|
|
6
|
-
export declare function oneToManyDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: OneToManyCollection<T, U>): DataLoader<string, U[]>;
|
|
7
|
-
//# sourceMappingURL=oneToManyDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oneToManyDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAKL,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACpE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAyDzB"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.oneToManyLoadOperation = void 0;
|
|
4
|
-
exports.oneToManyDataLoader = oneToManyDataLoader;
|
|
5
|
-
const fields_1 = require("../fields");
|
|
6
|
-
const index_1 = require("../index");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
|
-
exports.oneToManyLoadOperation = "o2m-load";
|
|
9
|
-
function oneToManyDataLoader(em, collection) {
|
|
10
|
-
// The metadata for the entity that contains the collection, i.e. Author in author.books
|
|
11
|
-
const { meta: oneMeta, fieldName } = collection;
|
|
12
|
-
const batchKey = `${oneMeta.tableName}-${fieldName}`;
|
|
13
|
-
return em.getLoader(exports.oneToManyLoadOperation, batchKey, async (_keys) => {
|
|
14
|
-
// otherMeta is the entity being fetched, i.e. Book in author.books
|
|
15
|
-
const { otherMeta: meta } = collection;
|
|
16
|
-
(0, index_1.assertIdsAreTagged)(_keys);
|
|
17
|
-
const keys = (0, index_1.deTagIds)(oneMeta, _keys);
|
|
18
|
-
const alias = (0, utils_1.abbreviation)(meta.tableName);
|
|
19
|
-
const o2m = oneMeta.allFields[collection.fieldName];
|
|
20
|
-
const other = meta.allFields[collection.otherFieldName];
|
|
21
|
-
const query = {
|
|
22
|
-
selects: [`"${alias}".*`],
|
|
23
|
-
tables: [{ alias, join: "primary", table: meta.tableName }],
|
|
24
|
-
condition: {
|
|
25
|
-
kind: "exp",
|
|
26
|
-
op: "and",
|
|
27
|
-
conditions: [
|
|
28
|
-
{
|
|
29
|
-
kind: "column",
|
|
30
|
-
alias: `${alias}${other.aliasSuffix}`,
|
|
31
|
-
column: o2m.otherColumnName,
|
|
32
|
-
dbType: meta.idDbType,
|
|
33
|
-
cond: { kind: "in", value: keys },
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
orderBys: [{ alias, column: "id", order: "ASC" }],
|
|
38
|
-
};
|
|
39
|
-
(0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
|
|
40
|
-
// Skip maybeAddOrderBy b/c we'll sort in memory anyway
|
|
41
|
-
// maybeAddNotSoftDeleted(conditions, meta, alias, "include");
|
|
42
|
-
const rows = await em["executeFind"](meta, exports.oneToManyLoadOperation, query, {});
|
|
43
|
-
const entities = em.hydrate(meta.cstr, rows);
|
|
44
|
-
// .filter((e) => !e.isDeletedEntity);
|
|
45
|
-
const entitiesById = (0, utils_1.groupBy)(entities, (entity) => {
|
|
46
|
-
// TODO If this came from the UoW, it may not be an id? I.e. pre-insert.
|
|
47
|
-
const ownerId = (0, index_1.maybeResolveReferenceToId)((0, fields_1.getField)(entity, collection.otherFieldName));
|
|
48
|
-
// We almost always expect ownerId to be found, b/c normally we just hydrated this entity
|
|
49
|
-
// directly from a SQL row with owner_id=X, however we might be loading this collection
|
|
50
|
-
// (i.e. find all children where owner_id=X) when the SQL thinks a child is still pointing
|
|
51
|
-
// at the parent (i.e. owner_id=X in the db), but our already-loaded child has had its
|
|
52
|
-
// `child.owner` field either changed to some other owner, or set to undefined. In either,
|
|
53
|
-
// that child should no longer be parent of this owner's collection, so just return a
|
|
54
|
-
// dummy value.
|
|
55
|
-
return ownerId ?? "dummyNoLongerOwned";
|
|
56
|
-
});
|
|
57
|
-
return _keys.map((k) => entitiesById.get(k) || []);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=oneToManyDataLoader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oneToManyDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":";;;AAiBA,kDA4DC;AA1ED,sCAAqC;AACrC,oCAQkB;AAClB,oCAAiD;AAEpC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,UAAqC;IAErC,wFAAwF;IACxF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACrD,OAAO,EAAE,CAAC,SAAS,CAAC,8BAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpE,mEAAmE;QACnE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAEvC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAmB,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3D,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;wBACrC,MAAM,EAAE,GAAG,CAAC,eAAe;wBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC;QAEF,IAAA,wCAAgC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,uDAAuD;QACvD,8DAA8D;QAE9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,8BAAsB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,sCAAsC;QAEtC,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAChD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,yFAAyF;YACzF,uFAAuF;YACvF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { EntityManager } from "../EntityManager";
|
|
4
|
-
import { OneToManyCollection, OneToManyLargeCollection } from "../index";
|
|
5
|
-
export declare const oneToManyFindOperation = "o2m-find";
|
|
6
|
-
/** Batches o2m.find/include calls (i.e. that don't fully load the o2m relation). */
|
|
7
|
-
export declare function oneToManyFindDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: OneToManyCollection<T, U> | OneToManyLargeCollection<T, U>): DataLoader<string, U | undefined>;
|
|
8
|
-
//# sourceMappingURL=oneToManyFindDataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oneToManyFindDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToManyFindDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EAIzB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACxE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrE,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAiEnC"}
|