joist-orm 1.294.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 -128
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -284
- 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/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 -2075
- 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 -308
- 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 -162
- 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,19 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf } from "../EntityManager";
|
|
3
|
-
import { Relation } from "./Relation";
|
|
4
|
-
/**
|
|
5
|
-
* A large collection of `U` within `T`, where the parent has so many children
|
|
6
|
-
* that we cannot load them all at a single time.
|
|
7
|
-
*
|
|
8
|
-
* We consider this a `Relation`, but not a true `Collection` b/c it cannot be
|
|
9
|
-
* loaded.
|
|
10
|
-
*/
|
|
11
|
-
export interface LargeCollection<T extends Entity, U extends Entity> extends Relation<T, U> {
|
|
12
|
-
/** Looks up the specific `id` without fully loading the collection. */
|
|
13
|
-
find(id: IdOf<U>): Promise<U | undefined>;
|
|
14
|
-
/** Looks up the specific `other` without fully loading the collection. */
|
|
15
|
-
includes(other: U): Promise<boolean>;
|
|
16
|
-
add(other: U): void;
|
|
17
|
-
remove(other: U): void;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=LargeCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LargeCollection.d.ts","sourceRoot":"","sources":["../../src/relations/LargeCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,uEAAuE;IACvE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LargeCollection.js","sourceRoot":"","sources":["../../src/relations/LargeCollection.ts"],"names":[],"mappings":""}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Collection, Entity, EntityMetadata, IdOf, ManyToManyField } from "../";
|
|
2
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
3
|
-
import { RelationT, RelationU } from "./Relation";
|
|
4
|
-
/** An alias for creating `ManyToManyCollections`s. */
|
|
5
|
-
export declare function hasManyToMany<T extends Entity, U extends Entity>(): Collection<T, U>;
|
|
6
|
-
export declare class ManyToManyCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<T, U[]> implements Collection<T, U> {
|
|
7
|
-
#private;
|
|
8
|
-
constructor(entity: T, field: ManyToManyField);
|
|
9
|
-
/** Removes pending-hard-delete or soft-deleted entities, unless explicitly asked for. */
|
|
10
|
-
private filterDeleted;
|
|
11
|
-
load(opts?: {
|
|
12
|
-
withDeleted?: boolean;
|
|
13
|
-
forceReload?: boolean;
|
|
14
|
-
}): Promise<ReadonlyArray<U>>;
|
|
15
|
-
find(id: IdOf<U>): Promise<U | undefined>;
|
|
16
|
-
includes(other: U): Promise<boolean>;
|
|
17
|
-
add(other: U, percolated?: boolean): void;
|
|
18
|
-
remove(other: U, percolated?: boolean): void;
|
|
19
|
-
get isLoaded(): boolean;
|
|
20
|
-
get isPreloaded(): boolean;
|
|
21
|
-
preload(): void;
|
|
22
|
-
import(other: ManyToManyCollection<T, U>, _: unknown, mapEntities: (e: U[] | undefined) => U[] | undefined): void;
|
|
23
|
-
private doGet;
|
|
24
|
-
get getWithDeleted(): U[];
|
|
25
|
-
get get(): U[];
|
|
26
|
-
set(values: readonly U[]): void;
|
|
27
|
-
removeAll(): void;
|
|
28
|
-
setFromOpts(others: U[]): void;
|
|
29
|
-
maybeCascadeDelete(): void;
|
|
30
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
31
|
-
private maybeApplyAddedAndRemovedBeforeLoaded;
|
|
32
|
-
get meta(): EntityMetadata;
|
|
33
|
-
get otherMeta(): EntityMetadata;
|
|
34
|
-
get joinTableName(): string;
|
|
35
|
-
get fieldName(): string;
|
|
36
|
-
get otherFieldName(): string & keyof U;
|
|
37
|
-
get columnName(): string;
|
|
38
|
-
get otherColumnName(): string;
|
|
39
|
-
get hasBeenSet(): boolean;
|
|
40
|
-
toString(): string;
|
|
41
|
-
[RelationT]: T;
|
|
42
|
-
[RelationU]: U;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=ManyToManyCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyCollection.d.ts","sourceRoot":"","sources":["../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,MAAM,EACN,cAAc,EAId,IAAI,EACJ,eAAe,EAEhB,MAAM,KAAK,CAAC;AAKb,OAAO,EAAE,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAKpF;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAClE,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CACnC,YAAW,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAaf,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe;IAQ7C,yFAAyF;IACzF,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAgB5F,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAqBzC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1C,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAiBvC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAgB1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,IAAI;IAKf,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI;IAMjH,OAAO,CAAC,KAAK;IASb,IAAI,cAAc,IAAI,CAAC,EAAE,CAExB;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;IAED,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI;IAkB/B,SAAS,IAAI,IAAI;IAYjB,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAK9B,kBAAkB;IAMZ,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7C,OAAO,CAAC,qCAAqC;IAqB7C,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,CAErC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAMD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,QAAQ,IAAI,MAAM;IASlB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;CACxB"}
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ManyToManyCollection = void 0;
|
|
4
|
-
exports.hasManyToMany = hasManyToMany;
|
|
5
|
-
const __1 = require("../");
|
|
6
|
-
const manyToManyDataLoader_1 = require("../dataloaders/manyToManyDataLoader");
|
|
7
|
-
const manyToManyFindDataLoader_1 = require("../dataloaders/manyToManyFindDataLoader");
|
|
8
|
-
const newEntity_1 = require("../newEntity");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
11
|
-
const Relation_1 = require("./Relation");
|
|
12
|
-
/** An alias for creating `ManyToManyCollections`s. */
|
|
13
|
-
function hasManyToMany() {
|
|
14
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
15
|
-
const m2m = (0, __1.getMetadata)(entity).allFields[fieldName];
|
|
16
|
-
return new ManyToManyCollection(entity, m2m);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
20
|
-
#field;
|
|
21
|
-
#loaded;
|
|
22
|
-
#addedBeforeLoaded;
|
|
23
|
-
#removedBeforeLoaded;
|
|
24
|
-
#hasBeenSet = false;
|
|
25
|
-
// I.e. when entity = Book:
|
|
26
|
-
// fieldName == tags, because it's our collection to tags
|
|
27
|
-
// columnName = book_id, what we use as the `where book_id = us` to find our join table rows
|
|
28
|
-
// otherFieldName = books, how tags points to us
|
|
29
|
-
// otherColumnName = tag_id, how the other side finds its join table rows
|
|
30
|
-
constructor(entity, field) {
|
|
31
|
-
super(entity);
|
|
32
|
-
this.#field = field;
|
|
33
|
-
if ((0, __1.getInstanceData)(entity).isOrWasNew) {
|
|
34
|
-
this.#loaded = [];
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/** Removes pending-hard-delete or soft-deleted entities, unless explicitly asked for. */
|
|
38
|
-
filterDeleted(entities, opts) {
|
|
39
|
-
return opts?.withDeleted === true
|
|
40
|
-
? [...entities]
|
|
41
|
-
: entities.filter((e) => !e.isDeletedEntity && !e.isSoftDeletedEntity);
|
|
42
|
-
}
|
|
43
|
-
async load(opts = {}) {
|
|
44
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
45
|
-
if (this.#loaded === undefined || (opts.forceReload && !this.entity.isNewEntity)) {
|
|
46
|
-
const key = `${this.columnName}=${this.entity.id}`;
|
|
47
|
-
this.#loaded =
|
|
48
|
-
this.#getPreloaded() ??
|
|
49
|
-
(await (0, manyToManyDataLoader_1.manyToManyDataLoader)(this.entity.em, this)
|
|
50
|
-
.load(key)
|
|
51
|
-
.catch(function load(err) {
|
|
52
|
-
throw (0, __1.appendStack)(err, new Error());
|
|
53
|
-
}));
|
|
54
|
-
this.maybeApplyAddedAndRemovedBeforeLoaded();
|
|
55
|
-
}
|
|
56
|
-
return this.filterDeleted(this.#loaded, opts);
|
|
57
|
-
}
|
|
58
|
-
async find(id) {
|
|
59
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
60
|
-
if (this.#loaded !== undefined) {
|
|
61
|
-
return this.#loaded.find((u) => u.id === id);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const added = this.#addedBeforeLoaded?.find((u) => u.id === id);
|
|
65
|
-
if (added) {
|
|
66
|
-
return added;
|
|
67
|
-
}
|
|
68
|
-
// Make a cacheable tuple to look up this specific m2m row
|
|
69
|
-
const key = `${this.columnName}=${this.entity.id},${this.otherColumnName}=${id}`;
|
|
70
|
-
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.entity.em, this)
|
|
71
|
-
.load(key)
|
|
72
|
-
.catch(function load(err) {
|
|
73
|
-
throw (0, __1.appendStack)(err, new Error());
|
|
74
|
-
});
|
|
75
|
-
const taggedId = (0, __1.toTaggedId)(this.otherMeta, id);
|
|
76
|
-
return includes ? this.entity.em.load(taggedId) : undefined;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
async includes(other) {
|
|
80
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
81
|
-
if (this.#loaded !== undefined) {
|
|
82
|
-
return this.#loaded.includes(other);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
if (this.#addedBeforeLoaded?.includes(other)) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
else if (other.isNewEntity) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
// Make a cacheable tuple to look up this specific m2m row
|
|
92
|
-
const key = `${this.columnName}=${this.entity.id},${this.otherColumnName}=${other.id}`;
|
|
93
|
-
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.entity.em, this)
|
|
94
|
-
.load(key)
|
|
95
|
-
.catch(function includes(err) {
|
|
96
|
-
throw (0, __1.appendStack)(err, new Error());
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
add(other, percolated = false) {
|
|
101
|
-
(0, __1.ensureNotDeleted)(this.entity);
|
|
102
|
-
if (this.#loaded !== undefined) {
|
|
103
|
-
if (this.#loaded.includes(other))
|
|
104
|
-
return;
|
|
105
|
-
this.#loaded.push(other);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
if (this.#removedBeforeLoaded)
|
|
109
|
-
(0, utils_1.remove)(this.#removedBeforeLoaded, other);
|
|
110
|
-
if (!(this.#addedBeforeLoaded ??= []).includes(other))
|
|
111
|
-
this.#addedBeforeLoaded.push(other);
|
|
112
|
-
}
|
|
113
|
-
if (!percolated) {
|
|
114
|
-
(0, __1.getEmInternalApi)(this.entity.em).joinRows(this).addNew(this, this.entity, other);
|
|
115
|
-
other[this.otherFieldName].add(this.entity, true);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
remove(other, percolated = false) {
|
|
119
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
120
|
-
if (!percolated) {
|
|
121
|
-
(0, __1.getEmInternalApi)(this.entity.em).joinRows(this).addRemove(this, this.entity, other);
|
|
122
|
-
other[this.otherFieldName].remove(this.entity, true);
|
|
123
|
-
}
|
|
124
|
-
if (this.#loaded !== undefined) {
|
|
125
|
-
(0, utils_1.remove)(this.#loaded, other);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
(0, utils_1.maybeRemove)(this.#addedBeforeLoaded, other);
|
|
129
|
-
(0, utils_1.maybeAdd)((this.#removedBeforeLoaded ??= []), other);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
get isLoaded() {
|
|
133
|
-
return this.#loaded !== undefined;
|
|
134
|
-
}
|
|
135
|
-
get isPreloaded() {
|
|
136
|
-
return !!this.#getPreloaded();
|
|
137
|
-
}
|
|
138
|
-
preload() {
|
|
139
|
-
this.#loaded = this.#getPreloaded();
|
|
140
|
-
this.maybeApplyAddedAndRemovedBeforeLoaded();
|
|
141
|
-
}
|
|
142
|
-
import(other, _, mapEntities) {
|
|
143
|
-
this.#loaded = mapEntities(other.#loaded);
|
|
144
|
-
this.#addedBeforeLoaded = mapEntities(other.#addedBeforeLoaded);
|
|
145
|
-
this.#removedBeforeLoaded = mapEntities(other.#removedBeforeLoaded);
|
|
146
|
-
}
|
|
147
|
-
doGet() {
|
|
148
|
-
(0, __1.ensureNotDeleted)(this.entity, "pending");
|
|
149
|
-
if (this.#loaded === undefined) {
|
|
150
|
-
// This should only be callable in the type system if we've already resolved this to an instance
|
|
151
|
-
throw new Error(`${this.entity}.${this.fieldName}.get was called when not loaded`);
|
|
152
|
-
}
|
|
153
|
-
return this.#loaded;
|
|
154
|
-
}
|
|
155
|
-
get getWithDeleted() {
|
|
156
|
-
return this.filterDeleted(this.doGet(), { withDeleted: true });
|
|
157
|
-
}
|
|
158
|
-
get get() {
|
|
159
|
-
return this.filterDeleted(this.doGet(), { withDeleted: false });
|
|
160
|
-
}
|
|
161
|
-
set(values) {
|
|
162
|
-
(0, __1.ensureNotDeleted)(this.entity);
|
|
163
|
-
if (this.#loaded === undefined) {
|
|
164
|
-
throw new Error("set was called when not loaded");
|
|
165
|
-
}
|
|
166
|
-
this.#hasBeenSet = true;
|
|
167
|
-
// Make a copy for safe iteration
|
|
168
|
-
const loaded = [...this.#loaded];
|
|
169
|
-
// Remove old values
|
|
170
|
-
for (const other of loaded) {
|
|
171
|
-
if (!values.includes(other))
|
|
172
|
-
this.remove(other);
|
|
173
|
-
}
|
|
174
|
-
// Add new values
|
|
175
|
-
for (const other of values) {
|
|
176
|
-
if (!loaded.includes(other))
|
|
177
|
-
this.add(other);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
removeAll() {
|
|
181
|
-
(0, __1.ensureNotDeleted)(this.entity);
|
|
182
|
-
if (this.#loaded === undefined) {
|
|
183
|
-
throw new Error("removeAll was called when not loaded");
|
|
184
|
-
}
|
|
185
|
-
for (const other of [...this.#loaded]) {
|
|
186
|
-
this.remove(other);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
// impl details
|
|
190
|
-
setFromOpts(others) {
|
|
191
|
-
this.#loaded = [];
|
|
192
|
-
others.forEach((o) => this.add(o));
|
|
193
|
-
}
|
|
194
|
-
maybeCascadeDelete() {
|
|
195
|
-
if (this.#isCascadeDelete) {
|
|
196
|
-
this.#current({ withDeleted: true }).forEach((e) => this.entity.em.delete(e));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
async cleanupOnEntityDeleted() {
|
|
200
|
-
// if we are going to delete this relation as well, then we don't need to clean it up
|
|
201
|
-
if (this.#isCascadeDelete)
|
|
202
|
-
return;
|
|
203
|
-
const entities = await this.load({ withDeleted: true });
|
|
204
|
-
entities.forEach((other) => {
|
|
205
|
-
const m2m = other[this.otherFieldName];
|
|
206
|
-
m2m.remove(this.entity);
|
|
207
|
-
});
|
|
208
|
-
this.#loaded = [];
|
|
209
|
-
}
|
|
210
|
-
maybeApplyAddedAndRemovedBeforeLoaded() {
|
|
211
|
-
if (this.#loaded) {
|
|
212
|
-
this.#addedBeforeLoaded?.forEach((e) => {
|
|
213
|
-
if (!this.#loaded?.includes(e)) {
|
|
214
|
-
// Push on the end to better match the db order of "newer things come last"
|
|
215
|
-
this.#loaded?.unshift(e);
|
|
216
|
-
(0, __1.getEmInternalApi)(this.entity.em).joinRows(this).addNew(this, this.entity, e);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
this.#removedBeforeLoaded?.forEach((e) => {
|
|
220
|
-
(0, utils_1.remove)(this.#loaded, e);
|
|
221
|
-
(0, __1.getEmInternalApi)(this.entity.em).joinRows(this).addRemove(this, this.entity, e);
|
|
222
|
-
});
|
|
223
|
-
this.#removedBeforeLoaded = undefined;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
#current(opts) {
|
|
227
|
-
return this.filterDeleted(this.#loaded ?? this.#addedBeforeLoaded ?? [], opts);
|
|
228
|
-
}
|
|
229
|
-
get meta() {
|
|
230
|
-
return (0, __1.getMetadata)(this.entity);
|
|
231
|
-
}
|
|
232
|
-
get otherMeta() {
|
|
233
|
-
return (0, __1.getMetadata)(this.entity).allFields[this.fieldName].otherMetadata();
|
|
234
|
-
}
|
|
235
|
-
get joinTableName() {
|
|
236
|
-
return this.#field.joinTableName;
|
|
237
|
-
}
|
|
238
|
-
get fieldName() {
|
|
239
|
-
return this.#field.fieldName;
|
|
240
|
-
}
|
|
241
|
-
get otherFieldName() {
|
|
242
|
-
return this.#field.otherFieldName;
|
|
243
|
-
}
|
|
244
|
-
get columnName() {
|
|
245
|
-
return this.#field.columnNames[0];
|
|
246
|
-
}
|
|
247
|
-
get otherColumnName() {
|
|
248
|
-
return this.#field.columnNames[1];
|
|
249
|
-
}
|
|
250
|
-
get #isCascadeDelete() {
|
|
251
|
-
return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
|
|
252
|
-
}
|
|
253
|
-
get hasBeenSet() {
|
|
254
|
-
return this.#hasBeenSet;
|
|
255
|
-
}
|
|
256
|
-
toString() {
|
|
257
|
-
return `OneToManyCollection(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
|
|
258
|
-
}
|
|
259
|
-
#getPreloaded() {
|
|
260
|
-
if (this.entity.isNewEntity)
|
|
261
|
-
return undefined;
|
|
262
|
-
return (0, __1.getEmInternalApi)(this.entity.em).getPreloadedRelation(this.entity.idTagged, this.fieldName);
|
|
263
|
-
}
|
|
264
|
-
[Relation_1.RelationT] = null;
|
|
265
|
-
[Relation_1.RelationU] = null;
|
|
266
|
-
}
|
|
267
|
-
exports.ManyToManyCollection = ManyToManyCollection;
|
|
268
|
-
//# sourceMappingURL=ManyToManyCollection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyCollection.js","sourceRoot":"","sources":["../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf } from "../EntityManager";
|
|
3
|
-
import { EntityMetadata } from "../EntityMetadata";
|
|
4
|
-
import { LargeCollection } from "./LargeCollection";
|
|
5
|
-
import { RelationT, RelationU } from "./Relation";
|
|
6
|
-
/** An alias for creating `ManyToManyLargeCollection`s. */
|
|
7
|
-
export declare function hasLargeManyToMany<T extends Entity, U extends Entity>(joinTableName: string, columnName: string, otherFieldName: keyof U & string, otherColumnName: string): LargeCollection<T, U>;
|
|
8
|
-
export declare class ManyToManyLargeCollection<T extends Entity, U extends Entity> implements LargeCollection<T, U> {
|
|
9
|
-
joinTableName: string;
|
|
10
|
-
entity: T;
|
|
11
|
-
fieldName: keyof T & string;
|
|
12
|
-
columnName: string;
|
|
13
|
-
otherMeta: EntityMetadata;
|
|
14
|
-
otherFieldName: keyof U & string;
|
|
15
|
-
otherColumnName: string;
|
|
16
|
-
private locallyAdded;
|
|
17
|
-
private locallyRemoved;
|
|
18
|
-
constructor(joinTableName: string, entity: T, fieldName: keyof T & string, columnName: string, otherMeta: EntityMetadata, otherFieldName: keyof U & string, otherColumnName: string);
|
|
19
|
-
find(id: IdOf<U>): Promise<U | undefined>;
|
|
20
|
-
includes(other: U): Promise<boolean>;
|
|
21
|
-
add(other: U): void;
|
|
22
|
-
remove(other: U): void;
|
|
23
|
-
get hasBeenSet(): boolean;
|
|
24
|
-
get meta(): EntityMetadata;
|
|
25
|
-
toString(): string;
|
|
26
|
-
isLoaded: boolean;
|
|
27
|
-
[RelationT]: T;
|
|
28
|
-
[RelationU]: U;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=ManyToManyLargeCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyLargeCollection.d.ts","sourceRoot":"","sources":["../../src/relations/ManyToManyLargeCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAe,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACnE,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,EAChC,eAAe,EAAE,MAAM,GACtB,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAcvB;AAED,qBAAa,yBAAyB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,YAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAOhG,aAAa,EAAE,MAAM;IAMrB,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM;IAC3B,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,cAAc;IACzB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM;IAChC,eAAe,EAAE,MAAM;IAfhC,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,cAAc,CAAW;gBAGxB,aAAa,EAAE,MAAM,EAMrB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,EAChC,eAAe,EAAE,MAAM;IAG1B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA8BzC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB1C,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAQnB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAQtB,IAAI,UAAU,YAEb;IAED,IAAW,IAAI,IAAI,cAAc,CAEhC;IAEM,QAAQ,IAAI,MAAM;IAIzB,QAAQ,UAAS;IAEjB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;CACxB"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ManyToManyLargeCollection = void 0;
|
|
4
|
-
exports.hasLargeManyToMany = hasLargeManyToMany;
|
|
5
|
-
const manyToManyFindDataLoader_1 = require("../dataloaders/manyToManyFindDataLoader");
|
|
6
|
-
const EntityManager_1 = require("../EntityManager");
|
|
7
|
-
const index_1 = require("../index");
|
|
8
|
-
const newEntity_1 = require("../newEntity");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
|
-
const Relation_1 = require("./Relation");
|
|
11
|
-
/** An alias for creating `ManyToManyLargeCollection`s. */
|
|
12
|
-
function hasLargeManyToMany(joinTableName, columnName, otherFieldName, otherColumnName) {
|
|
13
|
-
let otherMeta;
|
|
14
|
-
return (0, newEntity_1.lazyField)((entity, fieldName) => {
|
|
15
|
-
otherMeta ??= (0, newEntity_1.resolveOtherMeta)(entity, fieldName);
|
|
16
|
-
return new ManyToManyLargeCollection(joinTableName, entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
class ManyToManyLargeCollection {
|
|
20
|
-
joinTableName;
|
|
21
|
-
entity;
|
|
22
|
-
fieldName;
|
|
23
|
-
columnName;
|
|
24
|
-
otherMeta;
|
|
25
|
-
otherFieldName;
|
|
26
|
-
otherColumnName;
|
|
27
|
-
// Even though a large collection can never be loaded, we do track local
|
|
28
|
-
// mutations so that `find` can be accurate.
|
|
29
|
-
locallyAdded = [];
|
|
30
|
-
locallyRemoved = [];
|
|
31
|
-
constructor(joinTableName,
|
|
32
|
-
// I.e. when entity = Book:
|
|
33
|
-
// fieldName == tags, because it's our collection to tags
|
|
34
|
-
// columnName = book_id, what we use as the `where book_id = us` to find our join table rows
|
|
35
|
-
// otherFieldName = books, how tags points to us
|
|
36
|
-
// otherColumnName = tag_id, how the other side finds its join table rows
|
|
37
|
-
entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName) {
|
|
38
|
-
this.joinTableName = joinTableName;
|
|
39
|
-
this.entity = entity;
|
|
40
|
-
this.fieldName = fieldName;
|
|
41
|
-
this.columnName = columnName;
|
|
42
|
-
this.otherMeta = otherMeta;
|
|
43
|
-
this.otherFieldName = otherFieldName;
|
|
44
|
-
this.otherColumnName = otherColumnName;
|
|
45
|
-
}
|
|
46
|
-
async find(id) {
|
|
47
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
48
|
-
// locallyAdded is never authorative b/c we never become fully loaded (unlike OneToManyCollection),
|
|
49
|
-
// so we can probe our local collection, but if we don't find anything, we still have to query
|
|
50
|
-
const localAdd = this.locallyAdded.find((u) => u.id === id);
|
|
51
|
-
if (localAdd) {
|
|
52
|
-
return localAdd;
|
|
53
|
-
}
|
|
54
|
-
const localRemove = this.locallyRemoved.find((u) => u.id === id);
|
|
55
|
-
if (localRemove) {
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
if (this.entity.isNewEntity) {
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
// Make a cacheable tuple to look up this specific m2m row
|
|
62
|
-
const key = `${this.columnName}=${this.entity.id},${this.otherColumnName}=${id}`;
|
|
63
|
-
const includes = await (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.entity.em, this)
|
|
64
|
-
.load(key)
|
|
65
|
-
.catch(function find(err) {
|
|
66
|
-
throw (0, EntityManager_1.appendStack)(err, new Error());
|
|
67
|
-
});
|
|
68
|
-
const taggedId = (0, index_1.toTaggedId)(this.otherMeta, id);
|
|
69
|
-
return includes ? this.entity.em.load(taggedId) : undefined;
|
|
70
|
-
}
|
|
71
|
-
async includes(other) {
|
|
72
|
-
const localAdd = this.locallyAdded.includes(other);
|
|
73
|
-
if (localAdd) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
const localRemove = this.locallyRemoved.includes(other);
|
|
77
|
-
if (localRemove) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
if (this.entity.isNewEntity || other.isNewEntity) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
// Make a cacheable tuple to look up this specific m2m row
|
|
84
|
-
const key = `${this.columnName}=${this.entity.id},${this.otherColumnName}=${other.id}`;
|
|
85
|
-
return (0, manyToManyFindDataLoader_1.manyToManyFindDataLoader)(this.entity.em, this)
|
|
86
|
-
.load(key)
|
|
87
|
-
.catch(function includes(err) {
|
|
88
|
-
throw (0, EntityManager_1.appendStack)(err, new Error());
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
add(other) {
|
|
92
|
-
(0, utils_1.remove)(this.locallyRemoved, other);
|
|
93
|
-
if (!this.locallyAdded.includes(other)) {
|
|
94
|
-
this.locallyAdded.push(other);
|
|
95
|
-
}
|
|
96
|
-
other[this.otherFieldName].add(this.entity, true);
|
|
97
|
-
}
|
|
98
|
-
remove(other) {
|
|
99
|
-
(0, utils_1.remove)(this.locallyAdded, other);
|
|
100
|
-
if (!this.locallyRemoved.includes(other)) {
|
|
101
|
-
this.locallyRemoved.push(other);
|
|
102
|
-
}
|
|
103
|
-
other[this.otherFieldName].remove(this.entity, true);
|
|
104
|
-
}
|
|
105
|
-
get hasBeenSet() {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
get meta() {
|
|
109
|
-
return (0, index_1.getMetadata)(this.entity);
|
|
110
|
-
}
|
|
111
|
-
toString() {
|
|
112
|
-
return `ManyToManyLargeCollection(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
|
|
113
|
-
}
|
|
114
|
-
isLoaded = false;
|
|
115
|
-
[Relation_1.RelationT] = null;
|
|
116
|
-
[Relation_1.RelationU] = null;
|
|
117
|
-
}
|
|
118
|
-
exports.ManyToManyLargeCollection = ManyToManyLargeCollection;
|
|
119
|
-
//# sourceMappingURL=ManyToManyLargeCollection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManyToManyLargeCollection.js","sourceRoot":"","sources":["../../src/relations/ManyToManyLargeCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf, TaggedId } from "../EntityManager";
|
|
3
|
-
import { EntityMetadata, ManyToOneField } from "../EntityMetadata";
|
|
4
|
-
import { Reference } from "../index";
|
|
5
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
6
|
-
import { ReferenceN } from "./Reference";
|
|
7
|
-
import { RelationT, RelationU } from "./Relation";
|
|
8
|
-
/** An alias for creating `ManyToOneReference`s. */
|
|
9
|
-
export declare function hasOne<T extends Entity, U extends Entity, N extends never | undefined>(): ManyToOneReference<T, U, N>;
|
|
10
|
-
/** Type guard utility for determining if an entity field is a ManyToOneReference. */
|
|
11
|
-
export declare function isManyToOneReference(maybeReference: any): maybeReference is ManyToOneReference<any, any, any>;
|
|
12
|
-
export interface ManyToOneReference<T extends Entity, U extends Entity, N extends never | undefined> extends Reference<T, U, N> {
|
|
13
|
-
/** 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. */
|
|
14
|
-
id: IdOf<U>;
|
|
15
|
-
/** Returns the id of the current assigned entity, undefined if unset, or a runtime error if set to a new entity. */
|
|
16
|
-
idIfSet: IdOf<U> | undefined;
|
|
17
|
-
/** Returns the id of the current assigned entity, undefined if unset, or undefined if set to a new entity. */
|
|
18
|
-
idMaybe: IdOf<U> | undefined;
|
|
19
|
-
idUntagged: string;
|
|
20
|
-
idUntaggedIfSet: string | undefined;
|
|
21
|
-
/** Returns `true` if this relation is currently set (i.e. regardless of whether it's loaded, or if it is set but the assigned entity doesn't have an id saved. */
|
|
22
|
-
readonly isSet: boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Manages a foreign key from one entity to another, i.e. `Book.author --> Author`.
|
|
26
|
-
*
|
|
27
|
-
* We keep the current `author` / `author_id` value in the `__orm.data` hash, where the
|
|
28
|
-
* current value could be either the (string) author id from the database, or an entity
|
|
29
|
-
* `Author` that the user has set.
|
|
30
|
-
*
|
|
31
|
-
* Note that if our `images.author_id` column is unique, this `ManyToOneReference` will essentially
|
|
32
|
-
* be half of a one-to-one relationship, but we'll keep using this `ManyToOneReference` on the "many"
|
|
33
|
-
* side, and the other side, i.e. `Author.image` will use a `OneToOneReference` to point back to us.
|
|
34
|
-
*/
|
|
35
|
-
export declare class ManyToOneReferenceImpl<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<T, U> implements ManyToOneReference<T, U, N> {
|
|
36
|
-
#private;
|
|
37
|
-
private loaded;
|
|
38
|
-
private _isLoaded;
|
|
39
|
-
constructor(entity: T, field: ManyToOneField);
|
|
40
|
-
load(opts?: {
|
|
41
|
-
withDeleted?: boolean;
|
|
42
|
-
forceReload?: boolean;
|
|
43
|
-
}): Promise<U | N>;
|
|
44
|
-
set(other: U | N): void;
|
|
45
|
-
get isSet(): boolean;
|
|
46
|
-
get isLoaded(): boolean;
|
|
47
|
-
get isPreloaded(): boolean;
|
|
48
|
-
preload(): void;
|
|
49
|
-
private unload;
|
|
50
|
-
import(other: ManyToOneReferenceImpl<T, U, N>, findEntity: (e: U) => U): void;
|
|
51
|
-
private doGet;
|
|
52
|
-
get getWithDeleted(): U | N;
|
|
53
|
-
get get(): U | N;
|
|
54
|
-
/** Returns the id of the current value. */
|
|
55
|
-
get id(): IdOf<U>;
|
|
56
|
-
/** Sets the m2o to `id`, and allows accepting `undefined` (`N`) if this is a nullable relation. */
|
|
57
|
-
set id(id: IdOf<U> | N);
|
|
58
|
-
get idIfSet(): IdOf<U> | N | undefined;
|
|
59
|
-
get idUntagged(): string;
|
|
60
|
-
get idUntaggedIfSet(): string | undefined;
|
|
61
|
-
get idMaybe(): IdOf<U> | N | undefined;
|
|
62
|
-
/** Returns the tagged id of the current value, or undefined if unset or a new entity. */
|
|
63
|
-
get idTaggedMaybe(): TaggedId | undefined;
|
|
64
|
-
get fieldName(): string;
|
|
65
|
-
get otherFieldName(): keyof U & string;
|
|
66
|
-
private get idUntaggedMaybe();
|
|
67
|
-
setImpl(_other: U | IdOf<U> | N): void;
|
|
68
|
-
setFromOpts(other: U | IdOf<U> | N): void;
|
|
69
|
-
maybeCascadeDelete(): void;
|
|
70
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
71
|
-
maybeRemove(otherId: string | undefined, other: U | undefined): void;
|
|
72
|
-
maybeAdd(): void;
|
|
73
|
-
current(opts?: {
|
|
74
|
-
withDeleted?: boolean;
|
|
75
|
-
}): U | TaggedId | N;
|
|
76
|
-
get otherMeta(): EntityMetadata<U>;
|
|
77
|
-
get hasBeenSet(): boolean;
|
|
78
|
-
toString(): string;
|
|
79
|
-
/**
|
|
80
|
-
* Removes pending-hard-delete (but not soft-deleted), unless explicitly asked for.
|
|
81
|
-
*
|
|
82
|
-
* Note that we leave soft-deleted entities b/c the call signature of a `book.author.get`
|
|
83
|
-
* very likely does not expect a soft-deleted entity to result in `undefined`.
|
|
84
|
-
*
|
|
85
|
-
* (Contrasted with `author.books.get` which is more intuitive to have soft-deleted
|
|
86
|
-
* entities filtered out, i.e. it doesn't fundamentally change the return type.)
|
|
87
|
-
*/
|
|
88
|
-
private filterDeleted;
|
|
89
|
-
/** Returns the other relation that points back at us, i.e. we're `book.author_id` and this is `Author.books`. */
|
|
90
|
-
private getOtherRelation;
|
|
91
|
-
private get isCascadeDelete();
|
|
92
|
-
/**
|
|
93
|
-
* Looks for an entity in `EntityManager`, b/c we may have it in memory even if
|
|
94
|
-
* our reference is not specifically loaded.
|
|
95
|
-
*/
|
|
96
|
-
maybeFindEntity(): U | undefined;
|
|
97
|
-
[RelationT]: T;
|
|
98
|
-
[RelationU]: U;
|
|
99
|
-
[ReferenceN]: N;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Fails when we can't return an `.id` for a reference, i.e. it's unset or a new entity.
|
|
103
|
-
*
|
|
104
|
-
* We strictly type `book.author.id` as `AuthorId`, even if `book.author` is nullable, to
|
|
105
|
-
* avoid users calling `.id` and getting back `undefined`, but not because "there is no
|
|
106
|
-
* author", but only because "the assigned author doesn't have an id assigned yet".
|
|
107
|
-
*
|
|
108
|
-
* To handle nullable references, set `.idIfSet`.
|
|
109
|
-
*
|
|
110
|
-
* Assumes being called like `return idMaybe ?? failNoId()`, i.e. if we're called we
|
|
111
|
-
* know the id is not available.
|
|
112
|
-
*/
|
|
113
|
-
export declare function failNoId(entity: Entity, fieldName: string, current: string | Entity | undefined): never;
|
|
114
|
-
/**
|
|
115
|
-
* Fails when we can't return an `.idIfSet` for a reference, i.e. it's a new entity.
|
|
116
|
-
*
|
|
117
|
-
* Assumes being called like `return idMaybe ?? failIfNewEntity()`, i.e. if we're called we
|
|
118
|
-
* know the id is not available.
|
|
119
|
-
*/
|
|
120
|
-
export declare function failIfNewEntity(entity: Entity, fieldName: string, current: string | Entity | undefined): undefined;
|
|
121
|
-
//# sourceMappingURL=ManyToOneReference.d.ts.map
|