@expo/entity 0.40.0 → 0.42.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 (433) hide show
  1. package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +16 -16
  2. package/build/AuthorizationResultBasedEntityAssociationLoader.js +2 -4
  3. package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -1
  4. package/build/AuthorizationResultBasedEntityLoader.d.ts +39 -67
  5. package/build/AuthorizationResultBasedEntityLoader.js +85 -62
  6. package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
  7. package/build/AuthorizationResultBasedEntityMutator.d.ts +16 -16
  8. package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
  9. package/build/ComposedEntityCacheAdapter.d.ts +7 -6
  10. package/build/ComposedEntityCacheAdapter.js +28 -28
  11. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  12. package/build/ComposedSecondaryEntityCache.d.ts +1 -1
  13. package/build/ComposedSecondaryEntityCache.js.map +1 -1
  14. package/build/EnforcingEntityAssociationLoader.d.ts +15 -15
  15. package/build/EnforcingEntityAssociationLoader.js.map +1 -1
  16. package/build/EnforcingEntityCreator.d.ts +2 -2
  17. package/build/EnforcingEntityDeleter.d.ts +2 -2
  18. package/build/EnforcingEntityLoader.d.ts +104 -18
  19. package/build/EnforcingEntityLoader.js +113 -12
  20. package/build/EnforcingEntityLoader.js.map +1 -1
  21. package/build/EnforcingEntityUpdater.d.ts +2 -2
  22. package/build/Entity.d.ts +32 -10
  23. package/build/Entity.js +41 -3
  24. package/build/Entity.js.map +1 -1
  25. package/build/EntityAssociationLoader.d.ts +3 -3
  26. package/build/EntityCompanion.d.ts +5 -5
  27. package/build/EntityCompanion.js.map +1 -1
  28. package/build/EntityCompanionProvider.d.ts +6 -6
  29. package/build/EntityCompanionProvider.js.map +1 -1
  30. package/build/EntityConfiguration.d.ts +46 -5
  31. package/build/EntityConfiguration.js +39 -1
  32. package/build/EntityConfiguration.js.map +1 -1
  33. package/build/EntityCreator.d.ts +4 -4
  34. package/build/EntityDatabaseAdapter.d.ts +15 -14
  35. package/build/EntityDatabaseAdapter.js +20 -12
  36. package/build/EntityDatabaseAdapter.js.map +1 -1
  37. package/build/EntityDeleter.d.ts +4 -4
  38. package/build/EntityFieldDefinition.d.ts +20 -10
  39. package/build/EntityFieldDefinition.js +3 -1
  40. package/build/EntityFieldDefinition.js.map +1 -1
  41. package/build/EntityFields.d.ts +14 -12
  42. package/build/EntityFields.js.map +1 -1
  43. package/build/EntityLoader.d.ts +5 -5
  44. package/build/EntityLoaderFactory.d.ts +3 -3
  45. package/build/EntityLoaderFactory.js.map +1 -1
  46. package/build/EntityLoaderUtils.d.ts +2 -2
  47. package/build/EntityLoaderUtils.js +27 -1
  48. package/build/EntityLoaderUtils.js.map +1 -1
  49. package/build/EntityMutationInfo.d.ts +2 -2
  50. package/build/EntityMutationTriggerConfiguration.d.ts +14 -14
  51. package/build/EntityMutationTriggerConfiguration.js.map +1 -1
  52. package/build/EntityMutationValidator.d.ts +2 -2
  53. package/build/EntityMutatorFactory.d.ts +5 -5
  54. package/build/EntityMutatorFactory.js.map +1 -1
  55. package/build/EntityPrivacyPolicy.d.ts +14 -14
  56. package/build/EntityPrivacyPolicy.js.map +1 -1
  57. package/build/EntitySecondaryCacheLoader.d.ts +4 -4
  58. package/build/EntityUpdater.d.ts +4 -4
  59. package/build/GenericEntityCacheAdapter.d.ts +7 -6
  60. package/build/GenericEntityCacheAdapter.js +13 -14
  61. package/build/GenericEntityCacheAdapter.js.map +1 -1
  62. package/build/GenericSecondaryEntityCache.d.ts +3 -3
  63. package/build/GenericSecondaryEntityCache.js.map +1 -1
  64. package/build/IEntityCacheAdapter.d.ts +17 -16
  65. package/build/IEntityCacheAdapterProvider.d.ts +1 -1
  66. package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
  67. package/build/IEntityGenericCacher.d.ts +15 -5
  68. package/build/ReadonlyEntity.d.ts +27 -8
  69. package/build/ReadonlyEntity.js +31 -3
  70. package/build/ReadonlyEntity.js.map +1 -1
  71. package/build/ViewerContext.d.ts +1 -1
  72. package/build/ViewerScopedEntityCompanion.d.ts +5 -5
  73. package/build/ViewerScopedEntityCompanionProvider.d.ts +1 -1
  74. package/build/ViewerScopedEntityLoaderFactory.d.ts +3 -3
  75. package/build/ViewerScopedEntityMutatorFactory.d.ts +5 -5
  76. package/build/entityUtils.d.ts +1 -1
  77. package/build/entityUtils.js.map +1 -1
  78. package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
  79. package/build/errors/EntityNotAuthorizedError.d.ts +1 -1
  80. package/build/errors/EntityNotFoundError.d.ts +2 -2
  81. package/build/index.d.ts +7 -7
  82. package/build/index.js +8 -13
  83. package/build/index.js.map +1 -1
  84. package/build/internal/CompositeFieldHolder.d.ts +48 -0
  85. package/build/internal/CompositeFieldHolder.js +116 -0
  86. package/build/internal/CompositeFieldHolder.js.map +1 -0
  87. package/build/internal/CompositeFieldValueMap.d.ts +15 -0
  88. package/build/internal/CompositeFieldValueMap.js +51 -0
  89. package/build/internal/CompositeFieldValueMap.js.map +1 -0
  90. package/build/internal/EntityDataManager.d.ts +16 -16
  91. package/build/internal/EntityDataManager.js +42 -45
  92. package/build/internal/EntityDataManager.js.map +1 -1
  93. package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
  94. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  95. package/build/internal/EntityLoadInterfaces.d.ts +104 -0
  96. package/build/internal/EntityLoadInterfaces.js +25 -0
  97. package/build/internal/EntityLoadInterfaces.js.map +1 -0
  98. package/build/internal/EntityTableDataCoordinator.d.ts +6 -6
  99. package/build/internal/EntityTableDataCoordinator.js.map +1 -1
  100. package/build/internal/ReadThroughEntityCache.d.ts +17 -16
  101. package/build/internal/ReadThroughEntityCache.js +36 -36
  102. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  103. package/build/internal/SingleFieldHolder.d.ts +34 -0
  104. package/build/internal/SingleFieldHolder.js +90 -0
  105. package/build/internal/SingleFieldHolder.js.map +1 -0
  106. package/build/metrics/EntityMetricsUtils.d.ts +2 -1
  107. package/build/metrics/EntityMetricsUtils.js.map +1 -1
  108. package/build/metrics/IEntityMetricsAdapter.d.ts +5 -0
  109. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  110. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
  111. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  112. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
  113. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  114. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
  115. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  116. package/build/rules/PrivacyPolicyRule.d.ts +2 -2
  117. package/build/tsconfig.build.tsbuildinfo +1 -0
  118. package/build/utils/EntityPrivacyUtils.d.ts +4 -4
  119. package/build/utils/EntityPrivacyUtils.js.map +1 -1
  120. package/build/utils/collections/SerializableKeyMap.d.ts +27 -0
  121. package/build/utils/collections/SerializableKeyMap.js +60 -0
  122. package/build/utils/collections/SerializableKeyMap.js.map +1 -0
  123. package/build/utils/collections/maps.js +1 -2
  124. package/build/utils/collections/maps.js.map +1 -1
  125. package/build/utils/collections/sets.d.ts +1 -0
  126. package/build/utils/collections/sets.js +7 -0
  127. package/build/utils/collections/sets.js.map +1 -0
  128. package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +1 -1
  129. package/package.json +8 -5
  130. package/src/AuthorizationResultBasedEntityAssociationLoader.ts +58 -53
  131. package/src/AuthorizationResultBasedEntityLoader.ts +194 -81
  132. package/src/AuthorizationResultBasedEntityMutator.ts +71 -45
  133. package/src/ComposedEntityCacheAdapter.ts +55 -46
  134. package/src/ComposedSecondaryEntityCache.ts +5 -2
  135. package/src/EnforcingEntityAssociationLoader.ts +52 -44
  136. package/src/EnforcingEntityCreator.ts +5 -5
  137. package/src/EnforcingEntityDeleter.ts +5 -5
  138. package/src/EnforcingEntityLoader.ts +158 -21
  139. package/src/EnforcingEntityUpdater.ts +5 -5
  140. package/src/Entity.ts +185 -29
  141. package/src/EntityAssociationLoader.ts +6 -6
  142. package/src/EntityCompanion.ts +11 -11
  143. package/src/EntityCompanionProvider.ts +21 -18
  144. package/src/EntityConfiguration.ts +123 -9
  145. package/src/EntityCreator.ts +7 -7
  146. package/src/EntityDatabaseAdapter.ts +51 -28
  147. package/src/EntityDeleter.ts +7 -7
  148. package/src/EntityFieldDefinition.ts +32 -12
  149. package/src/EntityFields.ts +49 -12
  150. package/src/EntityLoader.ts +8 -8
  151. package/src/EntityLoaderFactory.ts +8 -8
  152. package/src/EntityLoaderUtils.ts +39 -10
  153. package/src/EntityMutationInfo.ts +6 -6
  154. package/src/EntityMutationTriggerConfiguration.ts +68 -20
  155. package/src/EntityMutationValidator.ts +4 -4
  156. package/src/EntityMutatorFactory.ts +13 -13
  157. package/src/EntityPrivacyPolicy.ts +50 -26
  158. package/src/EntitySecondaryCacheLoader.ts +6 -6
  159. package/src/EntityUpdater.ts +7 -7
  160. package/src/GenericEntityCacheAdapter.ts +39 -28
  161. package/src/GenericSecondaryEntityCache.ts +6 -3
  162. package/src/IEntityCacheAdapter.ts +45 -25
  163. package/src/IEntityCacheAdapterProvider.ts +3 -3
  164. package/src/IEntityDatabaseAdapterProvider.ts +3 -3
  165. package/src/IEntityGenericCacher.ts +33 -5
  166. package/src/ReadonlyEntity.ts +129 -16
  167. package/src/ViewerContext.ts +5 -5
  168. package/src/ViewerScopedEntityCompanion.ts +7 -7
  169. package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
  170. package/src/ViewerScopedEntityLoaderFactory.ts +7 -7
  171. package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
  172. package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +41 -72
  173. package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -13
  174. package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +367 -69
  175. package/src/__tests__/ComposedCacheAdapter-test.ts +235 -117
  176. package/src/__tests__/EnforcingEntityLoader-test.ts +135 -1
  177. package/src/__tests__/Entity-test.ts +64 -11
  178. package/src/__tests__/EntityAssociationLoader-test.ts +6 -8
  179. package/src/__tests__/EntityCommonUseCases-test.ts +25 -28
  180. package/src/__tests__/EntityCompanion-test.ts +4 -4
  181. package/src/__tests__/EntityCompanionProvider-test.ts +9 -8
  182. package/src/__tests__/EntityConfiguration-test.ts +85 -6
  183. package/src/__tests__/EntityDatabaseAdapter-test.ts +113 -17
  184. package/src/__tests__/EntityEdges-test.ts +135 -138
  185. package/src/__tests__/EntityFields-test.ts +2 -2
  186. package/src/__tests__/EntityLoader-test.ts +5 -7
  187. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +17 -19
  188. package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +73 -0
  189. package/src/__tests__/EntityMutator-test.ts +74 -46
  190. package/src/__tests__/EntityPrivacyPolicy-test.ts +51 -74
  191. package/src/__tests__/EntityQueryContext-test.ts +1 -1
  192. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +9 -9
  193. package/src/__tests__/EntitySelfReferentialEdges-test.ts +119 -122
  194. package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
  195. package/src/__tests__/ReadonlyEntity-test.ts +49 -9
  196. package/src/__tests__/ViewerContext-test.ts +1 -1
  197. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +5 -2
  198. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +1 -1
  199. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +12 -3
  200. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +25 -27
  201. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +28 -34
  202. package/src/entityUtils.ts +4 -1
  203. package/src/errors/EntityInvalidFieldValueError.ts +5 -5
  204. package/src/errors/EntityNotAuthorizedError.ts +3 -3
  205. package/src/errors/EntityNotFoundError.ts +5 -5
  206. package/src/index.ts +7 -7
  207. package/src/internal/CompositeFieldHolder.ts +218 -0
  208. package/src/internal/CompositeFieldValueMap.ts +78 -0
  209. package/src/internal/EntityDataManager.ts +107 -96
  210. package/src/internal/EntityFieldTransformationUtils.ts +33 -14
  211. package/src/internal/EntityLoadInterfaces.ts +143 -0
  212. package/src/internal/EntityTableDataCoordinator.ts +8 -5
  213. package/src/internal/ReadThroughEntityCache.ts +63 -50
  214. package/src/internal/SingleFieldHolder.ts +131 -0
  215. package/src/internal/__tests__/CompositeFieldHolder-test.ts +25 -0
  216. package/src/internal/__tests__/CompositeFieldValueMap-test.ts +43 -0
  217. package/src/internal/__tests__/EntityDataManager-test.ts +308 -91
  218. package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -2
  219. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +315 -107
  220. package/src/metrics/EntityMetricsUtils.ts +7 -2
  221. package/src/metrics/IEntityMetricsAdapter.ts +6 -0
  222. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
  223. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
  224. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
  225. package/src/rules/PrivacyPolicyRule.ts +4 -4
  226. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +1 -1
  227. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +1 -1
  228. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +1 -1
  229. package/src/utils/EntityPrivacyUtils.ts +72 -30
  230. package/src/utils/{testing → __testfixtures__}/PrivacyPolicyRuleTestUtils.ts +26 -26
  231. package/src/{testfixtures → utils/__testfixtures__}/SimpleTestEntity.ts +16 -15
  232. package/src/utils/__testfixtures__/StubCacheAdapter.ts +164 -0
  233. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapter.ts +19 -12
  234. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapterProvider.ts +4 -4
  235. package/src/utils/__testfixtures__/TSMockitoExtensions.ts +69 -0
  236. package/src/{testfixtures → utils/__testfixtures__}/TestEntity.ts +21 -15
  237. package/src/{testfixtures → utils/__testfixtures__}/TestEntity2.ts +16 -15
  238. package/src/{testfixtures → utils/__testfixtures__}/TestEntityWithMutationTriggers.ts +23 -22
  239. package/src/{testfixtures → utils/__testfixtures__}/TestViewerContext.ts +1 -1
  240. package/src/utils/{testing → __testfixtures__}/describeFieldTestCase.ts +1 -1
  241. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +81 -113
  242. package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +31 -30
  243. package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +1 -1
  244. package/src/utils/collections/SerializableKeyMap.ts +84 -0
  245. package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +119 -0
  246. package/src/utils/collections/__tests__/sets-test.ts +17 -0
  247. package/src/utils/collections/maps.ts +7 -8
  248. package/src/utils/collections/sets.ts +3 -0
  249. package/src/utils/mergeEntityMutationTriggerConfigurations.ts +5 -5
  250. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
  251. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -273
  252. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
  253. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
  254. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -110
  255. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
  256. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
  257. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -401
  258. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
  259. package/build/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
  260. package/build/__tests__/ComposedCacheAdapter-test.js +0 -229
  261. package/build/__tests__/ComposedCacheAdapter-test.js.map +0 -1
  262. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
  263. package/build/__tests__/ComposedSecondaryEntityCache-test.js +0 -66
  264. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
  265. package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
  266. package/build/__tests__/EnforcingEntityAssociationLoader-test.js +0 -115
  267. package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
  268. package/build/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
  269. package/build/__tests__/EnforcingEntityLoader-test.js +0 -253
  270. package/build/__tests__/EnforcingEntityLoader-test.js.map +0 -1
  271. package/build/__tests__/Entity-test.d.ts +0 -1
  272. package/build/__tests__/Entity-test.js +0 -54
  273. package/build/__tests__/Entity-test.js.map +0 -1
  274. package/build/__tests__/EntityAssociationLoader-test.d.ts +0 -1
  275. package/build/__tests__/EntityAssociationLoader-test.js +0 -30
  276. package/build/__tests__/EntityAssociationLoader-test.js.map +0 -1
  277. package/build/__tests__/EntityCommonUseCases-test.d.ts +0 -1
  278. package/build/__tests__/EntityCommonUseCases-test.js +0 -154
  279. package/build/__tests__/EntityCommonUseCases-test.js.map +0 -1
  280. package/build/__tests__/EntityCompanion-test.d.ts +0 -1
  281. package/build/__tests__/EntityCompanion-test.js +0 -77
  282. package/build/__tests__/EntityCompanion-test.js.map +0 -1
  283. package/build/__tests__/EntityCompanionProvider-test.d.ts +0 -1
  284. package/build/__tests__/EntityCompanionProvider-test.js +0 -54
  285. package/build/__tests__/EntityCompanionProvider-test.js.map +0 -1
  286. package/build/__tests__/EntityConfiguration-test.d.ts +0 -1
  287. package/build/__tests__/EntityConfiguration-test.js +0 -103
  288. package/build/__tests__/EntityConfiguration-test.js.map +0 -1
  289. package/build/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
  290. package/build/__tests__/EntityDatabaseAdapter-test.js +0 -146
  291. package/build/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
  292. package/build/__tests__/EntityEdges-test.d.ts +0 -1
  293. package/build/__tests__/EntityEdges-test.js +0 -755
  294. package/build/__tests__/EntityEdges-test.js.map +0 -1
  295. package/build/__tests__/EntityFields-test.d.ts +0 -1
  296. package/build/__tests__/EntityFields-test.js +0 -63
  297. package/build/__tests__/EntityFields-test.js.map +0 -1
  298. package/build/__tests__/EntityLoader-test.d.ts +0 -1
  299. package/build/__tests__/EntityLoader-test.js +0 -36
  300. package/build/__tests__/EntityLoader-test.js.map +0 -1
  301. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
  302. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -77
  303. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
  304. package/build/__tests__/EntityMutator-test.d.ts +0 -1
  305. package/build/__tests__/EntityMutator-test.js +0 -741
  306. package/build/__tests__/EntityMutator-test.js.map +0 -1
  307. package/build/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
  308. package/build/__tests__/EntityPrivacyPolicy-test.js +0 -463
  309. package/build/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
  310. package/build/__tests__/EntityQueryContext-test.d.ts +0 -1
  311. package/build/__tests__/EntityQueryContext-test.js +0 -116
  312. package/build/__tests__/EntityQueryContext-test.js.map +0 -1
  313. package/build/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
  314. package/build/__tests__/EntitySecondaryCacheLoader-test.js +0 -60
  315. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
  316. package/build/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
  317. package/build/__tests__/EntitySelfReferentialEdges-test.js +0 -247
  318. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
  319. package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
  320. package/build/__tests__/GenericEntityCacheAdapter-test.js +0 -80
  321. package/build/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
  322. package/build/__tests__/ReadonlyEntity-test.d.ts +0 -1
  323. package/build/__tests__/ReadonlyEntity-test.js +0 -178
  324. package/build/__tests__/ReadonlyEntity-test.js.map +0 -1
  325. package/build/__tests__/ViewerContext-test.d.ts +0 -1
  326. package/build/__tests__/ViewerContext-test.js +0 -30
  327. package/build/__tests__/ViewerContext-test.js.map +0 -1
  328. package/build/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
  329. package/build/__tests__/ViewerScopedEntityCompanion-test.js +0 -20
  330. package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
  331. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
  332. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -20
  333. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
  334. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
  335. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -23
  336. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
  337. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
  338. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -22
  339. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
  340. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
  341. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -129
  342. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
  343. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
  344. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -136
  345. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
  346. package/build/__tests__/entityUtils-test.d.ts +0 -1
  347. package/build/__tests__/entityUtils-test.js +0 -87
  348. package/build/__tests__/entityUtils-test.js.map +0 -1
  349. package/build/internal/__tests__/EntityDataManager-test.d.ts +0 -1
  350. package/build/internal/__tests__/EntityDataManager-test.js +0 -373
  351. package/build/internal/__tests__/EntityDataManager-test.js.map +0 -1
  352. package/build/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
  353. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -136
  354. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
  355. package/build/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
  356. package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -206
  357. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
  358. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
  359. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -21
  360. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
  361. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
  362. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -21
  363. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
  364. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
  365. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -21
  366. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
  367. package/build/testfixtures/DateIDTestEntity.d.ts +0 -19
  368. package/build/testfixtures/DateIDTestEntity.js +0 -48
  369. package/build/testfixtures/DateIDTestEntity.js.map +0 -1
  370. package/build/testfixtures/SimpleTestEntity.d.ts +0 -20
  371. package/build/testfixtures/SimpleTestEntity.js +0 -48
  372. package/build/testfixtures/SimpleTestEntity.js.map +0 -1
  373. package/build/testfixtures/TestEntity.d.ts +0 -30
  374. package/build/testfixtures/TestEntity.js +0 -93
  375. package/build/testfixtures/TestEntity.js.map +0 -1
  376. package/build/testfixtures/TestEntity2.d.ts +0 -20
  377. package/build/testfixtures/TestEntity2.js +0 -51
  378. package/build/testfixtures/TestEntity2.js.map +0 -1
  379. package/build/testfixtures/TestEntityNumberKey.d.ts +0 -19
  380. package/build/testfixtures/TestEntityNumberKey.js +0 -48
  381. package/build/testfixtures/TestEntityNumberKey.js.map +0 -1
  382. package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +0 -36
  383. package/build/testfixtures/TestEntityWithMutationTriggers.js +0 -82
  384. package/build/testfixtures/TestEntityWithMutationTriggers.js.map +0 -1
  385. package/build/testfixtures/TestViewerContext.d.ts +0 -3
  386. package/build/testfixtures/TestViewerContext.js +0 -10
  387. package/build/testfixtures/TestViewerContext.js.map +0 -1
  388. package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
  389. package/build/utils/__tests__/EntityPrivacyUtils-test.js +0 -520
  390. package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
  391. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
  392. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -181
  393. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
  394. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
  395. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -26
  396. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
  397. package/build/utils/collections/__tests__/maps-test.d.ts +0 -1
  398. package/build/utils/collections/__tests__/maps-test.js +0 -120
  399. package/build/utils/collections/__tests__/maps-test.js.map +0 -1
  400. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +0 -28
  401. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +0 -52
  402. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +0 -1
  403. package/build/utils/testing/StubCacheAdapter.d.ts +0 -27
  404. package/build/utils/testing/StubCacheAdapter.js +0 -86
  405. package/build/utils/testing/StubCacheAdapter.js.map +0 -1
  406. package/build/utils/testing/StubDatabaseAdapter.d.ts +0 -25
  407. package/build/utils/testing/StubDatabaseAdapter.js +0 -191
  408. package/build/utils/testing/StubDatabaseAdapter.js.map +0 -1
  409. package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +0 -7
  410. package/build/utils/testing/StubDatabaseAdapterProvider.js +0 -14
  411. package/build/utils/testing/StubDatabaseAdapterProvider.js.map +0 -1
  412. package/build/utils/testing/StubQueryContextProvider.d.ts +0 -7
  413. package/build/utils/testing/StubQueryContextProvider.js +0 -19
  414. package/build/utils/testing/StubQueryContextProvider.js.map +0 -1
  415. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
  416. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -42
  417. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
  418. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
  419. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +0 -402
  420. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +0 -1
  421. package/build/utils/testing/createUnitTestEntityCompanionProvider.d.ts +0 -7
  422. package/build/utils/testing/createUnitTestEntityCompanionProvider.js +0 -36
  423. package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +0 -1
  424. package/build/utils/testing/describeFieldTestCase.d.ts +0 -2
  425. package/build/utils/testing/describeFieldTestCase.js +0 -18
  426. package/build/utils/testing/describeFieldTestCase.js.map +0 -1
  427. package/src/testfixtures/DateIDTestEntity.ts +0 -59
  428. package/src/testfixtures/TestEntityNumberKey.ts +0 -59
  429. package/src/utils/testing/StubCacheAdapter.ts +0 -122
  430. package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +0 -42
  431. package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +0 -548
  432. /package/src/utils/{testing → __testfixtures__}/StubQueryContextProvider.ts +0 -0
  433. /package/src/utils/{testing → __testfixtures__}/createUnitTestEntityCompanionProvider.ts +0 -0
@@ -1 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const results_1 = require("@expo/results");
4
- const entityUtils_1 = require("../entityUtils");
5
- describe(entityUtils_1.enforceResultsAsync, () => {
6
- it('throws when any result is an error', async () => {
7
- const error = new Error('hi');
8
- const results = Promise.resolve([(0, results_1.result)(error), (0, results_1.result)(3)]);
9
- await expect((0, entityUtils_1.enforceResultsAsync)(results)).rejects.toEqual(error);
10
- });
11
- it('returns values when results are all value', async () => {
12
- const results = Promise.resolve([(0, results_1.result)(2), (0, results_1.result)(3)]);
13
- await expect((0, entityUtils_1.enforceResultsAsync)(results)).resolves.toEqual([2, 3]);
14
- });
15
- });
16
- describe(entityUtils_1.successfulResults, () => {
17
- it('filters out failed results', () => {
18
- const result1 = (0, results_1.result)(1);
19
- const result2 = (0, results_1.result)(new Error('hello'));
20
- const result3 = (0, results_1.result)(1);
21
- const allResults = [result1, result2, result3];
22
- expect((0, entityUtils_1.successfulResults)(allResults)).toEqual([result1, result3]);
23
- });
24
- });
25
- describe(entityUtils_1.failedResults, () => {
26
- it('filters out successful results', () => {
27
- const result1 = (0, results_1.result)(1);
28
- const result2 = (0, results_1.result)(new Error('hello'));
29
- const result3 = (0, results_1.result)(1);
30
- const allResults = [result1, result2, result3];
31
- expect((0, entityUtils_1.failedResults)(allResults)).toEqual([result2]);
32
- });
33
- });
34
- describe(entityUtils_1.successfulResultsFilterMap, () => {
35
- it('filters out failed results', () => {
36
- const result1 = (0, results_1.result)(1);
37
- const result2 = (0, results_1.result)(new Error('hello'));
38
- const result3 = (0, results_1.result)(1);
39
- const allResults = new Map(Object.entries({
40
- a: result1,
41
- b: result2,
42
- c: result3,
43
- }));
44
- const resultingMap = (0, entityUtils_1.successfulResultsFilterMap)(allResults);
45
- expect(resultingMap.get('a')).toEqual(result1);
46
- expect(resultingMap.get('b')).toBeUndefined();
47
- expect(resultingMap.get('c')).toEqual(result3);
48
- });
49
- });
50
- describe(entityUtils_1.failedResultsFilterMap, () => {
51
- it('filters out successful results', () => {
52
- const result1 = (0, results_1.result)(1);
53
- const result2 = (0, results_1.result)(new Error('hello'));
54
- const result3 = (0, results_1.result)(1);
55
- const allResults = new Map(Object.entries({
56
- a: result1,
57
- b: result2,
58
- c: result3,
59
- }));
60
- const resultingMap = (0, entityUtils_1.failedResultsFilterMap)(allResults);
61
- expect(resultingMap.get('a')).toBeUndefined();
62
- expect(resultingMap.get('b')).toEqual(result2);
63
- expect(resultingMap.get('c')).toBeUndefined();
64
- });
65
- });
66
- describe(entityUtils_1.pick, () => {
67
- it('picks specified keys', () => {
68
- const object = {
69
- a: 1,
70
- b: 2,
71
- c: 3,
72
- };
73
- expect((0, entityUtils_1.pick)(object, ['a', 'b'])).toEqual({
74
- a: 1,
75
- b: 2,
76
- });
77
- });
78
- });
79
- describe(entityUtils_1.partitionArray, () => {
80
- it('partitions array', () => {
81
- const arr = [true, false, true, true, false];
82
- const [as, bs] = (0, entityUtils_1.partitionArray)(arr, (val) => val === true);
83
- expect(as).toMatchObject([true, true, true]);
84
- expect(bs).toMatchObject([false, false]);
85
- });
86
- });
87
- //# sourceMappingURL=entityUtils-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entityUtils-test.js","sourceRoot":"","sources":["../../src/__tests__/entityUtils-test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,373 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const ts_mockito_1 = require("ts-mockito");
40
- const IEntityMetricsAdapter_1 = require("../../metrics/IEntityMetricsAdapter");
41
- const NoOpEntityMetricsAdapter_1 = __importDefault(require("../../metrics/NoOpEntityMetricsAdapter"));
42
- const TestEntity_1 = __importStar(require("../../testfixtures/TestEntity"));
43
- const StubCacheAdapter_1 = require("../../utils/testing/StubCacheAdapter");
44
- const StubDatabaseAdapter_1 = __importDefault(require("../../utils/testing/StubDatabaseAdapter"));
45
- const StubQueryContextProvider_1 = __importDefault(require("../../utils/testing/StubQueryContextProvider"));
46
- const EntityDataManager_1 = __importDefault(require("../EntityDataManager"));
47
- const ReadThroughEntityCache_1 = __importDefault(require("../ReadThroughEntityCache"));
48
- const getObjects = () => new Map([
49
- [
50
- TestEntity_1.testEntityConfiguration.tableName,
51
- [
52
- {
53
- customIdField: '1',
54
- testIndexedField: 'unique1',
55
- stringField: 'hello',
56
- intField: 1,
57
- dateField: new Date(),
58
- nullableField: null,
59
- },
60
- {
61
- customIdField: '2',
62
- testIndexedField: 'unique2',
63
- stringField: 'hello',
64
- intField: 1,
65
- dateField: new Date(),
66
- nullableField: null,
67
- },
68
- {
69
- customIdField: '3',
70
- testIndexedField: 'unique3',
71
- stringField: 'world',
72
- intField: 1,
73
- dateField: new Date(),
74
- nullableField: null,
75
- },
76
- ],
77
- ],
78
- ]);
79
- describe(EntityDataManager_1.default, () => {
80
- it('loads from db with a no-cache adapter', async () => {
81
- const objects = getObjects();
82
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
83
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
84
- const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
85
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
86
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
87
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
88
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
89
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
90
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
91
- const entityDatas = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['2']);
92
- expect(entityDatas.get('2')).toHaveLength(1);
93
- expect(dbSpy).toHaveBeenCalled();
94
- expect(cacheSpy).toHaveBeenCalled();
95
- dbSpy.mockClear();
96
- cacheSpy.mockClear();
97
- const entityDatas2 = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', ['unique2', 'unique3']);
98
- expect(entityDatas2.get('unique2')).toHaveLength(1);
99
- expect(entityDatas2.get('unique3')).toHaveLength(1);
100
- expect(dbSpy).toHaveBeenCalled();
101
- expect(cacheSpy).toHaveBeenCalled();
102
- dbSpy.mockClear();
103
- cacheSpy.mockClear();
104
- });
105
- it('loads from a caching adaptor', async () => {
106
- const objects = getObjects();
107
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
108
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
109
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
110
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
111
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
112
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
113
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
114
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
115
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
116
- const entityDatas = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['1']);
117
- expect(entityDatas.get('1')).toHaveLength(1);
118
- expect(dbSpy).toHaveBeenCalled();
119
- expect(cacheSpy).toHaveBeenCalled();
120
- dbSpy.mockClear();
121
- cacheSpy.mockClear();
122
- const entityDatas2 = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', ['unique2', 'unique3']);
123
- expect(entityDatas2.get('unique2')).toHaveLength(1);
124
- expect(entityDatas2.get('unique3')).toHaveLength(1);
125
- expect(dbSpy).toHaveBeenCalled();
126
- expect(cacheSpy).toHaveBeenCalled();
127
- dbSpy.mockClear();
128
- cacheSpy.mockClear();
129
- });
130
- it('loads from a caching adapter with a cache hit', async () => {
131
- const objects = getObjects();
132
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
133
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
134
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
135
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
136
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
137
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
138
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
139
- // use second data manager to ensure that cache is hit instead of data loader
140
- const entityDataManager2 = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
141
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
142
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
143
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
144
- 'unique2',
145
- ]);
146
- await entityDataManager2.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
147
- 'unique2',
148
- ]);
149
- expect(dbSpy).toHaveBeenCalledTimes(1);
150
- expect(cacheSpy).toHaveBeenCalledTimes(2);
151
- dbSpy.mockReset();
152
- cacheSpy.mockReset();
153
- });
154
- it('loads from data loader for same query', async () => {
155
- const objects = getObjects();
156
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
157
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
158
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
159
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
160
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
161
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
162
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
163
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
164
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
165
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
166
- 'unique2',
167
- ]);
168
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
169
- 'unique2',
170
- ]);
171
- expect(dbSpy).toHaveBeenCalledTimes(1);
172
- expect(cacheSpy).toHaveBeenCalledTimes(1);
173
- dbSpy.mockReset();
174
- cacheSpy.mockReset();
175
- });
176
- it('loads and in-memory caches (dataloader) non-unique, non-cacheable loads', async () => {
177
- const objects = getObjects();
178
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
179
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
180
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
181
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
182
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
183
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
184
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
185
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
186
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
187
- const entityData = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'stringField', ['hello', 'world']);
188
- const entityData2 = await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'stringField', ['hello', 'world']);
189
- expect(dbSpy).toHaveBeenCalledTimes(1);
190
- expect(cacheSpy).toHaveBeenCalledTimes(1);
191
- expect(entityData).toMatchObject(entityData2);
192
- expect(entityData.get('hello')).toHaveLength(2);
193
- expect(entityData.get('world')).toHaveLength(1);
194
- dbSpy.mockReset();
195
- cacheSpy.mockReset();
196
- });
197
- it('invalidates objects', async () => {
198
- const objects = getObjects();
199
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
200
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
201
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
202
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
203
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
204
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
205
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
206
- const objectInQuestion = objects.get(TestEntity_1.testEntityConfiguration.tableName)[1];
207
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
208
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
209
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
210
- objectInQuestion['testIndexedField'],
211
- ]);
212
- await entityDataManager.invalidateObjectFieldsAsync(objectInQuestion);
213
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
214
- objectInQuestion['testIndexedField'],
215
- ]);
216
- expect(dbSpy).toHaveBeenCalledTimes(2);
217
- expect(cacheSpy).toHaveBeenCalledTimes(2);
218
- dbSpy.mockReset();
219
- cacheSpy.mockReset();
220
- });
221
- it('invalidates all fields for an object', async () => {
222
- const objects = getObjects();
223
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
224
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
225
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
226
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
227
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
228
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
229
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
230
- const objectInQuestion = objects.get(TestEntity_1.testEntityConfiguration.tableName)[1];
231
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
232
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
233
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'testIndexedField', [
234
- objectInQuestion['testIndexedField'],
235
- ]);
236
- await entityDataManager.invalidateObjectFieldsAsync(objectInQuestion);
237
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', [
238
- objectInQuestion['customIdField'],
239
- ]);
240
- expect(dbSpy).toHaveBeenCalledTimes(2);
241
- expect(cacheSpy).toHaveBeenCalledTimes(2);
242
- dbSpy.mockReset();
243
- cacheSpy.mockReset();
244
- });
245
- it('loads only from DB when in transaction', async () => {
246
- const objects = getObjects();
247
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
248
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
249
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
250
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
251
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
252
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
253
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
254
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
255
- const entityDatas = await new StubQueryContextProvider_1.default().runInTransactionAsync(async (queryContext) => {
256
- return await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', [
257
- '1',
258
- ]);
259
- }, {});
260
- expect(entityDatas.get('1')).toHaveLength(1);
261
- expect(dbSpy).toHaveBeenCalled();
262
- expect(cacheSpy).not.toHaveBeenCalled();
263
- dbSpy.mockReset();
264
- cacheSpy.mockReset();
265
- });
266
- it('loads by field equality conjunction and does not cache', async () => {
267
- const objects = getObjects();
268
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
269
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
270
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
271
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
272
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
273
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
274
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
275
- const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyByFieldEqualityConjunctionAsync');
276
- const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
277
- const entityDatas = await entityDataManager.loadManyByFieldEqualityConjunctionAsync(queryContext, [
278
- {
279
- fieldName: 'stringField',
280
- fieldValue: 'hello',
281
- },
282
- {
283
- fieldName: 'intField',
284
- fieldValue: 1,
285
- },
286
- ], {});
287
- expect(entityDatas).toHaveLength(2);
288
- expect(dbSpy).toHaveBeenCalled();
289
- expect(cacheSpy).not.toHaveBeenCalled();
290
- dbSpy.mockReset();
291
- cacheSpy.mockReset();
292
- });
293
- it('handles DB errors as expected', async () => {
294
- const databaseAdapterMock = (0, ts_mockito_1.mock)();
295
- (0, ts_mockito_1.when)(databaseAdapterMock.fetchManyWhereAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenReject(new Error('DB query failed'));
296
- const databaseAdapter = (0, ts_mockito_1.instance)(databaseAdapterMock);
297
- const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
298
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
299
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
300
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
301
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
302
- await expect(entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['2'])).rejects.toThrow();
303
- });
304
- it('records metrics appropriately', async () => {
305
- const metricsAdapterMock = (0, ts_mockito_1.mock)();
306
- const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
307
- const objects = getObjects();
308
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
309
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
310
- const cacheAdapterProvider = new StubCacheAdapter_1.InMemoryFullCacheStubCacheAdapterProvider();
311
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
312
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
313
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), metricsAdapter, TestEntity_1.default.name);
314
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
315
- await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['1']);
316
- (0, ts_mockito_1.verify)(metricsAdapterMock.logDataManagerLoadEvent((0, ts_mockito_1.objectContaining)({
317
- type: IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY,
318
- entityClassName: TestEntity_1.default.name,
319
- count: 1,
320
- }))).once();
321
- await entityDataManager.loadManyByFieldEqualityConjunctionAsync(queryContext, [
322
- {
323
- fieldName: 'customIdField',
324
- fieldValue: '1',
325
- },
326
- ], {});
327
- (0, ts_mockito_1.verify)(metricsAdapterMock.logDataManagerLoadEvent((0, ts_mockito_1.objectContaining)({
328
- type: IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_EQUALITY_CONJUNCTION,
329
- entityClassName: TestEntity_1.default.name,
330
- count: 1,
331
- }))).once();
332
- (0, ts_mockito_1.verify)(metricsAdapterMock.incrementDataManagerLoadCount((0, ts_mockito_1.deepEqual)({
333
- type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATALOADER,
334
- fieldValueCount: 1,
335
- entityClassName: TestEntity_1.default.name,
336
- }))).once();
337
- (0, ts_mockito_1.verify)(metricsAdapterMock.incrementDataManagerLoadCount((0, ts_mockito_1.deepEqual)({
338
- type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.CACHE,
339
- fieldValueCount: 1,
340
- entityClassName: TestEntity_1.default.name,
341
- }))).once();
342
- (0, ts_mockito_1.verify)(metricsAdapterMock.incrementDataManagerLoadCount((0, ts_mockito_1.deepEqual)({
343
- type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATABASE,
344
- fieldValueCount: 1,
345
- entityClassName: TestEntity_1.default.name,
346
- }))).once();
347
- (0, ts_mockito_1.resetCalls)(metricsAdapterMock);
348
- const databaseAdapterSpy = (0, ts_mockito_1.spy)(databaseAdapter);
349
- (0, ts_mockito_1.when)(databaseAdapterSpy.fetchManyByRawWhereClauseAsync((0, ts_mockito_1.anything)(), (0, ts_mockito_1.anyString)(), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).thenResolve([]);
350
- await entityDataManager.loadManyByRawWhereClauseAsync(queryContext, '', [], {});
351
- (0, ts_mockito_1.verify)(metricsAdapterMock.logDataManagerLoadEvent((0, ts_mockito_1.objectContaining)({
352
- type: IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_RAW,
353
- entityClassName: TestEntity_1.default.name,
354
- count: 0,
355
- }))).once();
356
- (0, ts_mockito_1.verify)(metricsAdapterMock.incrementDataManagerLoadCount((0, ts_mockito_1.anything)())).never();
357
- });
358
- it('throws when a load-by value is null or undefined', async () => {
359
- const objects = getObjects();
360
- const dataStore = StubDatabaseAdapter_1.default.convertFieldObjectsToDataStore(TestEntity_1.testEntityConfiguration, objects);
361
- const databaseAdapter = new StubDatabaseAdapter_1.default(TestEntity_1.testEntityConfiguration, dataStore);
362
- const cacheAdapterProvider = new StubCacheAdapter_1.NoCacheStubCacheAdapterProvider();
363
- const cacheAdapter = cacheAdapterProvider.getCacheAdapter(TestEntity_1.testEntityConfiguration);
364
- const entityCache = new ReadThroughEntityCache_1.default(TestEntity_1.testEntityConfiguration, cacheAdapter);
365
- const entityDataManager = new EntityDataManager_1.default(databaseAdapter, entityCache, new StubQueryContextProvider_1.default(), new NoOpEntityMetricsAdapter_1.default(), TestEntity_1.default.name);
366
- const queryContext = new StubQueryContextProvider_1.default().getQueryContext();
367
- await expect(entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'nullableField', [null])).rejects.toThrowError('Invalid load: TestEntity (nullableField = null)');
368
- await expect(entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'nullableField', [
369
- undefined,
370
- ])).rejects.toThrowError('Invalid load: TestEntity (nullableField = undefined)');
371
- });
372
- });
373
- //# sourceMappingURL=EntityDataManager-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityDataManager-test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/EntityDataManager-test.ts"],"names":[],"mappings":"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"}