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.
Files changed (482) hide show
  1. package/build/{drivers/PostgresDriver.d.ts → PostgresDriver.d.ts} +1 -4
  2. package/build/PostgresDriver.d.ts.map +1 -0
  3. package/build/{drivers/PostgresDriver.js → PostgresDriver.js} +49 -58
  4. package/build/PostgresDriver.js.map +1 -0
  5. package/build/codegen.d.ts +2 -0
  6. package/build/codegen.d.ts.map +1 -0
  7. package/build/codegen.js +29 -0
  8. package/build/codegen.js.map +1 -0
  9. package/build/graphql-codegen-export.d.ts +2 -0
  10. package/build/graphql-codegen-export.d.ts.map +1 -0
  11. package/build/{drivers/index.js → graphql-codegen-export.js} +3 -5
  12. package/build/graphql-codegen-export.js.map +1 -0
  13. package/build/graphql-export.d.ts +2 -0
  14. package/build/graphql-export.d.ts.map +1 -0
  15. package/build/graphql-export.js +19 -0
  16. package/build/graphql-export.js.map +1 -0
  17. package/build/index.d.ts +3 -128
  18. package/build/index.d.ts.map +1 -1
  19. package/build/index.js +8 -284
  20. package/build/index.js.map +1 -1
  21. package/build/knex-export.d.ts +2 -0
  22. package/build/knex-export.d.ts.map +1 -0
  23. package/build/knex-export.js +19 -0
  24. package/build/knex-export.js.map +1 -0
  25. package/build/pg-migrate.d.ts +2 -0
  26. package/build/pg-migrate.d.ts.map +1 -0
  27. package/build/pg-migrate.js +30 -0
  28. package/build/pg-migrate.js.map +1 -0
  29. package/build/postgres-driver.d.ts +2 -0
  30. package/build/postgres-driver.d.ts.map +1 -0
  31. package/build/postgres-driver.js +7 -0
  32. package/build/postgres-driver.js.map +1 -0
  33. package/build/tests-export.d.ts +2 -0
  34. package/build/tests-export.d.ts.map +1 -0
  35. package/build/tests-export.js +19 -0
  36. package/build/tests-export.js.map +1 -0
  37. package/package.json +85 -16
  38. package/build/AliasAssigner.d.ts +0 -7
  39. package/build/AliasAssigner.d.ts.map +0 -1
  40. package/build/AliasAssigner.js +0 -30
  41. package/build/AliasAssigner.js.map +0 -1
  42. package/build/Aliases.d.ts +0 -110
  43. package/build/Aliases.d.ts.map +0 -1
  44. package/build/Aliases.js +0 -456
  45. package/build/Aliases.js.map +0 -1
  46. package/build/BaseEntity.d.ts +0 -66
  47. package/build/BaseEntity.d.ts.map +0 -1
  48. package/build/BaseEntity.js +0 -120
  49. package/build/BaseEntity.js.map +0 -1
  50. package/build/ConditionBuilder.d.ts +0 -50
  51. package/build/ConditionBuilder.d.ts.map +0 -1
  52. package/build/ConditionBuilder.js +0 -178
  53. package/build/ConditionBuilder.js.map +0 -1
  54. package/build/Entity.d.ts +0 -38
  55. package/build/Entity.d.ts.map +0 -1
  56. package/build/Entity.js +0 -8
  57. package/build/Entity.js.map +0 -1
  58. package/build/EntityFields.d.ts +0 -37
  59. package/build/EntityFields.d.ts.map +0 -1
  60. package/build/EntityFields.js +0 -3
  61. package/build/EntityFields.js.map +0 -1
  62. package/build/EntityFilter.d.ts +0 -113
  63. package/build/EntityFilter.d.ts.map +0 -1
  64. package/build/EntityFilter.js +0 -3
  65. package/build/EntityFilter.js.map +0 -1
  66. package/build/EntityGraphQLFilter.d.ts +0 -51
  67. package/build/EntityGraphQLFilter.d.ts.map +0 -1
  68. package/build/EntityGraphQLFilter.js +0 -54
  69. package/build/EntityGraphQLFilter.js.map +0 -1
  70. package/build/EntityManager.d.ts +0 -734
  71. package/build/EntityManager.d.ts.map +0 -1
  72. package/build/EntityManager.js +0 -2075
  73. package/build/EntityManager.js.map +0 -1
  74. package/build/EntityMetadata.d.ts +0 -185
  75. package/build/EntityMetadata.d.ts.map +0 -1
  76. package/build/EntityMetadata.js +0 -61
  77. package/build/EntityMetadata.js.map +0 -1
  78. package/build/EnumMetadata.d.ts +0 -15
  79. package/build/EnumMetadata.d.ts.map +0 -1
  80. package/build/EnumMetadata.js +0 -3
  81. package/build/EnumMetadata.js.map +0 -1
  82. package/build/FlushLock.d.ts +0 -26
  83. package/build/FlushLock.d.ts.map +0 -1
  84. package/build/FlushLock.js +0 -57
  85. package/build/FlushLock.js.map +0 -1
  86. package/build/HintTree.d.ts +0 -42
  87. package/build/HintTree.d.ts.map +0 -1
  88. package/build/HintTree.js +0 -64
  89. package/build/HintTree.js.map +0 -1
  90. package/build/IndexManager.d.ts +0 -30
  91. package/build/IndexManager.d.ts.map +0 -1
  92. package/build/IndexManager.js +0 -206
  93. package/build/IndexManager.js.map +0 -1
  94. package/build/InstanceData.d.ts +0 -59
  95. package/build/InstanceData.d.ts.map +0 -1
  96. package/build/InstanceData.js +0 -162
  97. package/build/InstanceData.js.map +0 -1
  98. package/build/IsLoadedCache.d.ts +0 -32
  99. package/build/IsLoadedCache.d.ts.map +0 -1
  100. package/build/IsLoadedCache.js +0 -80
  101. package/build/IsLoadedCache.js.map +0 -1
  102. package/build/JoinRows.d.ts +0 -75
  103. package/build/JoinRows.d.ts.map +0 -1
  104. package/build/JoinRows.js +0 -246
  105. package/build/JoinRows.js.map +0 -1
  106. package/build/PluginManager.d.ts +0 -90
  107. package/build/PluginManager.d.ts.map +0 -1
  108. package/build/PluginManager.js +0 -97
  109. package/build/PluginManager.js.map +0 -1
  110. package/build/QueryParser.d.ts +0 -271
  111. package/build/QueryParser.d.ts.map +0 -1
  112. package/build/QueryParser.js +0 -853
  113. package/build/QueryParser.js.map +0 -1
  114. package/build/QueryParser.pruning.d.ts +0 -5
  115. package/build/QueryParser.pruning.d.ts.map +0 -1
  116. package/build/QueryParser.pruning.js +0 -118
  117. package/build/QueryParser.pruning.js.map +0 -1
  118. package/build/QueryVisitor.d.ts +0 -19
  119. package/build/QueryVisitor.d.ts.map +0 -1
  120. package/build/QueryVisitor.js +0 -84
  121. package/build/QueryVisitor.js.map +0 -1
  122. package/build/ReactionsManager.d.ts +0 -84
  123. package/build/ReactionsManager.d.ts.map +0 -1
  124. package/build/ReactionsManager.js +0 -308
  125. package/build/ReactionsManager.js.map +0 -1
  126. package/build/Todo.d.ts +0 -31
  127. package/build/Todo.d.ts.map +0 -1
  128. package/build/Todo.js +0 -73
  129. package/build/Todo.js.map +0 -1
  130. package/build/caches.d.ts +0 -6
  131. package/build/caches.d.ts.map +0 -1
  132. package/build/caches.js +0 -42
  133. package/build/caches.js.map +0 -1
  134. package/build/changes.d.ts +0 -79
  135. package/build/changes.d.ts.map +0 -1
  136. package/build/changes.js +0 -251
  137. package/build/changes.js.map +0 -1
  138. package/build/config.d.ts +0 -237
  139. package/build/config.d.ts.map +0 -1
  140. package/build/config.js +0 -298
  141. package/build/config.js.map +0 -1
  142. package/build/config.test.d.ts +0 -2
  143. package/build/config.test.d.ts.map +0 -1
  144. package/build/config.test.js +0 -53
  145. package/build/config.test.js.map +0 -1
  146. package/build/configure.d.ts +0 -13
  147. package/build/configure.d.ts.map +0 -1
  148. package/build/configure.js +0 -329
  149. package/build/configure.js.map +0 -1
  150. package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
  151. package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
  152. package/build/dataloaders/findByUniqueDataLoader.js +0 -47
  153. package/build/dataloaders/findByUniqueDataLoader.js.map +0 -1
  154. package/build/dataloaders/findCountDataLoader.d.ts +0 -7
  155. package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
  156. package/build/dataloaders/findCountDataLoader.js +0 -74
  157. package/build/dataloaders/findCountDataLoader.js.map +0 -1
  158. package/build/dataloaders/findDataLoader.d.ts +0 -37
  159. package/build/dataloaders/findDataLoader.d.ts.map +0 -1
  160. package/build/dataloaders/findDataLoader.js +0 -337
  161. package/build/dataloaders/findDataLoader.js.map +0 -1
  162. package/build/dataloaders/findIdsDataLoader.d.ts +0 -7
  163. package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
  164. package/build/dataloaders/findIdsDataLoader.js +0 -74
  165. package/build/dataloaders/findIdsDataLoader.js.map +0 -1
  166. package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
  167. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
  168. package/build/dataloaders/findOrCreateDataLoader.js +0 -174
  169. package/build/dataloaders/findOrCreateDataLoader.js.map +0 -1
  170. package/build/dataloaders/lensDataLoader.d.ts +0 -12
  171. package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
  172. package/build/dataloaders/lensDataLoader.js +0 -180
  173. package/build/dataloaders/lensDataLoader.js.map +0 -1
  174. package/build/dataloaders/loadDataLoader.d.ts +0 -11
  175. package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
  176. package/build/dataloaders/loadDataLoader.js +0 -54
  177. package/build/dataloaders/loadDataLoader.js.map +0 -1
  178. package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
  179. package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
  180. package/build/dataloaders/manyToManyDataLoader.js +0 -74
  181. package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
  182. package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
  183. package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
  184. package/build/dataloaders/manyToManyFindDataLoader.js +0 -70
  185. package/build/dataloaders/manyToManyFindDataLoader.js.map +0 -1
  186. package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
  187. package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
  188. package/build/dataloaders/oneToManyDataLoader.js +0 -60
  189. package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
  190. package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
  191. package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
  192. package/build/dataloaders/oneToManyFindDataLoader.js +0 -71
  193. package/build/dataloaders/oneToManyFindDataLoader.js.map +0 -1
  194. package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
  195. package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
  196. package/build/dataloaders/oneToOneDataLoader.js +0 -59
  197. package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
  198. package/build/dataloaders/populateDataLoader.d.ts +0 -13
  199. package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
  200. package/build/dataloaders/populateDataLoader.js +0 -148
  201. package/build/dataloaders/populateDataLoader.js.map +0 -1
  202. package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
  203. package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
  204. package/build/dataloaders/recursiveChildrenDataLoader.js +0 -77
  205. package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
  206. package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
  207. package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
  208. package/build/dataloaders/recursiveParentsDataLoader.js +0 -59
  209. package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
  210. package/build/defaults.d.ts +0 -54
  211. package/build/defaults.d.ts.map +0 -1
  212. package/build/defaults.js +0 -282
  213. package/build/defaults.js.map +0 -1
  214. package/build/driverApi.d.ts +0 -19
  215. package/build/driverApi.d.ts.map +0 -1
  216. package/build/driverApi.js +0 -17
  217. package/build/driverApi.js.map +0 -1
  218. package/build/drivers/Driver.d.ts +0 -26
  219. package/build/drivers/Driver.d.ts.map +0 -1
  220. package/build/drivers/Driver.js +0 -3
  221. package/build/drivers/Driver.js.map +0 -1
  222. package/build/drivers/EntityWriter.d.ts +0 -64
  223. package/build/drivers/EntityWriter.d.ts.map +0 -1
  224. package/build/drivers/EntityWriter.js +0 -237
  225. package/build/drivers/EntityWriter.js.map +0 -1
  226. package/build/drivers/IdAssigner.d.ts +0 -50
  227. package/build/drivers/IdAssigner.d.ts.map +0 -1
  228. package/build/drivers/IdAssigner.js +0 -133
  229. package/build/drivers/IdAssigner.js.map +0 -1
  230. package/build/drivers/PostgresDriver.d.ts.map +0 -1
  231. package/build/drivers/PostgresDriver.js.map +0 -1
  232. package/build/drivers/buildRawQuery.d.ts +0 -20
  233. package/build/drivers/buildRawQuery.d.ts.map +0 -1
  234. package/build/drivers/buildRawQuery.js +0 -148
  235. package/build/drivers/buildRawQuery.js.map +0 -1
  236. package/build/drivers/buildUtils.d.ts +0 -4
  237. package/build/drivers/buildUtils.d.ts.map +0 -1
  238. package/build/drivers/buildUtils.js +0 -79
  239. package/build/drivers/buildUtils.js.map +0 -1
  240. package/build/drivers/index.d.ts +0 -5
  241. package/build/drivers/index.d.ts.map +0 -1
  242. package/build/drivers/index.js.map +0 -1
  243. package/build/fields.d.ts +0 -24
  244. package/build/fields.d.ts.map +0 -1
  245. package/build/fields.js +0 -162
  246. package/build/fields.js.map +0 -1
  247. package/build/getProperties.d.ts +0 -28
  248. package/build/getProperties.d.ts.map +0 -1
  249. package/build/getProperties.js +0 -141
  250. package/build/getProperties.js.map +0 -1
  251. package/build/json.d.ts +0 -77
  252. package/build/json.d.ts.map +0 -1
  253. package/build/json.js +0 -116
  254. package/build/json.js.map +0 -1
  255. package/build/k.d.ts +0 -2
  256. package/build/k.d.ts.map +0 -1
  257. package/build/k.js +0 -9
  258. package/build/k.js.map +0 -1
  259. package/build/keys.d.ts +0 -49
  260. package/build/keys.d.ts.map +0 -1
  261. package/build/keys.js +0 -195
  262. package/build/keys.js.map +0 -1
  263. package/build/keywords.d.ts +0 -5
  264. package/build/keywords.d.ts.map +0 -1
  265. package/build/keywords.js +0 -124
  266. package/build/keywords.js.map +0 -1
  267. package/build/loadHints.d.ts +0 -112
  268. package/build/loadHints.d.ts.map +0 -1
  269. package/build/loadHints.js +0 -75
  270. package/build/loadHints.js.map +0 -1
  271. package/build/loadLens.d.ts +0 -66
  272. package/build/loadLens.d.ts.map +0 -1
  273. package/build/loadLens.js +0 -287
  274. package/build/loadLens.js.map +0 -1
  275. package/build/logging/FactoryLogger.d.ts +0 -24
  276. package/build/logging/FactoryLogger.d.ts.map +0 -1
  277. package/build/logging/FactoryLogger.js +0 -77
  278. package/build/logging/FactoryLogger.js.map +0 -1
  279. package/build/logging/FieldLogger.d.ts +0 -27
  280. package/build/logging/FieldLogger.d.ts.map +0 -1
  281. package/build/logging/FieldLogger.js +0 -69
  282. package/build/logging/FieldLogger.js.map +0 -1
  283. package/build/logging/ReactionLogger.d.ts +0 -23
  284. package/build/logging/ReactionLogger.d.ts.map +0 -1
  285. package/build/logging/ReactionLogger.js +0 -65
  286. package/build/logging/ReactionLogger.js.map +0 -1
  287. package/build/newEntity.d.ts +0 -45
  288. package/build/newEntity.d.ts.map +0 -1
  289. package/build/newEntity.js +0 -106
  290. package/build/newEntity.js.map +0 -1
  291. package/build/newTestInstance.d.ts +0 -193
  292. package/build/newTestInstance.d.ts.map +0 -1
  293. package/build/newTestInstance.js +0 -738
  294. package/build/newTestInstance.js.map +0 -1
  295. package/build/normalizeHints.d.ts +0 -16
  296. package/build/normalizeHints.d.ts.map +0 -1
  297. package/build/normalizeHints.js +0 -31
  298. package/build/normalizeHints.js.map +0 -1
  299. package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
  300. package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
  301. package/build/plugins/ImmutableEntitiesPlugin.js +0 -21
  302. package/build/plugins/ImmutableEntitiesPlugin.js.map +0 -1
  303. package/build/plugins/PreloadPlugin.d.ts +0 -69
  304. package/build/plugins/PreloadPlugin.d.ts.map +0 -1
  305. package/build/plugins/PreloadPlugin.js +0 -3
  306. package/build/plugins/PreloadPlugin.js.map +0 -1
  307. package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
  308. package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
  309. package/build/preloading/JsonAggregatePreloader.js +0 -238
  310. package/build/preloading/JsonAggregatePreloader.js.map +0 -1
  311. package/build/preloading/canPreload.d.ts +0 -3
  312. package/build/preloading/canPreload.d.ts.map +0 -1
  313. package/build/preloading/canPreload.js +0 -21
  314. package/build/preloading/canPreload.js.map +0 -1
  315. package/build/preloading/partitionHint.d.ts +0 -5
  316. package/build/preloading/partitionHint.d.ts.map +0 -1
  317. package/build/preloading/partitionHint.js +0 -56
  318. package/build/preloading/partitionHint.js.map +0 -1
  319. package/build/reactiveHints.d.ts +0 -129
  320. package/build/reactiveHints.d.ts.map +0 -1
  321. package/build/reactiveHints.js +0 -458
  322. package/build/reactiveHints.js.map +0 -1
  323. package/build/relations/AbstractPropertyImpl.d.ts +0 -8
  324. package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
  325. package/build/relations/AbstractPropertyImpl.js +0 -15
  326. package/build/relations/AbstractPropertyImpl.js.map +0 -1
  327. package/build/relations/AbstractRelationImpl.d.ts +0 -36
  328. package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
  329. package/build/relations/AbstractRelationImpl.js +0 -19
  330. package/build/relations/AbstractRelationImpl.js.map +0 -1
  331. package/build/relations/Collection.d.ts +0 -28
  332. package/build/relations/Collection.d.ts.map +0 -1
  333. package/build/relations/Collection.js +0 -18
  334. package/build/relations/Collection.js.map +0 -1
  335. package/build/relations/CustomCollection.d.ts +0 -69
  336. package/build/relations/CustomCollection.d.ts.map +0 -1
  337. package/build/relations/CustomCollection.js +0 -166
  338. package/build/relations/CustomCollection.js.map +0 -1
  339. package/build/relations/CustomReference.d.ts +0 -71
  340. package/build/relations/CustomReference.d.ts.map +0 -1
  341. package/build/relations/CustomReference.js +0 -152
  342. package/build/relations/CustomReference.js.map +0 -1
  343. package/build/relations/LargeCollection.d.ts +0 -19
  344. package/build/relations/LargeCollection.d.ts.map +0 -1
  345. package/build/relations/LargeCollection.js +0 -3
  346. package/build/relations/LargeCollection.js.map +0 -1
  347. package/build/relations/ManyToManyCollection.d.ts +0 -44
  348. package/build/relations/ManyToManyCollection.d.ts.map +0 -1
  349. package/build/relations/ManyToManyCollection.js +0 -268
  350. package/build/relations/ManyToManyCollection.js.map +0 -1
  351. package/build/relations/ManyToManyLargeCollection.d.ts +0 -30
  352. package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
  353. package/build/relations/ManyToManyLargeCollection.js +0 -119
  354. package/build/relations/ManyToManyLargeCollection.js.map +0 -1
  355. package/build/relations/ManyToOneReference.d.ts +0 -121
  356. package/build/relations/ManyToOneReference.d.ts.map +0 -1
  357. package/build/relations/ManyToOneReference.js +0 -389
  358. package/build/relations/ManyToOneReference.js.map +0 -1
  359. package/build/relations/OneToManyCollection.d.ts +0 -58
  360. package/build/relations/OneToManyCollection.d.ts.map +0 -1
  361. package/build/relations/OneToManyCollection.js +0 -347
  362. package/build/relations/OneToManyCollection.js.map +0 -1
  363. package/build/relations/OneToManyLargeCollection.d.ts +0 -26
  364. package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
  365. package/build/relations/OneToManyLargeCollection.js +0 -102
  366. package/build/relations/OneToManyLargeCollection.js.map +0 -1
  367. package/build/relations/OneToOneReference.d.ts +0 -93
  368. package/build/relations/OneToOneReference.d.ts.map +0 -1
  369. package/build/relations/OneToOneReference.js +0 -228
  370. package/build/relations/OneToOneReference.js.map +0 -1
  371. package/build/relations/PolymorphicReference.d.ts +0 -89
  372. package/build/relations/PolymorphicReference.d.ts.map +0 -1
  373. package/build/relations/PolymorphicReference.js +0 -244
  374. package/build/relations/PolymorphicReference.js.map +0 -1
  375. package/build/relations/ReactiveField.d.ts +0 -87
  376. package/build/relations/ReactiveField.d.ts.map +0 -1
  377. package/build/relations/ReactiveField.js +0 -149
  378. package/build/relations/ReactiveField.js.map +0 -1
  379. package/build/relations/ReactiveGetter.d.ts +0 -30
  380. package/build/relations/ReactiveGetter.d.ts.map +0 -1
  381. package/build/relations/ReactiveGetter.js +0 -38
  382. package/build/relations/ReactiveGetter.js.map +0 -1
  383. package/build/relations/ReactiveManyToMany.d.ts +0 -56
  384. package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
  385. package/build/relations/ReactiveManyToMany.js +0 -243
  386. package/build/relations/ReactiveManyToMany.js.map +0 -1
  387. package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -47
  388. package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
  389. package/build/relations/ReactiveManyToManyOtherSide.js +0 -155
  390. package/build/relations/ReactiveManyToManyOtherSide.js.map +0 -1
  391. package/build/relations/ReactiveQueryField.d.ts +0 -41
  392. package/build/relations/ReactiveQueryField.d.ts.map +0 -1
  393. package/build/relations/ReactiveQueryField.js +0 -125
  394. package/build/relations/ReactiveQueryField.js.map +0 -1
  395. package/build/relations/ReactiveReference.d.ts +0 -119
  396. package/build/relations/ReactiveReference.d.ts.map +0 -1
  397. package/build/relations/ReactiveReference.js +0 -333
  398. package/build/relations/ReactiveReference.js.map +0 -1
  399. package/build/relations/ReadOnlyCollection.d.ts +0 -19
  400. package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
  401. package/build/relations/ReadOnlyCollection.js +0 -15
  402. package/build/relations/ReadOnlyCollection.js.map +0 -1
  403. package/build/relations/RecursiveCollection.d.ts +0 -84
  404. package/build/relations/RecursiveCollection.d.ts.map +0 -1
  405. package/build/relations/RecursiveCollection.js +0 -296
  406. package/build/relations/RecursiveCollection.js.map +0 -1
  407. package/build/relations/Reference.d.ts +0 -35
  408. package/build/relations/Reference.d.ts.map +0 -1
  409. package/build/relations/Reference.js +0 -21
  410. package/build/relations/Reference.js.map +0 -1
  411. package/build/relations/Relation.d.ts +0 -14
  412. package/build/relations/Relation.d.ts.map +0 -1
  413. package/build/relations/Relation.js +0 -12
  414. package/build/relations/Relation.js.map +0 -1
  415. package/build/relations/hasAsyncMethod.d.ts +0 -27
  416. package/build/relations/hasAsyncMethod.d.ts.map +0 -1
  417. package/build/relations/hasAsyncMethod.js +0 -47
  418. package/build/relations/hasAsyncMethod.js.map +0 -1
  419. package/build/relations/hasAsyncProperty.d.ts +0 -49
  420. package/build/relations/hasAsyncProperty.d.ts.map +0 -1
  421. package/build/relations/hasAsyncProperty.js +0 -98
  422. package/build/relations/hasAsyncProperty.js.map +0 -1
  423. package/build/relations/hasManyDerived.d.ts +0 -22
  424. package/build/relations/hasManyDerived.d.ts.map +0 -1
  425. package/build/relations/hasManyDerived.js +0 -32
  426. package/build/relations/hasManyDerived.js.map +0 -1
  427. package/build/relations/hasManyThrough.d.ts +0 -10
  428. package/build/relations/hasManyThrough.d.ts.map +0 -1
  429. package/build/relations/hasManyThrough.js +0 -24
  430. package/build/relations/hasManyThrough.js.map +0 -1
  431. package/build/relations/hasOneDerived.d.ts +0 -12
  432. package/build/relations/hasOneDerived.d.ts.map +0 -1
  433. package/build/relations/hasOneDerived.js +0 -24
  434. package/build/relations/hasOneDerived.js.map +0 -1
  435. package/build/relations/hasOneThrough.d.ts +0 -10
  436. package/build/relations/hasOneThrough.d.ts.map +0 -1
  437. package/build/relations/hasOneThrough.js +0 -24
  438. package/build/relations/hasOneThrough.js.map +0 -1
  439. package/build/relations/index.d.ts +0 -28
  440. package/build/relations/index.d.ts.map +0 -1
  441. package/build/relations/index.js +0 -88
  442. package/build/relations/index.js.map +0 -1
  443. package/build/rules.d.ts +0 -123
  444. package/build/rules.d.ts.map +0 -1
  445. package/build/rules.js +0 -231
  446. package/build/rules.js.map +0 -1
  447. package/build/runtimeConfig.d.ts +0 -17
  448. package/build/runtimeConfig.d.ts.map +0 -1
  449. package/build/runtimeConfig.js +0 -18
  450. package/build/runtimeConfig.js.map +0 -1
  451. package/build/serde.d.ts +0 -277
  452. package/build/serde.d.ts.map +0 -1
  453. package/build/serde.js +0 -517
  454. package/build/serde.js.map +0 -1
  455. package/build/temporal.d.ts +0 -16
  456. package/build/temporal.d.ts.map +0 -1
  457. package/build/temporal.js +0 -48
  458. package/build/temporal.js.map +0 -1
  459. package/build/temporalMappers.d.ts +0 -25
  460. package/build/temporalMappers.d.ts.map +0 -1
  461. package/build/temporalMappers.js +0 -59
  462. package/build/temporalMappers.js.map +0 -1
  463. package/build/typeMap.d.ts +0 -68
  464. package/build/typeMap.d.ts.map +0 -1
  465. package/build/typeMap.js +0 -3
  466. package/build/typeMap.js.map +0 -1
  467. package/build/unnest.d.ts +0 -13
  468. package/build/unnest.d.ts.map +0 -1
  469. package/build/unnest.js +0 -85
  470. package/build/unnest.js.map +0 -1
  471. package/build/upsert.d.ts +0 -42
  472. package/build/upsert.d.ts.map +0 -1
  473. package/build/upsert.js +0 -265
  474. package/build/upsert.js.map +0 -1
  475. package/build/utils.d.ts +0 -58
  476. package/build/utils.d.ts.map +0 -1
  477. package/build/utils.js +0 -236
  478. package/build/utils.js.map +0 -1
  479. package/build/withLoaded.d.ts +0 -56
  480. package/build/withLoaded.d.ts.map +0 -1
  481. package/build/withLoaded.js +0 -76
  482. package/build/withLoaded.js.map +0 -1
@@ -1,228 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OneToOneReferenceImpl = void 0;
4
- exports.hasOneToOne = hasOneToOne;
5
- exports.isOneToOneReference = isOneToOneReference;
6
- exports.isLoadedOneToOneReference = isLoadedOneToOneReference;
7
- const __1 = require("../");
8
- const oneToOneDataLoader_1 = require("../dataloaders/oneToOneDataLoader");
9
- const fields_1 = require("../fields");
10
- const newEntity_1 = require("../newEntity");
11
- const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
12
- const ManyToOneReference_1 = require("./ManyToOneReference");
13
- const ReactiveReference_1 = require("./ReactiveReference");
14
- const Reference_1 = require("./Reference");
15
- const Relation_1 = require("./Relation");
16
- const OneToOne = Symbol();
17
- /** An alias for creating `OneToOneReference`s. */
18
- function hasOneToOne() {
19
- return (0, newEntity_1.lazyField)((entity, fieldName) => {
20
- const o2o = (0, __1.getMetadata)(entity).allFields[fieldName];
21
- return new OneToOneReferenceImpl(entity, o2o);
22
- });
23
- }
24
- /** Type guard utility for determining if an entity field is a Reference. */
25
- function isOneToOneReference(maybeReference) {
26
- return maybeReference instanceof OneToOneReferenceImpl;
27
- }
28
- /** Type guard utility for determining if an entity field is a loaded Reference. */
29
- function isLoadedOneToOneReference(maybeReference) {
30
- return isOneToOneReference(maybeReference) && maybeReference.isLoaded;
31
- }
32
- /**
33
- * Represents the "many" side of a one-to-one relationship.
34
- *
35
- * I.e. in a one-to-many from Book -> Reviews, there is a review.book_id that can have many books.
36
- *
37
- * This class is for when that `review.book_id` column is itself unique, i.e. like `image.book_id`, and
38
- * so instead of `Book.images: OneToManyCollection` we have a `Book.image: OneToOneReference`.
39
- *
40
- * This class implements `Reference` because it is essentially like "one entity pointing/refereing to another",
41
- * however because we require a `.load` call to lazily know the value of other side (unlike ManyToOneReference
42
- * which has it's `book_id` column immediately available in the entity `data` hash), there is some wonkiness
43
- * around methods like `Reference.id` that are usually callable without `load`/`populate`, that for this
44
- * class can actually only be called post `load`/`populate`.
45
- *
46
- * Currently we enforce this with a runtime check, which is not great, but the trade-off of implementing
47
- * `Reference` seemed worth the downside of a un-type-safe `.id` property.
48
- */
49
- class OneToOneReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
50
- #field;
51
- loaded;
52
- _isLoaded = false;
53
- #hasBeenSet = false;
54
- constructor(entity, field) {
55
- super(entity);
56
- this.#field = field;
57
- if ((0, __1.getInstanceData)(entity).isOrWasNew) {
58
- this._isLoaded = true;
59
- }
60
- }
61
- // These are public to our internal implementation but not exposed in the Collection API
62
- get fieldName() {
63
- return this.#field.fieldName;
64
- }
65
- get otherFieldName() {
66
- return this.#field.otherFieldName;
67
- }
68
- get id() {
69
- return this.idMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.loaded);
70
- }
71
- get idIfSet() {
72
- if (this._isLoaded) {
73
- return this.idMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.loaded);
74
- }
75
- throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
76
- }
77
- get idUntagged() {
78
- return this.idUntaggedMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.loaded);
79
- }
80
- get idUntaggedIfSet() {
81
- return this.idUntaggedMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.loaded);
82
- }
83
- get idMaybe() {
84
- (0, __1.ensureNotDeleted)(this.entity, "pending");
85
- if (this._isLoaded) {
86
- return this.loaded?.idMaybe;
87
- }
88
- throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
89
- }
90
- get idTaggedMaybe() {
91
- (0, __1.ensureNotDeleted)(this.entity, "pending");
92
- if (this._isLoaded) {
93
- return this.loaded?.idTaggedMaybe;
94
- }
95
- throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
96
- }
97
- get idUntaggedMaybe() {
98
- return (0, __1.deTagId)(this.otherMeta, this.idMaybe);
99
- }
100
- get isSet() {
101
- if (this._isLoaded) {
102
- return this.loaded !== undefined;
103
- }
104
- throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
105
- }
106
- // opts is an internal parameter
107
- async load(opts = {}) {
108
- (0, __1.ensureNotDeleted)(this.entity, "pending");
109
- if (!this._isLoaded || opts.forceReload) {
110
- if (!this.entity.isNewEntity) {
111
- const joinLoaded = this.getPreloaded();
112
- this.loaded = joinLoaded
113
- ? joinLoaded[0]
114
- : await (0, oneToOneDataLoader_1.oneToOneDataLoader)(this.entity.em, this)
115
- .load(this.entity.idTagged)
116
- .catch(function load(err) {
117
- throw (0, __1.appendStack)(err, new Error());
118
- });
119
- }
120
- this._isLoaded = true;
121
- }
122
- return this.filterDeleted(this.loaded, opts);
123
- }
124
- set(other, opts = {}) {
125
- (0, __1.ensureNotDeleted)(this.entity, "pending");
126
- this.#hasBeenSet = true;
127
- if (other === this.loaded) {
128
- this._isLoaded = true;
129
- return;
130
- }
131
- if (this._isLoaded) {
132
- if (this.loaded && !opts.percolating) {
133
- this.getOtherRelation(this.loaded).set(undefined);
134
- }
135
- }
136
- const { fieldLogger } = (0, __1.getEmInternalApi)(this.entity.em);
137
- fieldLogger?.logSet(this.entity, this.fieldName, other);
138
- this.loaded = other;
139
- this._isLoaded = true;
140
- // This will no-op and mark other dirty if necessary
141
- if (other && !opts.percolating) {
142
- this.getOtherRelation(other).set(this.entity);
143
- }
144
- }
145
- get isLoaded() {
146
- return this._isLoaded;
147
- }
148
- get isPreloaded() {
149
- return !!this.getPreloaded();
150
- }
151
- preload() {
152
- this.loaded = this.getPreloaded()?.[0];
153
- this._isLoaded = true;
154
- }
155
- import(other, findEntity) {
156
- this.loaded = other.loaded ? findEntity(other.loaded) : undefined;
157
- this._isLoaded = true;
158
- }
159
- get getWithDeleted() {
160
- return this.filterDeleted(this.doGet(), { withDeleted: true });
161
- }
162
- get get() {
163
- return this.filterDeleted(this.doGet(), { withDeleted: false });
164
- }
165
- get otherMeta() {
166
- return this.#field.otherMetadata();
167
- }
168
- doGet() {
169
- (0, __1.ensureNotDeleted)(this.entity, "pending");
170
- if (!this._isLoaded) {
171
- // This should only be callable in the type system if we've already resolved this to an instance
172
- throw new Error("get was called when not loaded");
173
- }
174
- return this.loaded;
175
- }
176
- // internal impl
177
- setFromOpts(other) {
178
- this.set(other);
179
- }
180
- maybeCascadeDelete() {
181
- if (this.isCascadeDelete && this.loaded) {
182
- this.entity.em.delete(this.loaded);
183
- }
184
- }
185
- async cleanupOnEntityDeleted() {
186
- // if we are going to delete this relation as well, then we don't need to clean it up
187
- if (this.isCascadeDelete)
188
- return;
189
- const current = await this.load({ withDeleted: true });
190
- if (current !== undefined) {
191
- const otherSide = this.getOtherRelation(current);
192
- // Don't call `ReactiveReference.set` because it'll blow up
193
- if (!(0, ReactiveReference_1.isReactiveReference)(otherSide)) {
194
- otherSide.set(undefined);
195
- }
196
- (0, fields_1.setField)(current, this.otherFieldName, undefined);
197
- }
198
- this.loaded = undefined;
199
- this._isLoaded = true;
200
- }
201
- get hasBeenSet() {
202
- return this.#hasBeenSet;
203
- }
204
- toString() {
205
- return `OneToOneReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.otherMeta.type}, otherFieldName: ${this.otherFieldName})`;
206
- }
207
- filterDeleted(entity, opts) {
208
- return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
209
- }
210
- /** Returns the other relation that points back at us, i.e. we're `Author.image` and this is `Image.author_id`. */
211
- getOtherRelation(other) {
212
- return other[this.otherFieldName];
213
- }
214
- getPreloaded() {
215
- if (this.entity.isNewEntity)
216
- return undefined;
217
- return (0, __1.getEmInternalApi)(this.entity.em).getPreloadedRelation(this.entity.idTagged, this.fieldName);
218
- }
219
- get isCascadeDelete() {
220
- return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
221
- }
222
- [Relation_1.RelationT] = null;
223
- [Relation_1.RelationU] = null;
224
- [Reference_1.ReferenceN] = null;
225
- [OneToOne] = null;
226
- }
227
- exports.OneToOneReferenceImpl = OneToOneReferenceImpl;
228
- //# sourceMappingURL=OneToOneReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneToOneReference.js","sourceRoot":"","sources":["../../src/relations/OneToOneReference.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- import { Entity } from "../Entity";
2
- import { IdOf, TaggedId } from "../EntityManager";
3
- import { Reference } from "../index";
4
- import { AbstractRelationImpl } from "./AbstractRelationImpl";
5
- import { ReferenceN } from "./Reference";
6
- import { RelationT, RelationU } from "./Relation";
7
- export declare function hasOnePolymorphic<T extends Entity, U extends Entity, N extends never | undefined>(): PolymorphicReference<T, U, N>;
8
- /** Type guard utility for determining if an entity field is a PolymorphicReference. */
9
- export declare function isPolymorphicReference(maybeReference: any): maybeReference is PolymorphicReference<any, any, any>;
10
- /**
11
- * A reference that can be assigned to multiple different entity types.
12
- *
13
- * I.e. a `Comment.parent` reference that can be an `Author` or `Book`.
14
- *
15
- * The `U` generic will be the type union of `Author | Book`.
16
- */
17
- export interface PolymorphicReference<T extends Entity, U extends Entity, N extends never | undefined> extends Reference<T, U, N> {
18
- /** 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. */
19
- id: IdOf<U>;
20
- /** Returns the id of the current assigned entity, undefined if unset, or a runtime error if set to a new entity. */
21
- idIfSet: IdOf<U> | undefined;
22
- /** Returns the id of the current assigned entity, undefined if unset, or undefined if set to a new entity. */
23
- idMaybe: IdOf<U> | undefined;
24
- idTagged: string;
25
- /** 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. */
26
- readonly isSet: boolean;
27
- }
28
- /**
29
- * Manages a set of foreign keys from one entity to another, i.e. `Comment.parent --> Book | BookReview`.
30
- *
31
- * We keep the current `parent` / `parent.id` value in the `__orm.data` hash, where the
32
- * current value could be either the `comments.parent_book_id` / `comments.parent_book_review_id` id (as a tagged string)
33
- * from the database, or an entity `Book` / `BookReview` that the user has set.
34
- *
35
- * Note that if any of our columns (eg `comments.parent_book_review_id`) is unique, this `PolymorphicReference` will
36
- * essentially be half of a one-to-one relationship, but we'll keep using this reference on the "owning" side; the other
37
- * side, i.e. `BookReview.comment` will use a `OneToOneReference` to point back to us.
38
- */
39
- export declare class PolymorphicReferenceImpl<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<T, U> implements PolymorphicReference<T, U, N> {
40
- #private;
41
- fieldName: keyof T & string;
42
- private loaded;
43
- private _isLoaded;
44
- private field;
45
- constructor(entity: T, fieldName: keyof T & string);
46
- private get currentComponent();
47
- private get isCascadeDelete();
48
- load(opts?: {
49
- withDeleted?: boolean;
50
- forceReload?: boolean;
51
- }): Promise<U | N>;
52
- set(other: U | N): void;
53
- get isSet(): boolean;
54
- get isLoaded(): boolean;
55
- /**
56
- * Looks for an entity in `EntityManager`, b/c we may have it in memory even if
57
- * our reference is not specifically loaded.
58
- */
59
- maybeFindEntity(): U | undefined;
60
- get isPreloaded(): boolean;
61
- preload(): void;
62
- private unload;
63
- import(other: PolymorphicReferenceImpl<T, U, N>, findEntity: (e: U) => U): void;
64
- private doGet;
65
- get getWithDeleted(): U | N;
66
- get get(): U | N;
67
- get id(): IdOf<U>;
68
- get idMaybe(): IdOf<U> | undefined;
69
- get idIfSet(): IdOf<U> | N | undefined;
70
- get idTagged(): string;
71
- get idTaggedMaybe(): string | undefined;
72
- get hasBeenSet(): boolean;
73
- setFromOpts(other: U): void;
74
- maybeCascadeDelete(): void;
75
- cleanupOnEntityDeleted(): Promise<void>;
76
- setImpl(other: U | N): void;
77
- current(opts?: {
78
- withDeleted?: boolean;
79
- }): U | TaggedId | N;
80
- toString(): string;
81
- private filterDeleted;
82
- /** Returns the other relation that points back at us, i.e. we're `comment.parent_book_id` and this is `Book.comments`. */
83
- private getOtherRelation;
84
- private maybeFindExisting;
85
- [RelationT]: T;
86
- [RelationU]: U;
87
- [ReferenceN]: N;
88
- }
89
- //# sourceMappingURL=PolymorphicReference.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolymorphicReference.d.ts","sourceRoot":"","sources":["../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}
@@ -1,244 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PolymorphicReferenceImpl = void 0;
4
- exports.hasOnePolymorphic = hasOnePolymorphic;
5
- exports.isPolymorphicReference = isPolymorphicReference;
6
- const Entity_1 = require("../Entity");
7
- const EntityManager_1 = require("../EntityManager");
8
- const EntityMetadata_1 = require("../EntityMetadata");
9
- const configure_1 = require("../configure");
10
- const fields_1 = require("../fields");
11
- const index_1 = require("../index");
12
- const newEntity_1 = require("../newEntity");
13
- const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
14
- const ManyToOneReference_1 = require("./ManyToOneReference");
15
- const OneToManyCollection_1 = require("./OneToManyCollection");
16
- const Reference_1 = require("./Reference");
17
- const Relation_1 = require("./Relation");
18
- function hasOnePolymorphic() {
19
- return (0, newEntity_1.lazyField)((entity, fieldName) => {
20
- return new PolymorphicReferenceImpl(entity, fieldName);
21
- });
22
- }
23
- /** Type guard utility for determining if an entity field is a PolymorphicReference. */
24
- function isPolymorphicReference(maybeReference) {
25
- return maybeReference instanceof PolymorphicReferenceImpl;
26
- }
27
- /**
28
- * Manages a set of foreign keys from one entity to another, i.e. `Comment.parent --> Book | BookReview`.
29
- *
30
- * We keep the current `parent` / `parent.id` value in the `__orm.data` hash, where the
31
- * current value could be either the `comments.parent_book_id` / `comments.parent_book_review_id` id (as a tagged string)
32
- * from the database, or an entity `Book` / `BookReview` that the user has set.
33
- *
34
- * Note that if any of our columns (eg `comments.parent_book_review_id`) is unique, this `PolymorphicReference` will
35
- * essentially be half of a one-to-one relationship, but we'll keep using this reference on the "owning" side; the other
36
- * side, i.e. `BookReview.comment` will use a `OneToOneReference` to point back to us.
37
- */
38
- class PolymorphicReferenceImpl extends AbstractRelationImpl_1.AbstractRelationImpl {
39
- fieldName;
40
- loaded;
41
- // We need a separate boolean to b/c loaded == undefined can still mean "_isLoaded" for nullable fks.
42
- _isLoaded = false;
43
- field;
44
- #hasBeenSet = false;
45
- constructor(entity, fieldName) {
46
- super(entity);
47
- this.fieldName = fieldName;
48
- this.field = (0, EntityMetadata_1.getMetadata)(entity).allFields[this.fieldName];
49
- if ((0, index_1.getInstanceData)(entity).isOrWasNew) {
50
- this._isLoaded = true;
51
- }
52
- }
53
- get currentComponent() {
54
- const cstr = (0, configure_1.maybeGetConstructorFromReference)(this.current());
55
- return this.field.components.find((c) => c.otherMetadata().cstr === cstr);
56
- }
57
- get isCascadeDelete() {
58
- return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
59
- }
60
- async load(opts = {}) {
61
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
62
- const current = this.current();
63
- // Resolve the id to an entity
64
- if (!(0, Entity_1.isEntity)(current) && current !== undefined && (!this._isLoaded || opts.forceReload)) {
65
- this.loaded = (await this.entity.em.load((0, index_1.getConstructorFromTaggedId)(current), current));
66
- }
67
- this._isLoaded = true;
68
- return this.filterDeleted(this.loaded, opts);
69
- }
70
- set(other) {
71
- this.setImpl(other);
72
- }
73
- get isSet() {
74
- return this.current() !== undefined;
75
- }
76
- get isLoaded() {
77
- return this._isLoaded;
78
- }
79
- /**
80
- * Looks for an entity in `EntityManager`, b/c we may have it in memory even if
81
- * our reference is not specifically loaded.
82
- */
83
- maybeFindEntity() {
84
- // Check this.loaded first b/c a new entity won't have an id yet
85
- const { idTaggedMaybe } = this;
86
- return this.loaded ?? (idTaggedMaybe !== undefined ? this.entity.em.getEntity(idTaggedMaybe) : undefined);
87
- }
88
- get isPreloaded() {
89
- return !!this.maybeFindEntity();
90
- }
91
- preload() {
92
- this.loaded = this.maybeFindEntity();
93
- this._isLoaded = true;
94
- }
95
- unload() {
96
- this.loaded = undefined;
97
- this._isLoaded = false;
98
- }
99
- import(other, findEntity) {
100
- this.loaded = other.loaded ? findEntity(other.loaded) : undefined;
101
- this._isLoaded = true;
102
- }
103
- doGet(opts) {
104
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
105
- // This should only be callable in the type system if we've already resolved this to an instance,
106
- // but, just in case we somehow got here in an unloaded state, check to see if we're already in the UoW
107
- if (!this._isLoaded) {
108
- const existing = this.maybeFindExisting();
109
- if (existing === undefined) {
110
- throw new Error(`${this.entity}.${this.fieldName} was not loaded`);
111
- }
112
- this.loaded = existing;
113
- this._isLoaded = true;
114
- }
115
- return this.filterDeleted(this.loaded, opts);
116
- }
117
- get getWithDeleted() {
118
- return this.doGet({ withDeleted: true });
119
- }
120
- get get() {
121
- return this.doGet({ withDeleted: false });
122
- }
123
- get id() {
124
- return this.idMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.current());
125
- }
126
- get idMaybe() {
127
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
128
- return (0, index_1.maybeResolveReferenceToId)(this.current());
129
- }
130
- get idIfSet() {
131
- return this.idMaybe || (0, ManyToOneReference_1.failIfNewEntity)(this.entity, this.fieldName, this.current());
132
- }
133
- get idTagged() {
134
- return this.idTaggedMaybe || (0, ManyToOneReference_1.failNoId)(this.entity, this.fieldName, this.current());
135
- }
136
- get idTaggedMaybe() {
137
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
138
- return (0, index_1.maybeResolveReferenceToId)(this.current());
139
- }
140
- get hasBeenSet() {
141
- return this.#hasBeenSet;
142
- }
143
- // private impl
144
- setFromOpts(other) {
145
- this.setImpl(other);
146
- }
147
- maybeCascadeDelete() {
148
- if (this.isCascadeDelete) {
149
- const current = this.current({ withDeleted: true });
150
- if (current !== undefined && typeof current !== "string") {
151
- this.entity.em.delete(current);
152
- }
153
- }
154
- }
155
- async cleanupOnEntityDeleted() {
156
- // if we are going to delete this relation as well, then we don't need to clean it up
157
- if (this.isCascadeDelete)
158
- return;
159
- const current = await this.load({ withDeleted: true });
160
- if (current !== undefined) {
161
- const o2m = this.getOtherRelation(current);
162
- if (o2m instanceof OneToManyCollection_1.OneToManyCollection) {
163
- o2m.remove(this.entity, { requireLoaded: false });
164
- }
165
- else {
166
- o2m.set(undefined);
167
- }
168
- }
169
- (0, fields_1.setField)(this.entity, this.fieldName, undefined);
170
- this.loaded = undefined;
171
- this._isLoaded = true;
172
- }
173
- // Internal method used by PolymorphicReference
174
- setImpl(other) {
175
- this.#hasBeenSet = true;
176
- if ((0, EntityManager_1.sameEntity)(other, this.current({ withDeleted: true }))) {
177
- return;
178
- }
179
- if (other !== undefined &&
180
- !this.field.components.some((c) => other instanceof c.otherMetadata().cstr ||
181
- (typeof other === "string" && (0, index_1.getConstructorFromTaggedId)(other) === c.otherMetadata().cstr))) {
182
- (0, index_1.fail)(`${other} cannot be set as '${this.field.fieldName}' on ${this.entity}`);
183
- }
184
- // we may not be loaded yet, but our previous entity might already be in the UoW
185
- const previousLoaded = this.loaded ?? this.maybeFindExisting();
186
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
187
- // Prefer to keep the id in our data hash, but if this is a new entity w/o an id, use the entity itself
188
- const changed = (0, fields_1.setField)(this.entity, this.fieldName, (0, Entity_1.isEntity)(other) ? (other?.idTaggedMaybe ?? other) : other);
189
- if (typeof other === "string") {
190
- this.loaded = undefined;
191
- this._isLoaded = false;
192
- }
193
- else {
194
- this.loaded = other;
195
- this._isLoaded = true;
196
- }
197
- // If had an existing value, remove us from its collection
198
- if (previousLoaded) {
199
- const prevRelation = this.getOtherRelation(previousLoaded);
200
- if (prevRelation instanceof OneToManyCollection_1.OneToManyCollection) {
201
- prevRelation.removeIfLoaded(this.entity);
202
- }
203
- else {
204
- prevRelation.set(undefined);
205
- }
206
- }
207
- if (other !== undefined && (0, Entity_1.isEntity)(other)) {
208
- const newRelation = this.getOtherRelation(other);
209
- if (newRelation instanceof OneToManyCollection_1.OneToManyCollection) {
210
- newRelation.add(this.entity);
211
- }
212
- else {
213
- newRelation.set(this.entity);
214
- }
215
- }
216
- }
217
- // We need to keep U in data[fieldName] to handle entities without an id assigned yet.
218
- current(opts) {
219
- const current = (0, fields_1.getField)(this.entity, this.fieldName);
220
- if (current !== undefined && (0, Entity_1.isEntity)(current)) {
221
- return this.filterDeleted(current, opts);
222
- }
223
- return current;
224
- }
225
- toString() {
226
- return `PolymorphicReference(entity: ${this.entity}, fieldName: ${this.fieldName}, otherType: ${this.currentComponent?.otherMetadata().type}, otherFieldName: ${this.currentComponent?.otherFieldName}, id: ${this.id})`;
227
- }
228
- filterDeleted(entity, opts) {
229
- return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
230
- }
231
- /** Returns the other relation that points back at us, i.e. we're `comment.parent_book_id` and this is `Book.comments`. */
232
- getOtherRelation(other) {
233
- const component = this.field.components.find((c) => other instanceof c.otherMetadata().cstr);
234
- return other[component?.otherFieldName];
235
- }
236
- maybeFindExisting() {
237
- return this.idTaggedMaybe !== undefined ? this.entity.em.getEntity(this.idTagged) : undefined;
238
- }
239
- [Relation_1.RelationT] = null;
240
- [Relation_1.RelationU] = null;
241
- [Reference_1.ReferenceN] = null;
242
- }
243
- exports.PolymorphicReferenceImpl = PolymorphicReferenceImpl;
244
- //# sourceMappingURL=PolymorphicReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolymorphicReference.js","sourceRoot":"","sources":["../../src/relations/PolymorphicReference.ts"],"names":[],"mappings":"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"}