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,8 +0,0 @@
|
|
|
1
|
-
/** A base class for relations & non-relation (i.e. `ReactiveField) properties. */
|
|
2
|
-
export declare abstract class AbstractPropertyImpl<T> {
|
|
3
|
-
#private;
|
|
4
|
-
constructor(entity: T);
|
|
5
|
-
get entity(): T;
|
|
6
|
-
abstract get isLoaded(): boolean;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=AbstractPropertyImpl.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPropertyImpl.d.ts","sourceRoot":"","sources":["../../src/relations/AbstractPropertyImpl.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,8BAAsB,oBAAoB,CAAC,CAAC;;gBAG9B,MAAM,EAAE,CAAC;IAIrB,IAAI,MAAM,IAAI,CAAC,CAEd;IAED,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;CAClC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AbstractPropertyImpl = void 0;
|
|
4
|
-
/** A base class for relations & non-relation (i.e. `ReactiveField) properties. */
|
|
5
|
-
class AbstractPropertyImpl {
|
|
6
|
-
#entity;
|
|
7
|
-
constructor(entity) {
|
|
8
|
-
this.#entity = entity;
|
|
9
|
-
}
|
|
10
|
-
get entity() {
|
|
11
|
-
return this.#entity;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.AbstractPropertyImpl = AbstractPropertyImpl;
|
|
15
|
-
//# sourceMappingURL=AbstractPropertyImpl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPropertyImpl.js","sourceRoot":"","sources":["../../src/relations/AbstractPropertyImpl.ts"],"names":[],"mappings":";;;AAAA,kFAAkF;AAClF,MAAsB,oBAAoB;IACxC,OAAO,CAAI;IAEX,YAAY,MAAS;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CAGF;AAZD,oDAYC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AbstractPropertyImpl } from "./AbstractPropertyImpl";
|
|
2
|
-
/**
|
|
3
|
-
* Defines common hooks that relations can respond to to keep the entity graph in sync.
|
|
4
|
-
*/
|
|
5
|
-
export declare abstract class AbstractRelationImpl<T, U> extends AbstractPropertyImpl<T> {
|
|
6
|
-
constructor(entity: T);
|
|
7
|
-
/** Called with the opts from a `new` or `em.create` call, i.e. on a new entity. */
|
|
8
|
-
abstract setFromOpts(value: U): void;
|
|
9
|
-
/** Similar to setFromOpts, but called post-construction. */
|
|
10
|
-
abstract set(value: U): void;
|
|
11
|
-
/** Whether this relation is loaded. */
|
|
12
|
-
abstract get isLoaded(): boolean;
|
|
13
|
-
/** Whether this relation is preloaded. */
|
|
14
|
-
abstract get isPreloaded(): boolean;
|
|
15
|
-
/** Loads the other side of this relation. */
|
|
16
|
-
abstract load(opts?: {
|
|
17
|
-
forceReload?: boolean;
|
|
18
|
-
}): Promise<any>;
|
|
19
|
-
/** Whether the relation from the preload cache, if preloaded. */
|
|
20
|
-
abstract preload(): void;
|
|
21
|
-
abstract get get(): U | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Called when our entity has been `EntityManager.delete`'d _and_ `EntityManager.flush` is being called,
|
|
24
|
-
* so we can unset any foreign keys to the being-deleted entity and clear out any pointers to it.
|
|
25
|
-
*/
|
|
26
|
-
abstract cleanupOnEntityDeleted(): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Called to cascade deletes into the relation if it has cascade behavior enabled. This function is called twice,
|
|
29
|
-
* once on the initial `EntityManager.delete` call in a potentially unloaded state, then again from a `beforeDelete`
|
|
30
|
-
* hook after the relation is fully loaded.
|
|
31
|
-
*/
|
|
32
|
-
abstract maybeCascadeDelete(): void;
|
|
33
|
-
abstract get fieldName(): string;
|
|
34
|
-
}
|
|
35
|
-
export declare function isCascadeDelete(relation: AbstractRelationImpl<any, any>, fieldName: string): boolean;
|
|
36
|
-
//# sourceMappingURL=AbstractRelationImpl.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractRelationImpl.d.ts","sourceRoot":"","sources":["../../src/relations/AbstractRelationImpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,8BAAsB,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;gBAClE,MAAM,EAAE,CAAC;IAIrB,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAEpC,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAE5B,uCAAuC;IACvC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IAEjC,0CAA0C;IAC1C,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IAEpC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAE7D,iEAAiE;IACjE,QAAQ,CAAC,OAAO,IAAI,IAAI;IAExB,QAAQ,KAAK,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,IAAI,IAAI;IAEnC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;CAClC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIpG"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AbstractRelationImpl = void 0;
|
|
4
|
-
exports.isCascadeDelete = isCascadeDelete;
|
|
5
|
-
const EntityMetadata_1 = require("../EntityMetadata");
|
|
6
|
-
const AbstractPropertyImpl_1 = require("./AbstractPropertyImpl");
|
|
7
|
-
/**
|
|
8
|
-
* Defines common hooks that relations can respond to to keep the entity graph in sync.
|
|
9
|
-
*/
|
|
10
|
-
class AbstractRelationImpl extends AbstractPropertyImpl_1.AbstractPropertyImpl {
|
|
11
|
-
constructor(entity) {
|
|
12
|
-
super(entity);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.AbstractRelationImpl = AbstractRelationImpl;
|
|
16
|
-
function isCascadeDelete(relation, fieldName) {
|
|
17
|
-
return (0, EntityMetadata_1.getBaseAndSelfMetas)((0, EntityMetadata_1.getMetadata)(relation.entity)).some((meta) => meta.config.__data.cascadeDeleteFields.includes(fieldName));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=AbstractRelationImpl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractRelationImpl.js","sourceRoot":"","sources":["../../src/relations/AbstractRelationImpl.ts"],"names":[],"mappings":";;;AA+CA,0CAIC;AAnDD,sDAAqE;AACrE,iEAA8D;AAE9D;;GAEG;AACH,MAAsB,oBAA2B,SAAQ,2CAAuB;IAC9E,YAAY,MAAS;QACnB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CAoCF;AAvCD,oDAuCC;AAED,SAAgB,eAAe,CAAC,QAAwC,EAAE,SAAiB;IACzF,OAAO,IAAA,oCAAmB,EAAC,IAAA,4BAAW,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAgB,CAAC,CAClE,CAAC;AACJ,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf } from "../EntityManager";
|
|
3
|
-
import { Relation } from "./index";
|
|
4
|
-
/** A collection of `U` within `T`, either one-to-many or many-to-many. */
|
|
5
|
-
export interface Collection<T extends Entity, U extends Entity> extends Relation<T, U> {
|
|
6
|
-
load(opts?: {
|
|
7
|
-
withDeleted: boolean;
|
|
8
|
-
}): Promise<ReadonlyArray<U>>;
|
|
9
|
-
/** Looks up the specific `id` without fully loading the collection. */
|
|
10
|
-
find(id: IdOf<U>): Promise<U | undefined>;
|
|
11
|
-
/** Looks up the specific `other` without fully loading the collection. */
|
|
12
|
-
includes(other: U): Promise<boolean>;
|
|
13
|
-
add(other: U): void;
|
|
14
|
-
remove(other: U): void;
|
|
15
|
-
readonly isLoaded: boolean;
|
|
16
|
-
}
|
|
17
|
-
/** Adds a known-safe `get` accessor. */
|
|
18
|
-
export interface LoadedCollection<T extends Entity, U extends Entity> extends Collection<T, U> {
|
|
19
|
-
get: ReadonlyArray<U>;
|
|
20
|
-
getWithDeleted: ReadonlyArray<U>;
|
|
21
|
-
set(values: U[]): void;
|
|
22
|
-
removeAll(): void;
|
|
23
|
-
}
|
|
24
|
-
/** Type guard utility for determining if an entity field is a Collection. */
|
|
25
|
-
export declare function isCollection(maybeCollection: any): maybeCollection is Collection<any, any>;
|
|
26
|
-
/** Type guard utility for determining if an entity field is a loaded Collection. */
|
|
27
|
-
export declare function isLoadedCollection(maybeCollection: any): maybeCollection is Collection<any, any> & LoadedCollection<any, any>;
|
|
28
|
-
//# sourceMappingURL=Collection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/relations/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAML,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,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;IAEvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEtB,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAEvB,SAAS,IAAI,IAAI,CAAC;CACnB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,eAAe,EAAE,GAAG,GAAG,eAAe,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAQ1F;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,GAAG,GACnB,eAAe,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAEtE"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCollection = isCollection;
|
|
4
|
-
exports.isLoadedCollection = isLoadedCollection;
|
|
5
|
-
const index_1 = require("./index");
|
|
6
|
-
/** Type guard utility for determining if an entity field is a Collection. */
|
|
7
|
-
function isCollection(maybeCollection) {
|
|
8
|
-
return (maybeCollection instanceof index_1.OneToManyCollection ||
|
|
9
|
-
maybeCollection instanceof index_1.ManyToManyCollection ||
|
|
10
|
-
maybeCollection instanceof index_1.ReactiveManyToManyImpl ||
|
|
11
|
-
maybeCollection instanceof index_1.ReactiveManyToManyOtherSideImpl ||
|
|
12
|
-
maybeCollection instanceof index_1.CustomCollection);
|
|
13
|
-
}
|
|
14
|
-
/** Type guard utility for determining if an entity field is a loaded Collection. */
|
|
15
|
-
function isLoadedCollection(maybeCollection) {
|
|
16
|
-
return isCollection(maybeCollection) && maybeCollection.isLoaded;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=Collection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/relations/Collection.ts"],"names":[],"mappings":";;AAwCA,oCAQC;AAGD,gDAIC;AArDD,mCAOiB;AA8BjB,6EAA6E;AAC7E,SAAgB,YAAY,CAAC,eAAoB;IAC/C,OAAO,CACL,eAAe,YAAY,2BAAmB;QAC9C,eAAe,YAAY,4BAAoB;QAC/C,eAAe,YAAY,8BAAsB;QACjD,eAAe,YAAY,uCAA+B;QAC1D,eAAe,YAAY,wBAAgB,CAC5C,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAgB,kBAAkB,CAChC,eAAoB;IAEpB,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC;AACnE,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf } from "../EntityManager";
|
|
3
|
-
import { Collection, LoadHint } from "../index";
|
|
4
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
5
|
-
import { RelationT, RelationU } from "./Relation";
|
|
6
|
-
export type CustomCollectionOpts<T extends Entity, U extends Entity> = {
|
|
7
|
-
load: (entity: T, opts: {
|
|
8
|
-
forceReload?: boolean;
|
|
9
|
-
}) => Promise<any>;
|
|
10
|
-
get: (entity: T) => readonly U[];
|
|
11
|
-
set?: (entity: T, other: U[]) => void;
|
|
12
|
-
find?: (entity: T, id: IdOf<U>) => U | undefined;
|
|
13
|
-
add?: (entity: T, other: U) => void;
|
|
14
|
-
remove?: (entity: T, other: U) => void;
|
|
15
|
-
/** Whether the reference is loaded, even w/o an explicit `.load` call, i.e. for DeepNew test instances. */
|
|
16
|
-
isLoaded: (entity: T) => boolean;
|
|
17
|
-
/**
|
|
18
|
-
* A load hint that can be used to speculatively traverse the dependencies of this collection. Currently
|
|
19
|
-
* only used by em.importEntity and can be omitted if the collection isn't used with it.
|
|
20
|
-
*/
|
|
21
|
-
loadHint?: ((entity: T) => LoadHint<T>) | LoadHint<T>;
|
|
22
|
-
};
|
|
23
|
-
export declare function hasCustomCollection<T extends Entity, U extends Entity>(opts: CustomCollectionOpts<T, U>): CustomCollection<T, U>;
|
|
24
|
-
/**
|
|
25
|
-
* Allows user-defined collections that will work in `populate` / preload hints.
|
|
26
|
-
*
|
|
27
|
-
* This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
|
|
28
|
-
* but instead by just walking "1 dataloader per level". Given this, we don't really care
|
|
29
|
-
* what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
|
|
30
|
-
* caller uses dataloader to be batch friendly.
|
|
31
|
-
*
|
|
32
|
-
* This `CustomCollection` API is fairly low-level; users should more likely prefer higher-level
|
|
33
|
-
* abstractions like `hasManyThrough`, which are built on `CustomCollection`.
|
|
34
|
-
*/
|
|
35
|
-
export declare class CustomCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<T, readonly U[]> implements Collection<T, U> {
|
|
36
|
-
#private;
|
|
37
|
-
private opts;
|
|
38
|
-
private loadPromise;
|
|
39
|
-
constructor(entity: T, opts: CustomCollectionOpts<T, U>);
|
|
40
|
-
get get(): readonly U[];
|
|
41
|
-
get getWithDeleted(): readonly U[];
|
|
42
|
-
get isLoaded(): boolean;
|
|
43
|
-
resetIsLoaded(): void;
|
|
44
|
-
get loadHint(): LoadHint<T> | undefined;
|
|
45
|
-
load(opts?: {
|
|
46
|
-
withDeleted?: boolean;
|
|
47
|
-
forceReload?: boolean;
|
|
48
|
-
}): Promise<readonly U[]>;
|
|
49
|
-
get isPreloaded(): boolean;
|
|
50
|
-
preload(): void;
|
|
51
|
-
set(values: U[]): void;
|
|
52
|
-
setFromOpts(values: U[]): void;
|
|
53
|
-
find(id: IdOf<U>): Promise<U | undefined>;
|
|
54
|
-
includes(other: U): Promise<boolean>;
|
|
55
|
-
add(other: U): void;
|
|
56
|
-
remove(other: U): void;
|
|
57
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
58
|
-
maybeCascadeDelete(): void;
|
|
59
|
-
/** Finds this CustomCollections field name by looking in the entity for the key that we're assigned to. */
|
|
60
|
-
get fieldName(): string;
|
|
61
|
-
get hasBeenSet(): boolean;
|
|
62
|
-
toString(): string;
|
|
63
|
-
private doGet;
|
|
64
|
-
private filterDeleted;
|
|
65
|
-
private ensureNewOrLoaded;
|
|
66
|
-
[RelationT]: T;
|
|
67
|
-
[RelationU]: U;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=CustomCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomCollection.d.ts","sourceRoot":"","sources":["../../src/relations/CustomCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CustomCollection = void 0;
|
|
4
|
-
exports.hasCustomCollection = hasCustomCollection;
|
|
5
|
-
const EntityManager_1 = require("../EntityManager");
|
|
6
|
-
const index_1 = require("../index");
|
|
7
|
-
const newEntity_1 = require("../newEntity");
|
|
8
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
9
|
-
const Relation_1 = require("./Relation");
|
|
10
|
-
function hasCustomCollection(opts) {
|
|
11
|
-
return (0, newEntity_1.lazyField)((entity) => {
|
|
12
|
-
return new CustomCollection(entity, opts);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Allows user-defined collections that will work in `populate` / preload hints.
|
|
17
|
-
*
|
|
18
|
-
* This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
|
|
19
|
-
* but instead by just walking "1 dataloader per level". Given this, we don't really care
|
|
20
|
-
* what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
|
|
21
|
-
* caller uses dataloader to be batch friendly.
|
|
22
|
-
*
|
|
23
|
-
* This `CustomCollection` API is fairly low-level; users should more likely prefer higher-level
|
|
24
|
-
* abstractions like `hasManyThrough`, which are built on `CustomCollection`.
|
|
25
|
-
*/
|
|
26
|
-
class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
27
|
-
opts;
|
|
28
|
-
// We keep both a promise+loaded flag and not an actual `this.loaded = await load` because
|
|
29
|
-
// the values can become stale; we want to each `.get` call to repeatedly evaluate the latest values.
|
|
30
|
-
loadPromise;
|
|
31
|
-
#hasBeenSet = false;
|
|
32
|
-
#isLoaded = undefined;
|
|
33
|
-
#loadHint;
|
|
34
|
-
constructor(entity, opts) {
|
|
35
|
-
super(entity);
|
|
36
|
-
this.opts = opts;
|
|
37
|
-
}
|
|
38
|
-
get get() {
|
|
39
|
-
return this.doGet({ withDeleted: false });
|
|
40
|
-
}
|
|
41
|
-
get getWithDeleted() {
|
|
42
|
-
return this.doGet({ withDeleted: true });
|
|
43
|
-
}
|
|
44
|
-
get isLoaded() {
|
|
45
|
-
if (this.#isLoaded !== undefined)
|
|
46
|
-
return this.#isLoaded;
|
|
47
|
-
(0, EntityManager_1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
|
|
48
|
-
this.#isLoaded = this.opts.isLoaded(this.entity);
|
|
49
|
-
return this.#isLoaded;
|
|
50
|
-
}
|
|
51
|
-
resetIsLoaded() {
|
|
52
|
-
this.#isLoaded = undefined;
|
|
53
|
-
}
|
|
54
|
-
get loadHint() {
|
|
55
|
-
if (this.#loadHint === undefined && this.opts.loadHint !== undefined) {
|
|
56
|
-
const { loadHint } = this.opts;
|
|
57
|
-
this.#loadHint = typeof loadHint === "function" ? loadHint(this.entity) : loadHint;
|
|
58
|
-
}
|
|
59
|
-
return this.#loadHint;
|
|
60
|
-
}
|
|
61
|
-
async load(opts = {}) {
|
|
62
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
63
|
-
if (!this.isLoaded || opts.forceReload) {
|
|
64
|
-
if (this.loadPromise === undefined) {
|
|
65
|
-
this.loadPromise = this.opts.load(this.entity, opts);
|
|
66
|
-
await this.loadPromise;
|
|
67
|
-
this.loadPromise = undefined;
|
|
68
|
-
this.#isLoaded = true;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
await this.loadPromise;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return this.doGet(opts);
|
|
75
|
-
}
|
|
76
|
-
get isPreloaded() {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
preload() {
|
|
80
|
-
throw new Error("Not implemented");
|
|
81
|
-
}
|
|
82
|
-
set(values) {
|
|
83
|
-
this.ensureNewOrLoaded();
|
|
84
|
-
const { set, add, remove } = this.opts;
|
|
85
|
-
if (set !== undefined) {
|
|
86
|
-
set(this.entity, values);
|
|
87
|
-
this.#hasBeenSet = true;
|
|
88
|
-
}
|
|
89
|
-
else if (add !== undefined && remove !== undefined) {
|
|
90
|
-
const current = this.get;
|
|
91
|
-
current.filter((value) => !values.includes(value)).forEach((value) => this.remove(value));
|
|
92
|
-
values.filter((value) => !current.includes(value)).forEach((value) => this.add(value));
|
|
93
|
-
this.#hasBeenSet = true;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
(0, index_1.fail)(`'set' not implemented and not inferrable from 'add'/'remove' on ${this}`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
setFromOpts(values) {
|
|
100
|
-
this.set(values);
|
|
101
|
-
}
|
|
102
|
-
async find(id) {
|
|
103
|
-
if (!this.isLoaded) {
|
|
104
|
-
await this.load();
|
|
105
|
-
}
|
|
106
|
-
const { find } = this.opts;
|
|
107
|
-
if (find === undefined) {
|
|
108
|
-
return this.doGet().find((other) => other.id === id);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
return find(this.entity, id);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async includes(other) {
|
|
115
|
-
throw new Error("Not implemented");
|
|
116
|
-
}
|
|
117
|
-
add(other) {
|
|
118
|
-
this.ensureNewOrLoaded();
|
|
119
|
-
const { add } = this.opts;
|
|
120
|
-
if (add === undefined) {
|
|
121
|
-
(0, index_1.fail)(`'add' not implemented on ${this}`);
|
|
122
|
-
}
|
|
123
|
-
add(this.entity, other);
|
|
124
|
-
}
|
|
125
|
-
remove(other) {
|
|
126
|
-
this.ensureNewOrLoaded();
|
|
127
|
-
const { remove } = this.opts;
|
|
128
|
-
if (remove === undefined) {
|
|
129
|
-
(0, index_1.fail)(`'add' not implemented on ${this}`);
|
|
130
|
-
}
|
|
131
|
-
remove(this.entity, other);
|
|
132
|
-
}
|
|
133
|
-
// these callbacks should be no-ops as they ought to be handled by the underlying relations
|
|
134
|
-
async cleanupOnEntityDeleted() { }
|
|
135
|
-
maybeCascadeDelete() { }
|
|
136
|
-
/** Finds this CustomCollections field name by looking in the entity for the key that we're assigned to. */
|
|
137
|
-
get fieldName() {
|
|
138
|
-
// Something about running with the transformations breaks the `[0][0]` and it can NPE
|
|
139
|
-
return Object.entries(this.entity).filter((e) => e[1] === this)[0]?.[0];
|
|
140
|
-
}
|
|
141
|
-
get hasBeenSet() {
|
|
142
|
-
return this.#hasBeenSet;
|
|
143
|
-
}
|
|
144
|
-
toString() {
|
|
145
|
-
return `CustomCollection(entity: ${this.entity}, fieldName: ${this.fieldName})`;
|
|
146
|
-
}
|
|
147
|
-
doGet(opts) {
|
|
148
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
149
|
-
this.ensureNewOrLoaded();
|
|
150
|
-
return this.filterDeleted(this.opts.get(this.entity), opts);
|
|
151
|
-
}
|
|
152
|
-
filterDeleted(entities, opts) {
|
|
153
|
-
return entities.filter((entity) => opts?.withDeleted === true || !entity.isDeletedEntity);
|
|
154
|
-
}
|
|
155
|
-
ensureNewOrLoaded() {
|
|
156
|
-
// This should only be callable in the type system if we've already resolved this to an instance
|
|
157
|
-
if (this.isLoaded) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
(0, index_1.fail)(`${this.entity}.${this.fieldName} was not loaded`);
|
|
161
|
-
}
|
|
162
|
-
[Relation_1.RelationT] = null;
|
|
163
|
-
[Relation_1.RelationU] = null;
|
|
164
|
-
}
|
|
165
|
-
exports.CustomCollection = CustomCollection;
|
|
166
|
-
//# sourceMappingURL=CustomCollection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomCollection.js","sourceRoot":"","sources":["../../src/relations/CustomCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Entity } from "../Entity";
|
|
2
|
-
import { IdOf, TaggedId } from "../EntityManager";
|
|
3
|
-
import { LoadHint, Reference } from "../index";
|
|
4
|
-
import { AbstractRelationImpl } from "./AbstractRelationImpl";
|
|
5
|
-
import { ReferenceN } from "./Reference";
|
|
6
|
-
import { RelationT, RelationU } from "./Relation";
|
|
7
|
-
/** An alias for creating `CustomReference`s. */
|
|
8
|
-
export declare function hasCustomReference<T extends Entity, U extends Entity, N extends never | undefined>(opts: CustomReferenceOpts<T, U, N>): CustomReference<T, U, N>;
|
|
9
|
-
export type CustomReferenceOpts<T extends Entity, U extends Entity, N extends never | undefined> = {
|
|
10
|
-
load: (entity: T, opts: {
|
|
11
|
-
forceReload?: boolean;
|
|
12
|
-
}) => Promise<unknown>;
|
|
13
|
-
get: (entity: T) => U | N;
|
|
14
|
-
set?: (entity: T, other: U) => void;
|
|
15
|
-
/** Whether the reference is loaded, even w/o an explicit `.load` call, i.e. for DeepNew test instances. */
|
|
16
|
-
isLoaded: (entity: T) => boolean;
|
|
17
|
-
/**
|
|
18
|
-
* A load hint that can be used to speculatively traverse the dependencies of this reference. Currently
|
|
19
|
-
* only used by em.importEntity and can be omitted if the reference isn't used with it.
|
|
20
|
-
*/
|
|
21
|
-
loadHint?: ((entity: T) => LoadHint<T>) | LoadHint<T>;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Allows user-defined references that will work in `populate` / preload hints.
|
|
25
|
-
*
|
|
26
|
-
* This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
|
|
27
|
-
* but instead by just walking "1 dataloader per level". Given this, we don't really care
|
|
28
|
-
* what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
|
|
29
|
-
* caller uses dataloader to be batch friendly.
|
|
30
|
-
*
|
|
31
|
-
* This `CustomReference` API is fairly low-level; users should more likely prefer higher-level
|
|
32
|
-
* abstractions like `hasOneThrough`, which are built on `CustomReference.
|
|
33
|
-
*/
|
|
34
|
-
export declare class CustomReference<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<T, U> implements Reference<T, U, N> {
|
|
35
|
-
#private;
|
|
36
|
-
private opts;
|
|
37
|
-
private loadPromise;
|
|
38
|
-
constructor(entity: T, opts: CustomReferenceOpts<T, U, N>);
|
|
39
|
-
get get(): U | N;
|
|
40
|
-
get getWithDeleted(): U | N;
|
|
41
|
-
get isLoaded(): boolean;
|
|
42
|
-
resetIsLoaded(): void;
|
|
43
|
-
get loadHint(): LoadHint<T> | undefined;
|
|
44
|
-
load(opts?: {
|
|
45
|
-
withDeleted?: boolean;
|
|
46
|
-
forceReload?: boolean;
|
|
47
|
-
}): Promise<U | N>;
|
|
48
|
-
get isPreloaded(): boolean;
|
|
49
|
-
preload(): void;
|
|
50
|
-
get id(): IdOf<U>;
|
|
51
|
-
get idMaybe(): IdOf<U> | undefined;
|
|
52
|
-
get idTaggedMaybe(): TaggedId | undefined;
|
|
53
|
-
get idUntagged(): string;
|
|
54
|
-
get idUntaggedMaybe(): string | undefined;
|
|
55
|
-
get isSet(): boolean;
|
|
56
|
-
set(value: U): void;
|
|
57
|
-
setFromOpts(value: U): void;
|
|
58
|
-
cleanupOnEntityDeleted(): Promise<void>;
|
|
59
|
-
maybeCascadeDelete(): void;
|
|
60
|
-
/** Finds this CustomReferences field name by looking in the entity for the key that we're assigned to. */
|
|
61
|
-
get fieldName(): string;
|
|
62
|
-
get hasBeenSet(): boolean;
|
|
63
|
-
toString(): string;
|
|
64
|
-
private doGet;
|
|
65
|
-
private filterDeleted;
|
|
66
|
-
private ensureNewOrLoaded;
|
|
67
|
-
[RelationT]: T;
|
|
68
|
-
[RelationU]: U;
|
|
69
|
-
[ReferenceN]: N;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=CustomReference.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomReference.d.ts","sourceRoot":"","sources":["../../src/relations/CustomReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAoB,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAsD,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,EAChG,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACjC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAI1B;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,IAAI;IAGjG,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACpC,2GAA2G;IAC3G,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,CAC1F,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,CACjC,YAAW,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;IAW3B,OAAO,CAAC,IAAI;IAPd,OAAO,CAAC,WAAW,CAA+B;gBAMhD,MAAM,EAAE,CAAC,EACD,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAK5C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAEf;IAED,IAAI,cAAc,IAAI,CAAC,GAAG,CAAC,CAE1B;IAED,IAAI,QAAQ,IAAI,OAAO,CAKtB;IAED,aAAa,IAAI,IAAI;IAIrB,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAMtC;IAEK,IAAI,CAAC,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAevF,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,IAAI;IAIf,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAEhB;IAED,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAEjC;IAED,IAAI,aAAa,IAAI,QAAQ,GAAG,SAAS,CAExC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAI,KAAK,IAAI,OAAO,CAInB;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAanB,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKrB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7C,kBAAkB,IAAI,IAAI;IAE1B,0GAA0G;IAC1G,IAAI,SAAS,IAAI,MAAM,CAItB;IAED,IAAI,UAAU,YAEb;IAED,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAQzB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAS;CACzB"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CustomReference = void 0;
|
|
4
|
-
exports.hasCustomReference = hasCustomReference;
|
|
5
|
-
const EntityManager_1 = require("../EntityManager");
|
|
6
|
-
const index_1 = require("../index");
|
|
7
|
-
const newEntity_1 = require("../newEntity");
|
|
8
|
-
const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
|
|
9
|
-
const Reference_1 = require("./Reference");
|
|
10
|
-
const Relation_1 = require("./Relation");
|
|
11
|
-
/** An alias for creating `CustomReference`s. */
|
|
12
|
-
function hasCustomReference(opts) {
|
|
13
|
-
return (0, newEntity_1.lazyField)((entity) => {
|
|
14
|
-
return new CustomReference(entity, opts);
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Allows user-defined references that will work in `populate` / preload hints.
|
|
19
|
-
*
|
|
20
|
-
* This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
|
|
21
|
-
* but instead by just walking "1 dataloader per level". Given this, we don't really care
|
|
22
|
-
* what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
|
|
23
|
-
* caller uses dataloader to be batch friendly.
|
|
24
|
-
*
|
|
25
|
-
* This `CustomReference` API is fairly low-level; users should more likely prefer higher-level
|
|
26
|
-
* abstractions like `hasOneThrough`, which are built on `CustomReference.
|
|
27
|
-
*/
|
|
28
|
-
class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
|
|
29
|
-
opts;
|
|
30
|
-
// We keep both a promise+loaded flag and not an actual `this.loaded = await load` because
|
|
31
|
-
// the value can become stale; we want to each `.get` call to repeatedly evaluate the latest value.
|
|
32
|
-
loadPromise;
|
|
33
|
-
#hasBeenSet = false;
|
|
34
|
-
#isLoaded;
|
|
35
|
-
#loadHint;
|
|
36
|
-
constructor(entity, opts) {
|
|
37
|
-
super(entity);
|
|
38
|
-
this.opts = opts;
|
|
39
|
-
}
|
|
40
|
-
get get() {
|
|
41
|
-
return this.doGet({ withDeleted: false });
|
|
42
|
-
}
|
|
43
|
-
get getWithDeleted() {
|
|
44
|
-
return this.doGet({ withDeleted: true });
|
|
45
|
-
}
|
|
46
|
-
get isLoaded() {
|
|
47
|
-
if (this.#isLoaded !== undefined)
|
|
48
|
-
return this.#isLoaded;
|
|
49
|
-
(0, EntityManager_1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
|
|
50
|
-
this.#isLoaded = this.opts.isLoaded(this.entity);
|
|
51
|
-
return this.#isLoaded;
|
|
52
|
-
}
|
|
53
|
-
resetIsLoaded() {
|
|
54
|
-
this.#isLoaded = undefined;
|
|
55
|
-
}
|
|
56
|
-
get loadHint() {
|
|
57
|
-
if (this.#loadHint === undefined && this.opts.loadHint !== undefined) {
|
|
58
|
-
const { loadHint } = this.opts;
|
|
59
|
-
this.#loadHint = typeof loadHint === "function" ? loadHint(this.entity) : loadHint;
|
|
60
|
-
}
|
|
61
|
-
return this.#loadHint;
|
|
62
|
-
}
|
|
63
|
-
async load(opts = {}) {
|
|
64
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
65
|
-
if (!this.isLoaded || opts.forceReload) {
|
|
66
|
-
if (this.loadPromise === undefined) {
|
|
67
|
-
this.loadPromise = this.opts.load(this.entity, opts);
|
|
68
|
-
await this.loadPromise;
|
|
69
|
-
this.loadPromise = undefined;
|
|
70
|
-
this.#isLoaded = true;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
await this.loadPromise;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return this.doGet(opts);
|
|
77
|
-
}
|
|
78
|
-
get isPreloaded() {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
preload() {
|
|
82
|
-
throw new Error("Not implemented");
|
|
83
|
-
}
|
|
84
|
-
get id() {
|
|
85
|
-
return (0, index_1.fail)(`CustomReference cannot resolve 'id'`);
|
|
86
|
-
}
|
|
87
|
-
get idMaybe() {
|
|
88
|
-
return (0, index_1.fail)(`CustomReference cannot resolve 'idMaybe'`);
|
|
89
|
-
}
|
|
90
|
-
get idTaggedMaybe() {
|
|
91
|
-
return (0, index_1.fail)(`CustomReference cannot resolve 'idTaggedMaybe'`);
|
|
92
|
-
}
|
|
93
|
-
get idUntagged() {
|
|
94
|
-
return (0, index_1.fail)(`CustomReference cannot resolve 'idUntagged'`);
|
|
95
|
-
}
|
|
96
|
-
get idUntaggedMaybe() {
|
|
97
|
-
return (0, index_1.fail)(`CustomReference cannot resolve 'idUntaggedMaybe'`);
|
|
98
|
-
}
|
|
99
|
-
get isSet() {
|
|
100
|
-
this.ensureNewOrLoaded();
|
|
101
|
-
const { get } = this.opts;
|
|
102
|
-
return get(this.entity) !== undefined;
|
|
103
|
-
}
|
|
104
|
-
set(value) {
|
|
105
|
-
// We allow setting CustomReferences on new entities w/o being loaded
|
|
106
|
-
if (!this.entity.isNewEntity) {
|
|
107
|
-
this.ensureNewOrLoaded();
|
|
108
|
-
}
|
|
109
|
-
const { set } = this.opts;
|
|
110
|
-
if (set === undefined) {
|
|
111
|
-
throw new Error(`'set' not implemented on ${this}`);
|
|
112
|
-
}
|
|
113
|
-
set(this.entity, value);
|
|
114
|
-
this.#hasBeenSet = true;
|
|
115
|
-
}
|
|
116
|
-
setFromOpts(value) {
|
|
117
|
-
this.set(value);
|
|
118
|
-
}
|
|
119
|
-
// these callbacks should be no-ops as they ought to be handled by the underlying relations
|
|
120
|
-
async cleanupOnEntityDeleted() { }
|
|
121
|
-
maybeCascadeDelete() { }
|
|
122
|
-
/** Finds this CustomReferences field name by looking in the entity for the key that we're assigned to. */
|
|
123
|
-
get fieldName() {
|
|
124
|
-
return Object.entries((0, index_1.getProperties)((0, index_1.getMetadata)(this.entity))).filter(([key]) => this.entity[key] === this)[0][0];
|
|
125
|
-
}
|
|
126
|
-
get hasBeenSet() {
|
|
127
|
-
return this.#hasBeenSet;
|
|
128
|
-
}
|
|
129
|
-
toString() {
|
|
130
|
-
return `CustomReference(entity: ${this.entity}, fieldName: ${this.fieldName})`;
|
|
131
|
-
}
|
|
132
|
-
doGet(opts) {
|
|
133
|
-
(0, index_1.ensureNotDeleted)(this.entity, "pending");
|
|
134
|
-
this.ensureNewOrLoaded();
|
|
135
|
-
return this.filterDeleted(this.opts.get(this.entity), opts);
|
|
136
|
-
}
|
|
137
|
-
filterDeleted(entity, opts) {
|
|
138
|
-
return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
|
|
139
|
-
}
|
|
140
|
-
ensureNewOrLoaded() {
|
|
141
|
-
// This should only be callable in the type system if we've already resolved this to an instance
|
|
142
|
-
if (this.isLoaded) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
(0, index_1.fail)(`${this.entity}.${this.fieldName} was not loaded`);
|
|
146
|
-
}
|
|
147
|
-
[Relation_1.RelationT] = null;
|
|
148
|
-
[Relation_1.RelationU] = null;
|
|
149
|
-
[Reference_1.ReferenceN] = null;
|
|
150
|
-
}
|
|
151
|
-
exports.CustomReference = CustomReference;
|
|
152
|
-
//# sourceMappingURL=CustomReference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomReference.js","sourceRoot":"","sources":["../../src/relations/CustomReference.ts"],"names":[],"mappings":"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"}
|