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,47 +0,0 @@
|
|
|
1
|
-
import { Entity, EntityMetadata, ManyToManyField, ReadOnlyCollection } from "..";
|
|
2
|
-
import { IsLoadedCachable } from "../IsLoadedCache";
|
|
3
|
-
import { ManyToManyLike } from "../JoinRows";
|
|
4
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
5
|
-
import { RelationT, RelationU } from "./Relation";
|
|
6
|
-
/**
|
|
7
|
-
* A read-only collection representing the "other side" of a ReactiveManyToMany.
|
|
8
|
-
*
|
|
9
|
-
* I.e. when `Author.bestReviews` is a `ReactiveManyToMany` (controlling side), `BookReview.bestReviewAuthors`
|
|
10
|
-
* the `ReactiveManyToManyOtherSide` (read-only view).
|
|
11
|
-
*/
|
|
12
|
-
export interface ReactiveManyToManyOtherSide<T extends Entity, U extends Entity> extends ReadOnlyCollection<T, U> {
|
|
13
|
-
}
|
|
14
|
-
/** Creates a ReactiveManyToManyOtherSide, the read-only other side of a ReactiveManyToMany. */
|
|
15
|
-
export declare function hasReactiveManyToManyOtherSide<T extends Entity, U extends Entity>(): ReactiveManyToManyOtherSide<T, U>;
|
|
16
|
-
export declare class ReactiveManyToManyOtherSideImpl<T extends Entity, U extends Entity> extends AbstractRelationImpl<T, U[]> implements ReactiveManyToManyOtherSide<T, U>, ManyToManyLike, IsLoadedCachable {
|
|
17
|
-
#private;
|
|
18
|
-
constructor(entity: T, field: ManyToManyField);
|
|
19
|
-
load(opts?: {
|
|
20
|
-
withDeleted?: boolean;
|
|
21
|
-
forceReload?: boolean;
|
|
22
|
-
}): Promise<readonly U[]>;
|
|
23
|
-
get isLoaded(): boolean;
|
|
24
|
-
resetIsLoaded(): void;
|
|
25
|
-
get get(): U[];
|
|
26
|
-
get getWithDeleted(): U[];
|
|
27
|
-
set(): void;
|
|
28
|
-
setFromOpts(_others: U[]): void;
|
|
29
|
-
maybeCascadeDelete(): void;
|
|
30
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
31
|
-
get fieldName(): string;
|
|
32
|
-
get meta(): EntityMetadata;
|
|
33
|
-
get otherMeta(): EntityMetadata;
|
|
34
|
-
get joinTableName(): string;
|
|
35
|
-
get columnName(): string;
|
|
36
|
-
get otherColumnName(): string;
|
|
37
|
-
get otherFieldName(): string;
|
|
38
|
-
get hasBeenSet(): boolean;
|
|
39
|
-
get isPreloaded(): boolean;
|
|
40
|
-
preload(): void;
|
|
41
|
-
import(other: ReactiveManyToManyOtherSideImpl<T, U>, _: unknown, mapEntities: (e: U[] | undefined) => U[] | undefined): void;
|
|
42
|
-
toString(): string;
|
|
43
|
-
[RelationT]: T;
|
|
44
|
-
[RelationU]: U;
|
|
45
|
-
}
|
|
46
|
-
export declare function isReactiveManyToManyOtherSide(maybeCollection: any): maybeCollection is ReactiveManyToManyOtherSide<any, any>;
|
|
47
|
-
//# sourceMappingURL=ReactiveManyToManyOtherSide.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveManyToManyOtherSide.d.ts","sourceRoot":"","sources":["../../src/relations/ReactiveManyToManyOtherSide.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,cAAc,EAId,eAAe,EACf,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG;AAEpH,+FAA+F;AAC/F,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,KAAK,2BAA2B,CAC/G,CAAC,EACD,CAAC,CACF,CAKA;AAED,qBAAa,+BAA+B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAC7E,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CACnC,YAAW,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB;;gBAWlE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe;IAMvC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IAe1F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,aAAa,IAAI,IAAI;IAIrB,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;IAED,IAAI,cAAc,IAAI,CAAC,EAAE,CAExB;IAED,GAAG,IAAI,IAAI;IAIX,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI;IAI/B,kBAAkB,IAAI,IAAI;IAIpB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7C,IAAI,SAAS,IAAI,MAAM,CAEtB;IAGD,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,IAAI;IAIf,MAAM,CACJ,KAAK,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5C,CAAC,EAAE,OAAO,EACV,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,GAAG,SAAS,GACnD,IAAI;IAMA,QAAQ,IAAI,MAAM;IA0CzB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;CACxB;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,GAAG,GACnB,eAAe,IAAI,2BAA2B,CAAC,GAAG,EAAE,GAAG,CAAC,CAE1D"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReactiveManyToManyOtherSideImpl = void 0;
|
|
4
|
-
exports.hasReactiveManyToManyOtherSide = hasReactiveManyToManyOtherSide;
|
|
5
|
-
exports.isReactiveManyToManyOtherSide = isReactiveManyToManyOtherSide;
|
|
6
|
-
const __1 = require("..");
|
|
7
|
-
const manyToManyDataLoader_1 = require("../dataloaders/manyToManyDataLoader");
|
|
8
|
-
const newEntity_1 = require("../newEntity");
|
|
9
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
10
|
-
const Relation_1 = require("./Relation");
|
|
11
|
-
/** Creates a ReactiveManyToManyOtherSide, the read-only other side of a ReactiveManyToMany. */
|
|
12
|
-
function hasReactiveManyToManyOtherSide() {
|
|
13
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
14
|
-
const m2m = (0, __1.getMetadata)(entity).allFields[fieldName];
|
|
15
|
-
return new ReactiveManyToManyOtherSideImpl(entity, m2m);
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
class ReactiveManyToManyOtherSideImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
19
|
-
#field;
|
|
20
|
-
// Loading state
|
|
21
|
-
#loaded;
|
|
22
|
-
#isLoaded = false;
|
|
23
|
-
#loadPromise;
|
|
24
|
-
// Cached result of applyPendingChanges (without deleted filtering)
|
|
25
|
-
#cached;
|
|
26
|
-
#isCached = false;
|
|
27
|
-
constructor(entity, field) {
|
|
28
|
-
super(entity);
|
|
29
|
-
this.#field = field;
|
|
30
|
-
(0, __1.getInstanceData)(entity).relations[field.fieldName] = this;
|
|
31
|
-
}
|
|
32
|
-
async load(opts) {
|
|
33
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
34
|
-
if (!this.#isLoaded || opts?.forceReload) {
|
|
35
|
-
this.#isCached = false;
|
|
36
|
-
return (this.#loadPromise ??= this.#loadFromJoinTable().then((loaded) => {
|
|
37
|
-
this.#loadPromise = undefined;
|
|
38
|
-
this.#loaded = loaded;
|
|
39
|
-
this.#isLoaded = true;
|
|
40
|
-
(0, __1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
|
|
41
|
-
return this.#doGet(opts);
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
return this.#doGet(opts);
|
|
45
|
-
}
|
|
46
|
-
get isLoaded() {
|
|
47
|
-
return this.#isLoaded;
|
|
48
|
-
}
|
|
49
|
-
resetIsLoaded() {
|
|
50
|
-
this.#isCached = false;
|
|
51
|
-
}
|
|
52
|
-
get get() {
|
|
53
|
-
return this.#doGet({ withDeleted: false });
|
|
54
|
-
}
|
|
55
|
-
get getWithDeleted() {
|
|
56
|
-
return this.#doGet({ withDeleted: true });
|
|
57
|
-
}
|
|
58
|
-
set() {
|
|
59
|
-
throw new Error(`ReactiveManyToManyOtherSide ${this.entity}.${this.fieldName} cannot be set`);
|
|
60
|
-
}
|
|
61
|
-
setFromOpts(_others) {
|
|
62
|
-
throw new Error(`ReactiveManyToManyOtherSide ${this.entity}.${this.fieldName} cannot be set via opts`);
|
|
63
|
-
}
|
|
64
|
-
maybeCascadeDelete() {
|
|
65
|
-
// Don't cascade - the controlling side handles this
|
|
66
|
-
}
|
|
67
|
-
async cleanupOnEntityDeleted() {
|
|
68
|
-
this.#loaded = [];
|
|
69
|
-
this.#cached = undefined;
|
|
70
|
-
this.#isCached = false;
|
|
71
|
-
this.#isLoaded = false;
|
|
72
|
-
}
|
|
73
|
-
get fieldName() {
|
|
74
|
-
return this.#field.fieldName;
|
|
75
|
-
}
|
|
76
|
-
// Properties for JoinRows/ManyToManyCollection compatibility
|
|
77
|
-
get meta() {
|
|
78
|
-
return (0, __1.getMetadata)(this.entity);
|
|
79
|
-
}
|
|
80
|
-
get otherMeta() {
|
|
81
|
-
return this.#field.otherMetadata();
|
|
82
|
-
}
|
|
83
|
-
get joinTableName() {
|
|
84
|
-
return this.#field.joinTableName;
|
|
85
|
-
}
|
|
86
|
-
get columnName() {
|
|
87
|
-
return this.#field.columnNames[0];
|
|
88
|
-
}
|
|
89
|
-
get otherColumnName() {
|
|
90
|
-
return this.#field.columnNames[1];
|
|
91
|
-
}
|
|
92
|
-
get otherFieldName() {
|
|
93
|
-
return this.#field.otherFieldName;
|
|
94
|
-
}
|
|
95
|
-
get hasBeenSet() {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
get isPreloaded() {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
preload() {
|
|
102
|
-
// No-op for reactive m2m other side
|
|
103
|
-
}
|
|
104
|
-
import(other, _, mapEntities) {
|
|
105
|
-
this.#loaded = mapEntities(other.#loaded);
|
|
106
|
-
this.#isLoaded = other.#isLoaded;
|
|
107
|
-
// Don't copy #cached/#isCached since it assumes we're registered in `isLoaded`, let #doGet do that
|
|
108
|
-
}
|
|
109
|
-
toString() {
|
|
110
|
-
return `ReactiveManyToManyOtherSide(entity: ${this.entity}, fieldName: ${this.fieldName}, otherMeta: ${this.otherMeta.type})`;
|
|
111
|
-
}
|
|
112
|
-
#doGet(opts) {
|
|
113
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
114
|
-
if (!this.#isLoaded) {
|
|
115
|
-
throw new Error(`${this.entity}.${this.fieldName} has not been loaded yet`);
|
|
116
|
-
}
|
|
117
|
-
if (!this.#isCached) {
|
|
118
|
-
this.#cached = this.#applyPendingChanges(this.#loaded ?? []);
|
|
119
|
-
this.#isCached = true;
|
|
120
|
-
(0, __1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
|
|
121
|
-
}
|
|
122
|
-
return this.#filterDeleted(this.#cached, opts);
|
|
123
|
-
}
|
|
124
|
-
async #loadFromJoinTable() {
|
|
125
|
-
const { em } = this.entity;
|
|
126
|
-
const key = `${this.columnName}=${this.entity.id}`;
|
|
127
|
-
const result = await (0, manyToManyDataLoader_1.manyToManyDataLoader)(em, this).load(key);
|
|
128
|
-
return result;
|
|
129
|
-
}
|
|
130
|
-
/** Apply pending changes from the controlling side. */
|
|
131
|
-
#applyPendingChanges(baseEntities) {
|
|
132
|
-
const result = new Set(baseEntities);
|
|
133
|
-
const jr = (0, __1.getEmInternalApi)(this.entity.em).joinRows(this);
|
|
134
|
-
const added = jr.addedFor(this, this.entity);
|
|
135
|
-
for (const other of added)
|
|
136
|
-
result.add(other);
|
|
137
|
-
const removed = jr.removedFor(this, this.entity);
|
|
138
|
-
for (const other of removed)
|
|
139
|
-
result.delete(other);
|
|
140
|
-
return [...result];
|
|
141
|
-
}
|
|
142
|
-
#filterDeleted(entities, opts) {
|
|
143
|
-
if (opts?.withDeleted === true) {
|
|
144
|
-
return entities;
|
|
145
|
-
}
|
|
146
|
-
return entities.filter((e) => !e.isDeletedEntity && !e.isSoftDeletedEntity);
|
|
147
|
-
}
|
|
148
|
-
[Relation_1.RelationT] = null;
|
|
149
|
-
[Relation_1.RelationU] = null;
|
|
150
|
-
}
|
|
151
|
-
exports.ReactiveManyToManyOtherSideImpl = ReactiveManyToManyOtherSideImpl;
|
|
152
|
-
function isReactiveManyToManyOtherSide(maybeCollection) {
|
|
153
|
-
return maybeCollection instanceof ReactiveManyToManyOtherSideImpl;
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=ReactiveManyToManyOtherSide.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveManyToManyOtherSide.js","sourceRoot":"","sources":["../../src/relations/ReactiveManyToManyOtherSide.ts"],"names":[],"mappings":";;;AA0BA,wEAQC;AAwKD,sEAIC;AA9MD,0BASY;AACZ,8EAA2E;AAG3E,4CAAyC;AACzC,iEAA8D;AAC9D,yCAAkD;AAUlD,+FAA+F;AAC/F,SAAgB,8BAA8B;IAI5C,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,SAAS,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAA,eAAW,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAoB,CAAC;QACxE,OAAO,IAAI,+BAA+B,CAAO,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAa,+BACX,SAAQ,2CAA4B;IAGpC,MAAM,CAAkB;IACxB,gBAAgB;IAChB,OAAO,CAAkB;IACzB,SAAS,GAAY,KAAK,CAAC;IAC3B,YAAY,CAAoC;IAChD,mEAAmE;IACnE,OAAO,CAAkB;IACzB,SAAS,GAAY,KAAK,CAAC;IAE3B,YAAY,MAAS,EAAE,KAAsB;QAC3C,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAA,mBAAe,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAuD;QAChE,IAAA,oBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAA,oBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAC;IAChG,CAAC;IAED,WAAW,CAAC,OAAY;QACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,yBAAyB,CAAC,CAAC;IACzG,CAAC;IAED,kBAAkB;QAChB,oDAAoD;IACtD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI;QACN,OAAO,IAAA,eAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,WAAW;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,oCAAoC;IACtC,CAAC;IAED,MAAM,CACJ,KAA4C,EAC5C,CAAU,EACV,WAAoD;QAEpD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,mGAAmG;IACrG,CAAC;IAEM,QAAQ;QACb,OAAO,uCAAuC,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;IAChI,CAAC;IAED,MAAM,CAAC,IAAgC;QACrC,IAAA,oBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,0BAA0B,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAA,oBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,EAAE,EAAE,IAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,MAAa,CAAC;IACvB,CAAC;IAED,uDAAuD;IACvD,oBAAoB,CAAC,YAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,IAAA,oBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,KAAU,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,KAAU,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,QAAa,EAAE,IAAgC;QAC5D,IAAI,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAE,CAAS,CAAC,mBAAmB,CAAC,CAAC;IACvF,CAAC;IAED,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;IACvB,CAAC,oBAAS,CAAC,GAAM,IAAK,CAAC;CACxB;AApKD,0EAoKC;AAED,SAAgB,6BAA6B,CAC3C,eAAoB;IAEpB,OAAO,eAAe,YAAY,+BAA+B,CAAC;AACpE,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { ReactiveField } from "../index";
|
|
3
|
-
import { Reacted, ReactiveHint } from "../reactiveHints";
|
|
4
|
-
import { AbstractPropertyImpl } from "./AbstractPropertyImpl";
|
|
5
|
-
import { AsyncPropertyT } from "./hasAsyncProperty";
|
|
6
|
-
/**
|
|
7
|
-
* A `ReactiveQueryField` is a value that is derived from a SQL query, similar to
|
|
8
|
-
* a `ReactiveField`, but when the value needs to be calculated from SQL because
|
|
9
|
-
* it would be too expensive to calculate in-memory.
|
|
10
|
-
*
|
|
11
|
-
* The `fn` lambda will be called when any data referred to by either the `paramHint` or
|
|
12
|
-
* `dbHint` reactive hints have changed, but only the `paramHint`'s data will be pulled
|
|
13
|
-
* into memory.
|
|
14
|
-
*/
|
|
15
|
-
export declare function hasReactiveQueryField<T extends Entity, const H1 extends ReactiveHint<T>, const H2 extends ReactiveHint<T>, V>(paramHint: H1, dbHint: H2, fn: (entity: Reacted<T, H1>) => Promise<V>): ReactiveField<T, V>;
|
|
16
|
-
export declare class ReactiveQueryFieldImpl<T extends Entity, H1 extends ReactiveHint<T>, H2 extends ReactiveHint<T>, V> extends AbstractPropertyImpl<T> implements ReactiveField<T, V> {
|
|
17
|
-
#private;
|
|
18
|
-
fieldName: keyof T & string;
|
|
19
|
-
paramHint: H1;
|
|
20
|
-
dbHint: H2;
|
|
21
|
-
private fn;
|
|
22
|
-
constructor(entity: T, fieldName: keyof T & string, paramHint: H1, dbHint: H2, fn: (entity: Reacted<T, H1>) => Promise<V>);
|
|
23
|
-
/** Our combined param + db reactivity hint, so that we react to changes within both. */
|
|
24
|
-
get reactiveHint(): ReactiveHint<any>;
|
|
25
|
-
load(opts?: {
|
|
26
|
-
forceReload?: boolean;
|
|
27
|
-
}): Promise<V>;
|
|
28
|
-
/** Returns the previously-calculated value. */
|
|
29
|
-
get get(): V;
|
|
30
|
-
get fieldValue(): V;
|
|
31
|
-
get isSet(): boolean;
|
|
32
|
-
get isLoaded(): boolean;
|
|
33
|
-
get loadHint(): any;
|
|
34
|
-
setFactoryValue(newValue: any): void;
|
|
35
|
-
[AsyncPropertyT]: T;
|
|
36
|
-
}
|
|
37
|
-
/** Type guard utility for determining if an entity field is an ReactiveQueryField. */
|
|
38
|
-
export declare function isReactiveQueryField(maybe: any): maybe is ReactiveField<any, any>;
|
|
39
|
-
/** Type guard utility for determining if an entity field is a loaded ReactiveQueryField. */
|
|
40
|
-
export declare function isLoadedReactiveQueryField(maybe: any): maybe is ReactiveField<any, any>;
|
|
41
|
-
//# sourceMappingURL=ReactiveQueryField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveQueryField.d.ts","sourceRoot":"","sources":["../../src/relations/ReactiveQueryField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,aAAa,EAA+B,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,MAAM,EAChB,KAAK,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAChC,KAAK,CAAC,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAChC,CAAC,EACD,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAI5F;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7G,SAAQ,oBAAoB,CAAC,CAAC,CAC9B,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAUrB,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM;IAC3B,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACjB,OAAO,CAAC,EAAE;gBAJV,MAAM,EAAE,CAAC,EACF,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAC3B,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,EAAE,EACT,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAQpD,wFAAwF;IACxF,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,CAMpC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBlD,+CAA+C;IAC/C,IAAI,GAAG,IAAI,CAAC,CASX;IAED,IAAI,UAAU,IAAI,CAAC,CAElB;IAED,IAAI,KAAK,YAER;IAED,IAAI,QAAQ,YAMX;IAED,IAAI,QAAQ,IAAI,GAAG,CAIlB;IAED,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAKpC,CAAC,cAAc,CAAC,EAAuB,CAAC,CAAC;CAC1C;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAEjF;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAEvF"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReactiveQueryFieldImpl = void 0;
|
|
4
|
-
exports.hasReactiveQueryField = hasReactiveQueryField;
|
|
5
|
-
exports.isReactiveQueryField = isReactiveQueryField;
|
|
6
|
-
exports.isLoadedReactiveQueryField = isLoadedReactiveQueryField;
|
|
7
|
-
const EntityMetadata_1 = require("../EntityMetadata");
|
|
8
|
-
const fields_1 = require("../fields");
|
|
9
|
-
const index_1 = require("../index");
|
|
10
|
-
const newEntity_1 = require("../newEntity");
|
|
11
|
-
const reactiveHints_1 = require("../reactiveHints");
|
|
12
|
-
const utils_1 = require("../utils");
|
|
13
|
-
const AbstractPropertyImpl_1 = require("./AbstractPropertyImpl");
|
|
14
|
-
const hasAsyncProperty_1 = require("./hasAsyncProperty");
|
|
15
|
-
/**
|
|
16
|
-
* A `ReactiveQueryField` is a value that is derived from a SQL query, similar to
|
|
17
|
-
* a `ReactiveField`, but when the value needs to be calculated from SQL because
|
|
18
|
-
* it would be too expensive to calculate in-memory.
|
|
19
|
-
*
|
|
20
|
-
* The `fn` lambda will be called when any data referred to by either the `paramHint` or
|
|
21
|
-
* `dbHint` reactive hints have changed, but only the `paramHint`'s data will be pulled
|
|
22
|
-
* into memory.
|
|
23
|
-
*/
|
|
24
|
-
function hasReactiveQueryField(paramHint, dbHint, fn) {
|
|
25
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
26
|
-
return new ReactiveQueryFieldImpl(entity, fieldName, paramHint, dbHint, fn);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
class ReactiveQueryFieldImpl extends AbstractPropertyImpl_1.AbstractPropertyImpl {
|
|
30
|
-
fieldName;
|
|
31
|
-
paramHint;
|
|
32
|
-
dbHint;
|
|
33
|
-
fn;
|
|
34
|
-
#paramHint;
|
|
35
|
-
#dbHint;
|
|
36
|
-
#loadPromise;
|
|
37
|
-
#loaded;
|
|
38
|
-
#useFactoryValue = false;
|
|
39
|
-
constructor(entity, fieldName, paramHint, dbHint, fn) {
|
|
40
|
-
super(entity);
|
|
41
|
-
this.fieldName = fieldName;
|
|
42
|
-
this.paramHint = paramHint;
|
|
43
|
-
this.dbHint = dbHint;
|
|
44
|
-
this.fn = fn;
|
|
45
|
-
this.#paramHint = paramHint;
|
|
46
|
-
this.#dbHint = dbHint;
|
|
47
|
-
this.#loaded = false;
|
|
48
|
-
}
|
|
49
|
-
/** Our combined param + db reactivity hint, so that we react to changes within both. */
|
|
50
|
-
get reactiveHint() {
|
|
51
|
-
// We do this in a getter (instead of the constructor) b/c it might be a little expensive,
|
|
52
|
-
// and I'm pretty sure this is only called on boot, when hooking up the reactivity.
|
|
53
|
-
const hint = (0, index_1.deepNormalizeHint)(this.#paramHint);
|
|
54
|
-
(0, utils_1.mergeNormalizedHints)(hint, (0, index_1.deepNormalizeHint)(this.#dbHint));
|
|
55
|
-
return hint;
|
|
56
|
-
}
|
|
57
|
-
load(opts) {
|
|
58
|
-
// if (!this.isSet || opts?.forceReload) {
|
|
59
|
-
return (this.#loadPromise ??= this.entity.em
|
|
60
|
-
.populate(this.entity, { hint: this.loadHint })
|
|
61
|
-
.then(() => {
|
|
62
|
-
// Even if the factory used a `with...`, we'll still go through the RFQ logic, but just ignore the new value
|
|
63
|
-
return this.#useFactoryValue ? this.fieldValue : this.fn(this.entity);
|
|
64
|
-
})
|
|
65
|
-
.then((newValue) => {
|
|
66
|
-
(0, fields_1.setField)(this.entity, this.fieldName, newValue);
|
|
67
|
-
this.#loadPromise = undefined;
|
|
68
|
-
this.#loaded = true;
|
|
69
|
-
return newValue;
|
|
70
|
-
})
|
|
71
|
-
.catch((e) => {
|
|
72
|
-
// If we blow up calling `this.fn` i.e. due to a NoIdError, we want to make
|
|
73
|
-
// sure that the next `.load` call tries again.
|
|
74
|
-
this.#loadPromise = undefined;
|
|
75
|
-
throw e;
|
|
76
|
-
}));
|
|
77
|
-
// }
|
|
78
|
-
// return tryResolve(() => this.get);
|
|
79
|
-
}
|
|
80
|
-
/** Returns the previously-calculated value. */
|
|
81
|
-
get get() {
|
|
82
|
-
// Regular ReactiveFields repeatedly call their `fn` lambda to calculate the value, to ensure
|
|
83
|
-
// they always return the latest/correct value, but because ReactiveQueryFields are fundamentally
|
|
84
|
-
// calculated from DB queries, we can only return the previously-calculated value, if set.
|
|
85
|
-
if (this.isSet) {
|
|
86
|
-
return this.fieldValue;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
throw new Error(`${this.fieldName} has not been derived yet`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
get fieldValue() {
|
|
93
|
-
return (0, fields_1.getField)(this.entity, this.fieldName);
|
|
94
|
-
}
|
|
95
|
-
get isSet() {
|
|
96
|
-
return (0, fields_1.isFieldSet)(this.entity, this.fieldName);
|
|
97
|
-
}
|
|
98
|
-
get isLoaded() {
|
|
99
|
-
const hintLoaded = (0, index_1.isLoaded)(this.entity, this.loadHint);
|
|
100
|
-
if (hintLoaded) {
|
|
101
|
-
this.#loaded = true;
|
|
102
|
-
}
|
|
103
|
-
return hintLoaded;
|
|
104
|
-
}
|
|
105
|
-
get loadHint() {
|
|
106
|
-
// Only convert the paramHint, so we don't pull the dbHint-referenced data into memory
|
|
107
|
-
const meta = (0, EntityMetadata_1.getMetadata)(this.entity);
|
|
108
|
-
return (meta.config.__data.cachedReactiveLoadHints[this.fieldName] ??= (0, reactiveHints_1.convertToLoadHint)(meta, this.#paramHint));
|
|
109
|
-
}
|
|
110
|
-
setFactoryValue(newValue) {
|
|
111
|
-
this.#useFactoryValue = true;
|
|
112
|
-
(0, fields_1.setField)(this.entity, this.fieldName, newValue);
|
|
113
|
-
}
|
|
114
|
-
[hasAsyncProperty_1.AsyncPropertyT] = undefined;
|
|
115
|
-
}
|
|
116
|
-
exports.ReactiveQueryFieldImpl = ReactiveQueryFieldImpl;
|
|
117
|
-
/** Type guard utility for determining if an entity field is an ReactiveQueryField. */
|
|
118
|
-
function isReactiveQueryField(maybe) {
|
|
119
|
-
return maybe instanceof ReactiveQueryFieldImpl;
|
|
120
|
-
}
|
|
121
|
-
/** Type guard utility for determining if an entity field is a loaded ReactiveQueryField. */
|
|
122
|
-
function isLoadedReactiveQueryField(maybe) {
|
|
123
|
-
return isReactiveQueryField(maybe) && maybe.isLoaded;
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=ReactiveQueryField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveQueryField.js","sourceRoot":"","sources":["../../src/relations/ReactiveQueryField.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { EntityMetadata, ManyToOneField, TaggedId } from "..";
|
|
2
|
-
import { Entity } from "../Entity";
|
|
3
|
-
import { IdOf } from "../EntityManager";
|
|
4
|
-
import { IsLoadedCachable } from "../IsLoadedCache";
|
|
5
|
-
import { MaybeReactedEntity, Reacted, ReactiveHint } from "../reactiveHints";
|
|
6
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
7
|
-
import { Reference, ReferenceN } from "./Reference";
|
|
8
|
-
import { RelationT, RelationU } from "./Relation";
|
|
9
|
-
export interface ReactiveReference<T extends Entity, U extends Entity, N extends never | undefined> extends Reference<T, U, N> {
|
|
10
|
-
isLoaded: boolean;
|
|
11
|
-
isSet: boolean;
|
|
12
|
-
load(opts?: {
|
|
13
|
-
withDeleted?: boolean;
|
|
14
|
-
forceReload?: true;
|
|
15
|
-
}): Promise<U | N>;
|
|
16
|
-
/**
|
|
17
|
-
* Returns the as-of-last-flush previously-calculated entity.
|
|
18
|
-
*
|
|
19
|
-
* This is useful if you have to purposefully avoid using the lambda to calc the latest entity,
|
|
20
|
-
* i.e. if you're in a test and want to watch a calculated entity change from some dummy entity
|
|
21
|
-
* to the new derived entity.
|
|
22
|
-
* */
|
|
23
|
-
fieldValue: U | N;
|
|
24
|
-
/** Returns the id of the current assigned entity, or a runtime error if either 1) unset or 2) set to a new entity that doesn't have an `id` yet. */
|
|
25
|
-
id: IdOf<U>;
|
|
26
|
-
/** Returns the id of the current assigned entity, undefined if unset, or a runtime error if set to a new entity. */
|
|
27
|
-
idIfSet: IdOf<U> | undefined;
|
|
28
|
-
idUntagged: string;
|
|
29
|
-
idUntaggedIfSet: string | undefined;
|
|
30
|
-
}
|
|
31
|
-
export declare function hasReactiveReference<T extends Entity, U extends Entity, const H extends ReactiveHint<T>>(hint: H, fn: (entity: Reacted<T, H>) => MaybeReactedEntity<U>): ReactiveReference<T, U, never>;
|
|
32
|
-
export declare function hasReactiveReference<T extends Entity, U extends Entity, const H extends ReactiveHint<T>>(hint: H, fn: (entity: Reacted<T, H>) => MaybeReactedEntity<U> | undefined): ReactiveReference<T, U, undefined>;
|
|
33
|
-
/**
|
|
34
|
-
* Implements ReactiveReferences.
|
|
35
|
-
*
|
|
36
|
-
* This is a bit trickier than ReactiveFields, because we have to differentiate our loaded
|
|
37
|
-
* between:
|
|
38
|
-
*
|
|
39
|
-
* - our load hint is loaded, and we can directly calculate the referenced entity, or
|
|
40
|
-
* - we've fetched the calculated/stored entity from the database, but not purposefully
|
|
41
|
-
* not re-calculating it (which would require fetching the load hint, which might be
|
|
42
|
-
* expensive, and defeat the point of having our field materialized in the database)
|
|
43
|
-
*
|
|
44
|
-
* Further, want to support all of:
|
|
45
|
-
*
|
|
46
|
-
* - When loaded & `.get` has been called, we cache the value
|
|
47
|
-
*
|
|
48
|
-
* - If a WIP mutation happens, we invalidate `.get` *but* if we check `.isLoaded`,
|
|
49
|
-
* we can return the live/updated value, without an `await`.
|
|
50
|
-
*
|
|
51
|
-
* - If a WIP mutation happens, we invalidate `.isLoaded`, and if we're *no longer loaded*,
|
|
52
|
-
* we want to keep returning the stale value (as asserted by the tests), but the next
|
|
53
|
-
* `load` / `populate` should load the graph & recalculate the value.
|
|
54
|
-
*/
|
|
55
|
-
export declare class ReactiveReferenceImpl<T extends Entity, U extends Entity, H extends ReactiveHint<T>, N extends never | undefined> extends AbstractRelationImpl<T, U> implements ReactiveReference<T, U, N>, IsLoadedCachable {
|
|
56
|
-
#private;
|
|
57
|
-
reactiveHint: H;
|
|
58
|
-
private fn;
|
|
59
|
-
constructor(entity: T, field: ManyToOneField, reactiveHint: H, fn: (entity: Reacted<T, H>) => MaybeReactedEntity<U> | N);
|
|
60
|
-
load(opts?: {
|
|
61
|
-
withDeleted?: true;
|
|
62
|
-
forceReload?: true;
|
|
63
|
-
}): Promise<U | N>;
|
|
64
|
-
get isLoaded(): boolean;
|
|
65
|
-
resetIsLoaded(): void;
|
|
66
|
-
private doGet;
|
|
67
|
-
get fieldValue(): U;
|
|
68
|
-
get getWithDeleted(): U | N;
|
|
69
|
-
get get(): U | N;
|
|
70
|
-
set(_: U | N): void;
|
|
71
|
-
get isSet(): boolean;
|
|
72
|
-
setImpl(entity: U | N): void;
|
|
73
|
-
get isPreloaded(): boolean;
|
|
74
|
-
preload(): void;
|
|
75
|
-
private unload;
|
|
76
|
-
import(other: ReactiveReferenceImpl<T, U, H, N>, findEntity: (e: U) => U): void;
|
|
77
|
-
/** Returns the tagged id of the current value. */
|
|
78
|
-
get idTaggedMaybe(): TaggedId | N;
|
|
79
|
-
get id(): IdOf<U>;
|
|
80
|
-
get idUntagged(): string;
|
|
81
|
-
get idIfSet(): IdOf<U> | N | undefined;
|
|
82
|
-
get idUntaggedIfSet(): string | undefined;
|
|
83
|
-
get loadHint(): any;
|
|
84
|
-
/** Returns the id of the current value. */
|
|
85
|
-
private get idMaybe();
|
|
86
|
-
private get idUntaggedMaybe();
|
|
87
|
-
setFromOpts(_: U | IdOf<U> | N): void;
|
|
88
|
-
maybeCascadeDelete(): void;
|
|
89
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
90
|
-
current(opts?: {
|
|
91
|
-
withDeleted?: boolean;
|
|
92
|
-
}): U | string | N;
|
|
93
|
-
get fieldName(): string;
|
|
94
|
-
get otherMeta(): EntityMetadata<U>;
|
|
95
|
-
get hasBeenSet(): boolean;
|
|
96
|
-
toString(): string;
|
|
97
|
-
/**
|
|
98
|
-
* Removes pending-hard-delete (but not soft-deleted), unless explicitly asked for.
|
|
99
|
-
*
|
|
100
|
-
* Note that we leave soft-deleted entities b/c the call signature of a `book.author.get`
|
|
101
|
-
* very likely does not expect a soft-deleted entity to result in `undefined`.
|
|
102
|
-
*
|
|
103
|
-
* (Contrasted with `author.books.get` which is more intuitive to have soft-deleted
|
|
104
|
-
* entities filtered out, i.e. it doesn't fundamentally change the return type.)
|
|
105
|
-
*/
|
|
106
|
-
private filterDeleted;
|
|
107
|
-
private get isCascadeDelete();
|
|
108
|
-
/**
|
|
109
|
-
* Looks for an entity in `EntityManager`, b/c we may have it in memory even if
|
|
110
|
-
* our reference is not specifically loaded.
|
|
111
|
-
*/
|
|
112
|
-
maybeFindEntity(): U | N;
|
|
113
|
-
[RelationT]: T;
|
|
114
|
-
[RelationU]: U;
|
|
115
|
-
[ReferenceN]: N;
|
|
116
|
-
}
|
|
117
|
-
/** Type guard utility for determining if an entity field is a ReactiveReference. */
|
|
118
|
-
export declare function isReactiveReference(maybeReactiveRef: any): maybeReactiveRef is ReactiveReference<any, any, any>;
|
|
119
|
-
//# sourceMappingURL=ReactiveReference.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveReference.d.ts","sourceRoot":"","sources":["../../src/relations/ReactiveReference.ts"],"names":[],"mappings":"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"}
|