@expo/entity 0.17.0 → 0.21.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 (215) hide show
  1. package/build/EnforcingEntityLoader.js +2 -2
  2. package/build/EnforcingEntityLoader.js.map +1 -1
  3. package/build/Entity.js +8 -2
  4. package/build/Entity.js.map +1 -1
  5. package/build/EntityAssociationLoader.js +3 -3
  6. package/build/EntityAssociationLoader.js.map +1 -1
  7. package/build/EntityCompanion.d.ts +5 -0
  8. package/build/EntityCompanion.js +8 -1
  9. package/build/EntityCompanion.js.map +1 -1
  10. package/build/EntityCompanionProvider.d.ts +1 -1
  11. package/build/EntityCompanionProvider.js +5 -5
  12. package/build/EntityCompanionProvider.js.map +1 -1
  13. package/build/EntityConfiguration.d.ts +1 -1
  14. package/build/EntityConfiguration.js +3 -3
  15. package/build/EntityConfiguration.js.map +1 -1
  16. package/build/EntityDatabaseAdapter.d.ts +4 -4
  17. package/build/EntityDatabaseAdapter.js +13 -13
  18. package/build/EntityDatabaseAdapter.js.map +1 -1
  19. package/build/EntityFieldDefinition.d.ts +77 -0
  20. package/build/EntityFieldDefinition.js +53 -0
  21. package/build/EntityFieldDefinition.js.map +1 -0
  22. package/build/EntityFields.d.ts +1 -77
  23. package/build/EntityFields.js +13 -61
  24. package/build/EntityFields.js.map +1 -1
  25. package/build/EntityLoader.d.ts +3 -1
  26. package/build/EntityLoader.js +19 -15
  27. package/build/EntityLoader.js.map +1 -1
  28. package/build/EntityLoaderFactory.d.ts +3 -1
  29. package/build/EntityLoaderFactory.js +3 -2
  30. package/build/EntityLoaderFactory.js.map +1 -1
  31. package/build/EntityMutationInfo.d.ts +26 -0
  32. package/build/EntityMutationInfo.js +10 -0
  33. package/build/EntityMutationInfo.js.map +1 -0
  34. package/build/EntityMutationTriggerConfiguration.d.ts +4 -4
  35. package/build/EntityMutationValidator.d.ts +3 -3
  36. package/build/EntityMutationValidator.js.map +1 -1
  37. package/build/EntityMutator.d.ts +5 -16
  38. package/build/EntityMutator.js +62 -58
  39. package/build/EntityMutator.js.map +1 -1
  40. package/build/EntityPrivacyPolicy.d.ts +5 -4
  41. package/build/EntityPrivacyPolicy.js +60 -12
  42. package/build/EntityPrivacyPolicy.js.map +1 -1
  43. package/build/EntityQueryContext.d.ts +24 -0
  44. package/build/EntityQueryContext.js +43 -0
  45. package/build/EntityQueryContext.js.map +1 -1
  46. package/build/EntityQueryContextProvider.js +1 -0
  47. package/build/EntityQueryContextProvider.js.map +1 -1
  48. package/build/EntitySecondaryCacheLoader.js +2 -2
  49. package/build/EntitySecondaryCacheLoader.js.map +1 -1
  50. package/build/ReadonlyEntity.js +3 -4
  51. package/build/ReadonlyEntity.js.map +1 -1
  52. package/build/ViewerScopedEntityCompanion.d.ts +5 -0
  53. package/build/ViewerScopedEntityCompanion.js +6 -0
  54. package/build/ViewerScopedEntityCompanion.js.map +1 -1
  55. package/build/__tests__/EnforcingEntityLoader-test.js +82 -82
  56. package/build/__tests__/EnforcingEntityLoader-test.js.map +1 -1
  57. package/build/__tests__/Entity-test.js +6 -6
  58. package/build/__tests__/Entity-test.js.map +1 -1
  59. package/build/__tests__/EntityAssociationLoader-test.js +40 -40
  60. package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
  61. package/build/__tests__/EntityCommonUseCases-test.js +11 -11
  62. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  63. package/build/__tests__/EntityCompanion-test.js +3 -3
  64. package/build/__tests__/EntityCompanion-test.js.map +1 -1
  65. package/build/__tests__/EntityCompanionProvider-test.js +1 -1
  66. package/build/__tests__/EntityCompanionProvider-test.js.map +1 -1
  67. package/build/__tests__/EntityDatabaseAdapter-test.js +12 -12
  68. package/build/__tests__/EntityDatabaseAdapter-test.js.map +1 -1
  69. package/build/__tests__/EntityEdges-test.js +103 -6
  70. package/build/__tests__/EntityEdges-test.js.map +1 -1
  71. package/build/__tests__/EntityFields-test.js +18 -27
  72. package/build/__tests__/EntityFields-test.js.map +1 -1
  73. package/build/__tests__/EntityLoader-constructor-test.d.ts +22 -0
  74. package/build/__tests__/EntityLoader-constructor-test.js +111 -0
  75. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -0
  76. package/build/__tests__/EntityLoader-test.js +72 -64
  77. package/build/__tests__/EntityLoader-test.js.map +1 -1
  78. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +1 -0
  79. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +81 -0
  80. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -0
  81. package/build/__tests__/EntityMutator-test.js +116 -114
  82. package/build/__tests__/EntityMutator-test.js.map +1 -1
  83. package/build/__tests__/EntityPrivacyPolicy-test.js +143 -67
  84. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  85. package/build/__tests__/EntityQueryContext-test.d.ts +1 -0
  86. package/build/__tests__/EntityQueryContext-test.js +56 -0
  87. package/build/__tests__/EntityQueryContext-test.js.map +1 -0
  88. package/build/__tests__/EntitySecondaryCacheLoader-test.js +15 -15
  89. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  90. package/build/__tests__/EntitySelfReferentialEdges-test.js +13 -12
  91. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
  92. package/build/__tests__/ReadonlyEntity-test.js +11 -11
  93. package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
  94. package/build/__tests__/ViewerContext-test.js +2 -2
  95. package/build/__tests__/ViewerContext-test.js.map +1 -1
  96. package/build/__tests__/ViewerScopedEntityCompanion-test.js +2 -2
  97. package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +1 -1
  98. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +2 -2
  99. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +1 -1
  100. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +5 -5
  101. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
  102. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +5 -5
  103. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
  104. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +5 -5
  105. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
  106. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +2 -2
  107. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
  108. package/build/__tests__/entityUtils-test.js +21 -21
  109. package/build/__tests__/entityUtils-test.js.map +1 -1
  110. package/build/index.d.ts +3 -0
  111. package/build/index.js +5 -1
  112. package/build/index.js.map +1 -1
  113. package/build/internal/EntityDataManager.js +8 -7
  114. package/build/internal/EntityDataManager.js.map +1 -1
  115. package/build/internal/EntityFieldTransformationUtils.js +2 -2
  116. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  117. package/build/internal/ReadThroughEntityCache.js +4 -4
  118. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  119. package/build/internal/__tests__/EntityDataManager-test.js +17 -17
  120. package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
  121. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +8 -8
  122. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +1 -1
  123. package/build/internal/__tests__/ReadThroughEntityCache-test.js +48 -48
  124. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  125. package/build/metrics/EntityMetricsUtils.js +1 -1
  126. package/build/metrics/EntityMetricsUtils.js.map +1 -1
  127. package/build/metrics/IEntityMetricsAdapter.d.ts +16 -0
  128. package/build/metrics/IEntityMetricsAdapter.js +6 -1
  129. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  130. package/build/metrics/NoOpEntityMetricsAdapter.d.ts +2 -1
  131. package/build/metrics/NoOpEntityMetricsAdapter.js +1 -0
  132. package/build/metrics/NoOpEntityMetricsAdapter.js.map +1 -1
  133. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +4 -4
  134. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
  135. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +4 -4
  136. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
  137. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +4 -4
  138. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
  139. package/build/testfixtures/DateIDTestEntity.js.map +1 -1
  140. package/build/testfixtures/SimpleTestEntity.js.map +1 -1
  141. package/build/testfixtures/TestEntity.d.ts +5 -5
  142. package/build/testfixtures/TestEntity.js +2 -2
  143. package/build/testfixtures/TestEntity.js.map +1 -1
  144. package/build/testfixtures/TestEntity2.d.ts +5 -5
  145. package/build/testfixtures/TestEntity2.js.map +1 -1
  146. package/build/testfixtures/TestEntityNumberKey.js.map +1 -1
  147. package/build/utils/collections/__tests__/maps-test.js +13 -13
  148. package/build/utils/collections/__tests__/maps-test.js.map +1 -1
  149. package/build/utils/collections/maps.js +1 -1
  150. package/build/utils/collections/maps.js.map +1 -1
  151. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +6 -6
  152. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +1 -1
  153. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
  154. package/build/utils/testing/StubCacheAdapter.js +1 -1
  155. package/build/utils/testing/StubCacheAdapter.js.map +1 -1
  156. package/build/utils/testing/StubDatabaseAdapter.js +6 -6
  157. package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
  158. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +9 -9
  159. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +1 -1
  160. package/build/utils/testing/describeFieldTestCase.d.ts +2 -0
  161. package/build/utils/testing/describeFieldTestCase.js +18 -0
  162. package/build/utils/testing/describeFieldTestCase.js.map +1 -0
  163. package/package.json +2 -1
  164. package/src/Entity.ts +10 -2
  165. package/src/EntityAssociationLoader.ts +1 -1
  166. package/src/EntityCompanion.ts +10 -2
  167. package/src/EntityCompanionProvider.ts +5 -9
  168. package/src/EntityConfiguration.ts +1 -1
  169. package/src/EntityDatabaseAdapter.ts +10 -8
  170. package/src/EntityFieldDefinition.ts +124 -0
  171. package/src/EntityFields.ts +2 -125
  172. package/src/EntityLoader.ts +12 -4
  173. package/src/EntityLoaderFactory.ts +5 -2
  174. package/src/EntityMutationInfo.ts +47 -0
  175. package/src/EntityMutationTriggerConfiguration.ts +5 -5
  176. package/src/EntityMutationValidator.ts +10 -4
  177. package/src/EntityMutator.ts +98 -76
  178. package/src/EntityPrivacyPolicy.ts +77 -19
  179. package/src/EntityQueryContext.ts +54 -0
  180. package/src/EntityQueryContextProvider.ts +1 -0
  181. package/src/ReadonlyEntity.ts +3 -2
  182. package/src/ViewerScopedEntityCompanion.ts +8 -0
  183. package/src/__tests__/Entity-test.ts +8 -8
  184. package/src/__tests__/EntityCommonUseCases-test.ts +4 -4
  185. package/src/__tests__/EntityEdges-test.ts +169 -14
  186. package/src/__tests__/EntityFields-test.ts +2 -21
  187. package/src/__tests__/EntityLoader-constructor-test.ts +177 -0
  188. package/src/__tests__/EntityLoader-test.ts +39 -11
  189. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +105 -0
  190. package/src/__tests__/EntityMutator-test.ts +140 -133
  191. package/src/__tests__/EntityPrivacyPolicy-test.ts +215 -78
  192. package/src/__tests__/EntityQueryContext-test.ts +82 -0
  193. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -9
  194. package/src/__tests__/EntitySelfReferentialEdges-test.ts +6 -5
  195. package/src/__tests__/ViewerContext-test.ts +7 -6
  196. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +11 -10
  197. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +4 -3
  198. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +6 -6
  199. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +4 -4
  200. package/src/index.ts +3 -0
  201. package/src/internal/EntityDataManager.ts +2 -1
  202. package/src/internal/__tests__/EntityDataManager-test.ts +2 -2
  203. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +15 -13
  204. package/src/metrics/EntityMetricsUtils.ts +56 -50
  205. package/src/metrics/IEntityMetricsAdapter.ts +23 -0
  206. package/src/metrics/NoOpEntityMetricsAdapter.ts +2 -0
  207. package/src/testfixtures/DateIDTestEntity.ts +4 -4
  208. package/src/testfixtures/SimpleTestEntity.ts +4 -4
  209. package/src/testfixtures/TestEntity.ts +4 -4
  210. package/src/testfixtures/TestEntity2.ts +4 -4
  211. package/src/testfixtures/TestEntityNumberKey.ts +4 -4
  212. package/src/utils/testing/StubDatabaseAdapter.ts +2 -2
  213. package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +1 -1
  214. package/src/utils/testing/describeFieldTestCase.ts +21 -0
  215. package/CHANGELOG.md +0 -252
@@ -15,7 +15,7 @@ class EnforcingEntityLoader {
15
15
  */
16
16
  async loadManyByFieldEqualingManyAsync(fieldName, fieldValues) {
17
17
  const fieldValuesToResults = await this.entityLoader.loadManyByFieldEqualingManyAsync(fieldName, fieldValues);
18
- return maps_1.mapMap(fieldValuesToResults, (results) => results.map((result) => result.enforceValue()));
18
+ return (0, maps_1.mapMap)(fieldValuesToResults, (results) => results.map((result) => result.enforceValue()));
19
19
  }
20
20
  /**
21
21
  * Enforcing version of entity loader method by the same name.
@@ -57,7 +57,7 @@ class EnforcingEntityLoader {
57
57
  */
58
58
  async loadManyByIDsAsync(ids) {
59
59
  const entityResults = await this.entityLoader.loadManyByIDsAsync(ids);
60
- return maps_1.mapMap(entityResults, (result) => result.enforceValue());
60
+ return (0, maps_1.mapMap)(entityResults, (result) => result.enforceValue());
61
61
  }
62
62
  /**
63
63
  * Enforcing version of entity loader method by the same name.
@@ -1 +1 @@
1
- {"version":3,"file":"EnforcingEntityLoader.js","sourceRoot":"","sources":["../src/EnforcingEntityLoader.ts"],"names":[],"mappings":";;AAKA,mDAAkD;AAElD;;;GAGG;AACH,MAAqB,qBAAqB;IAcxC,YACmB,YAOhB;QAPgB,iBAAY,GAAZ,YAAY,CAO5B;IACA,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,gCAAgC,CACpC,SAAY,EACZ,WAA+C;QAE/C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gCAAgC,CACnF,SAAS,EACT,WAAW,CACZ,CAAC;QACF,OAAO,aAAM,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,4BAA4B,CAChC,SAAY,EACZ,UAAmC;QAEnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CACxE,SAAS,EACT,UAAU,CACX,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAC5B,eAAkB,EAClB,UAAmC;QAEnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACnE,eAAe,EACf,UAAU,CACX,CAAC;QACF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,EAAO;QACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAmB;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtE,OAAO,aAAM,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uCAAuC,CAC3C,qBAA2D,EAC3D,0BAA4D,EAAE;QAE9D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,uCAAuC,CACnF,qBAAqB,EACrB,uBAAuB,CACxB,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,6BAA6B,CACjC,cAAsB,EACtB,QAAwB,EACxB,0BAA4D,EAAE;QAE9D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,6BAA6B,CACzE,cAAc,EACd,QAAQ,EACR,uBAAuB,CACxB,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AApID,wCAoIC"}
1
+ {"version":3,"file":"EnforcingEntityLoader.js","sourceRoot":"","sources":["../src/EnforcingEntityLoader.ts"],"names":[],"mappings":";;AAKA,mDAAkD;AAElD;;;GAGG;AACH,MAAqB,qBAAqB;IAcxC,YACmB,YAOhB;QAPgB,iBAAY,GAAZ,YAAY,CAO5B;IACA,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,gCAAgC,CACpC,SAAY,EACZ,WAA+C;QAE/C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gCAAgC,CACnF,SAAS,EACT,WAAW,CACZ,CAAC;QACF,OAAO,IAAA,aAAM,EAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,4BAA4B,CAChC,SAAY,EACZ,UAAmC;QAEnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CACxE,SAAS,EACT,UAAU,CACX,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAC5B,eAAkB,EAClB,UAAmC;QAEnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACnE,eAAe,EACf,UAAU,CACX,CAAC;QACF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,EAAO;QACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAmB;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtE,OAAO,IAAA,aAAM,EAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uCAAuC,CAC3C,qBAA2D,EAC3D,0BAA4D,EAAE;QAE9D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,uCAAuC,CACnF,qBAAqB,EACrB,uBAAuB,CACxB,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,6BAA6B,CACjC,cAAsB,EACtB,QAAwB,EACxB,0BAA4D,EAAE;QAE9D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,6BAA6B,CACzE,cAAc,EACd,QAAQ,EACR,uBAAuB,CACxB,CAAC;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AApID,wCAoIC"}
package/build/Entity.js CHANGED
@@ -111,8 +111,11 @@ class Entity extends ReadonlyEntity_1.default {
111
111
  .getViewerScopedEntityCompanionForClass(this)
112
112
  .getQueryContextProvider()
113
113
  .getQueryContext()) {
114
+ const companion = existingEntity
115
+ .getViewerContext()
116
+ .getViewerScopedEntityCompanionForClass(this);
114
117
  const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
115
- const evaluationResult = await results_1.asyncResult(privacyPolicy.authorizeUpdateAsync(existingEntity.getViewerContext(), queryContext, existingEntity));
118
+ const evaluationResult = await (0, results_1.asyncResult)(privacyPolicy.authorizeUpdateAsync(existingEntity.getViewerContext(), queryContext, existingEntity, companion.getMetricsAdapter()));
116
119
  return evaluationResult.ok;
117
120
  }
118
121
  /**
@@ -129,8 +132,11 @@ class Entity extends ReadonlyEntity_1.default {
129
132
  .getViewerScopedEntityCompanionForClass(this)
130
133
  .getQueryContextProvider()
131
134
  .getQueryContext()) {
135
+ const companion = existingEntity
136
+ .getViewerContext()
137
+ .getViewerScopedEntityCompanionForClass(this);
132
138
  const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
133
- const evaluationResult = await results_1.asyncResult(privacyPolicy.authorizeDeleteAsync(existingEntity.getViewerContext(), queryContext, existingEntity));
139
+ const evaluationResult = await (0, results_1.asyncResult)(privacyPolicy.authorizeDeleteAsync(existingEntity.getViewerContext(), queryContext, existingEntity, companion.getMetricsAdapter()));
134
140
  return evaluationResult.ok;
135
141
  }
136
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ class EntityAssociationLoader {
19
19
  .getQueryContext()) {
20
20
  const associatedEntityID = this.entity.getField(fieldIdentifyingAssociatedEntity);
21
21
  if (!associatedEntityID) {
22
- return results_1.result(null);
22
+ return (0, results_1.result)(null);
23
23
  }
24
24
  const loader = this.entity
25
25
  .getViewerContext()
@@ -123,11 +123,11 @@ class EntityAssociationLoader {
123
123
  return null;
124
124
  }
125
125
  if (!associatedEntityResult.ok) {
126
- return results_1.result(associatedEntityResult.reason);
126
+ return (0, results_1.result)(associatedEntityResult.reason);
127
127
  }
128
128
  currentEntity = associatedEntityResult.value;
129
129
  }
130
- return results_1.result(currentEntity);
130
+ return (0, results_1.result)(currentEntity);
131
131
  }
132
132
  }
133
133
  exports.default = EntityAssociationLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAssociationLoader.js","sourceRoot":"","sources":["../src/EntityAssociationLoader.ts"],"names":[],"mappings":";;AAAA,2CAA+C;AAQ/C,MAAqB,uBAAuB;IAO1C,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEhD;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAmB7B,gCAAmD,EACnD,qBAOC,EACD,eAAmC,IAAI,CAAC,MAAM;SAC3C,gBAAgB,EAAE;SAClB,sCAAsC,CAAC,qBAAqB,CAAC;SAC7D,uBAAuB,EAAE;SACzB,eAAe,EAAE;QAIpB,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAClF,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO,gBAAM,CAAC,IAAI,CAEjB,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,gBAAgB,EAAE;aAClB,sCAAsC,CAAC,qBAAqB,CAAC;aAC7D,gBAAgB,EAAE;aAClB,OAAO,CAAC,YAAY,CAAC,CAAC;QAEzB,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAE,kBAA+C,CAAC,CAEnF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,+BAA+B,CAkBnC,qBAOC,EACD,qCAA+F,EAC/F,eAAmC,IAAI,CAAC,MAAM;SAC3C,gBAAgB,EAAE;SAClB,sCAAsC,CAAC,qBAAqB,CAAC;SAC7D,uBAAuB,EAAE;SACzB,eAAe,EAAE;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,gBAAgB,EAAE;aAClB,sCAAsC,CAAC,qBAAqB,CAAC;aAC7D,gBAAgB,EAAE;aAClB,OAAO,CAAC,YAAY,CAAC,CAAC;QACzB,OAAO,MAAM,MAAM,CAAC,4BAA4B,CAC9C,qCAAqC,EACrC,MAAa,CACd,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,wCAAwC,CAkB5C,gCAAsE,EACtE,qBAOC,EACD,6BAAuF,EACvF,eAAmC,IAAI,CAAC,MAAM;SAC3C,gBAAgB,EAAE;SAClB,sCAAsC,CAAC,qBAAqB,CAAC;SAC7D,uBAAuB,EAAE;SACzB,eAAe,EAAE;QAEpB,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QACpF,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,gBAAgB,EAAE;aAClB,sCAAsC,CAAC,qBAAqB,CAAC;aAC7D,gBAAgB,EAAE;aAClB,OAAO,CAAC,YAAY,CAAC,CAAC;QACzB,OAAO,MAAM,MAAM,CAAC,wBAAwB,CAC1C,6BAA6B,EAC7B,oBAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,8CAA8C,CAkBlD,gCAAsE,EACtE,qBAOC,EACD,6BAAuF,EACvF,eAAmC,IAAI,CAAC,MAAM;SAC3C,gBAAgB,EAAE;SAClB,sCAAsC,CAAC,qBAAqB,CAAC;SAC7D,uBAAuB,EAAE;SACzB,eAAe,EAAE;QAEpB,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QACpF,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,gBAAgB,EAAE;aAClB,sCAAsC,CAAC,qBAAqB,CAAC;aAC7D,gBAAgB,EAAE;aAClB,OAAO,CAAC,YAAY,CAAC,CAAC;QACzB,OAAO,MAAM,MAAM,CAAC,4BAA4B,CAC9C,6BAA6B,EAC7B,oBAA2B,CAC5B,CAAC;IACJ,CAAC;IAkLD,KAAK,CAAC,gCAAgC,CACpC,cAA+F,EAC/F,YAAiC;QAEjC,IAAI,aAAa,GAAuC,IAAI,CAAC,MAAM,CAAC;QACpE,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC1C,MAAM,EACJ,qBAAqB,EACrB,gCAAgC,EAChC,6BAA6B,GAC9B,GAAG,aAAa,CAAC;YAClB,IAAI,sBAAyE,CAAC;YAC9E,IAAI,6BAA6B,EAAE;gBACjC,sBAAsB,GAAG,MAAM,aAAa;qBACzC,iBAAiB,EAAE;qBACnB,wCAAwC,CACvC,gCAAgC,EAChC,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,CACb,CAAC;aACL;iBAAM;gBACL,MAAM,2BAA2B,GAAG,MAAM,aAAa;qBACpD,iBAAiB,EAAE;qBACnB,yBAAyB,CACxB,gCAAgC,EAChC,qBAAqB,EACrB,YAAY,CACb,CAAC;gBAEJ,IAAI,2BAA2B,CAAC,EAAE,IAAI,2BAA2B,CAAC,KAAK,KAAK,IAAI,EAAE;oBAChF,sBAAsB,GAAG,IAAI,CAAC;iBAC/B;qBAAM;oBACL,sBAAsB,GAAG,2BAA2B,CAAC;iBACtD;aACF;YAED,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE;gBAC9B,OAAO,gBAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;aAC9C;YACD,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC;SAC9C;QACD,OAAO,gBAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;CACF;AA/cD,0CA+cC"}
1
+ {"version":3,"file":"EntityAssociationLoader.js","sourceRoot":"","sources":["../src/EntityAssociationLoader.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface IPrivacyPolicyClass<TPrivacyPolicy> {
17
17
  */
18
18
  export default class EntityCompanion<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TID, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
19
19
  private readonly tableDataCoordinator;
20
+ private readonly metricsAdapter;
20
21
  private readonly entityLoaderFactory;
21
22
  private readonly entityMutatorFactory;
22
23
  constructor(entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, tableDataCoordinator: EntityTableDataCoordinator<TFields>, PrivacyPolicyClass: IPrivacyPolicyClass<TPrivacyPolicy>, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, metricsAdapter: IEntityMetricsAdapter);
@@ -26,4 +27,8 @@ export default class EntityCompanion<TFields, TID extends NonNullable<TFields[TS
26
27
  * Get the query context provider for this entity.
27
28
  */
28
29
  getQueryContextProvider(): EntityQueryContextProvider;
30
+ /**
31
+ * Get the {@link IEntityMetricsAdapter} for this companion.
32
+ */
33
+ getMetricsAdapter(): IEntityMetricsAdapter;
29
34
  }
@@ -11,8 +11,9 @@ const EntityMutatorFactory_1 = __importDefault(require("./EntityMutatorFactory")
11
11
  class EntityCompanion {
12
12
  constructor(entityClass, tableDataCoordinator, PrivacyPolicyClass, mutationValidators, mutationTriggers, metricsAdapter) {
13
13
  this.tableDataCoordinator = tableDataCoordinator;
14
+ this.metricsAdapter = metricsAdapter;
14
15
  const privacyPolicy = new PrivacyPolicyClass();
15
- this.entityLoaderFactory = new EntityLoaderFactory_1.default(tableDataCoordinator.entityConfiguration, entityClass, privacyPolicy, tableDataCoordinator.dataManager);
16
+ this.entityLoaderFactory = new EntityLoaderFactory_1.default(tableDataCoordinator.entityConfiguration, entityClass, privacyPolicy, tableDataCoordinator.dataManager, metricsAdapter);
16
17
  this.entityMutatorFactory = new EntityMutatorFactory_1.default(tableDataCoordinator.entityConfiguration, entityClass, privacyPolicy, mutationValidators, mutationTriggers, this.entityLoaderFactory, tableDataCoordinator.databaseAdapter, metricsAdapter);
17
18
  }
18
19
  getLoaderFactory() {
@@ -27,6 +28,12 @@ class EntityCompanion {
27
28
  getQueryContextProvider() {
28
29
  return this.tableDataCoordinator.getQueryContextProvider();
29
30
  }
31
+ /**
32
+ * Get the {@link IEntityMetricsAdapter} for this companion.
33
+ */
34
+ getMetricsAdapter() {
35
+ return this.metricsAdapter;
36
+ }
30
37
  }
31
38
  exports.default = EntityCompanion;
32
39
  //# sourceMappingURL=EntityCompanion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCompanion.js","sourceRoot":"","sources":["../src/EntityCompanion.ts"],"names":[],"mappings":";;;;;AACA,gFAAwD;AAGxD,kFAA0D;AAY1D;;GAEG;AACH,MAAqB,eAAe;IA+BlC,YACE,WAOC,EACgB,oBAAyD,EAC1E,kBAAuD,EACvD,kBAMG,EACH,gBAMC,EACD,cAAqC;QAhBpB,yBAAoB,GAApB,oBAAoB,CAAqC;QAkB1E,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAAmB,CAQhD,oBAAoB,CAAC,mBAAmB,EACxC,WAAW,EACX,aAAa,EACb,oBAAoB,CAAC,WAAW,CACjC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAAoB,CAClD,oBAAoB,CAAC,mBAAmB,EACxC,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,EACxB,oBAAoB,CAAC,eAAe,EACpC,cAAc,CACf,CAAC;IACJ,CAAC;IAED,gBAAgB;QAQd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QAQf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,CAAC;IAC7D,CAAC;CACF;AAhHD,kCAgHC"}
1
+ {"version":3,"file":"EntityCompanion.js","sourceRoot":"","sources":["../src/EntityCompanion.ts"],"names":[],"mappings":";;;;;AACA,gFAAwD;AAGxD,kFAA0D;AAY1D;;GAEG;AACH,MAAqB,eAAe;IA+BlC,YACE,WAOC,EACgB,oBAAyD,EAC1E,kBAAuD,EACvD,kBAMG,EACH,gBAMC,EACgB,cAAqC;QAhBrC,yBAAoB,GAApB,oBAAoB,CAAqC;QAgBzD,mBAAc,GAAd,cAAc,CAAuB;QAEtD,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAAmB,CAQhD,oBAAoB,CAAC,mBAAmB,EACxC,WAAW,EACX,aAAa,EACb,oBAAoB,CAAC,WAAW,EAChC,cAAc,CACf,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAAoB,CAClD,oBAAoB,CAAC,mBAAmB,EACxC,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,EACxB,oBAAoB,CAAC,eAAe,EACpC,cAAc,CACf,CAAC;IACJ,CAAC;IAED,gBAAgB;QAQd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QAQf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAxHD,kCAwHC"}
@@ -86,7 +86,7 @@ export declare class EntityCompanionDefinition<TFields, TID extends NonNullable<
86
86
  * {@link EntityCompanion} for each type of {@link Entity}.
87
87
  */
88
88
  export default class EntityCompanionProvider {
89
- private metricsAdapter;
89
+ readonly metricsAdapter: IEntityMetricsAdapter;
90
90
  private databaseAdapterFlavors;
91
91
  private cacheAdapterFlavors;
92
92
  private readonly companionMap;
@@ -55,21 +55,21 @@ class EntityCompanionProvider {
55
55
  */
56
56
  getCompanionForEntity(entityClass, entityCompanionDefinition) {
57
57
  const tableDataCoordinator = this.getTableDataCoordinatorForEntity(entityCompanionDefinition.entityConfiguration, entityClass.name);
58
- return maps_1.computeIfAbsent(this.companionMap, entityClass.name, () => {
58
+ return (0, maps_1.computeIfAbsent)(this.companionMap, entityClass.name, () => {
59
59
  return new EntityCompanion_1.default(entityCompanionDefinition.entityClass, tableDataCoordinator, entityCompanionDefinition.privacyPolicyClass, entityCompanionDefinition.mutationValidators(), entityCompanionDefinition.mutationTriggers(), this.metricsAdapter);
60
60
  });
61
61
  }
62
62
  getQueryContextProviderForDatabaseAdaptorFlavor(databaseAdapterFlavor) {
63
63
  const entityDatabaseAdapterFlavor = this.databaseAdapterFlavors.get(databaseAdapterFlavor);
64
- invariant_1.default(entityDatabaseAdapterFlavor, `No database adaptor configuration found for flavor: ${databaseAdapterFlavor}`);
64
+ (0, invariant_1.default)(entityDatabaseAdapterFlavor, `No database adaptor configuration found for flavor: ${databaseAdapterFlavor}`);
65
65
  return entityDatabaseAdapterFlavor.queryContextProvider;
66
66
  }
67
67
  getTableDataCoordinatorForEntity(entityConfiguration, entityClassName) {
68
- return maps_1.computeIfAbsent(this.tableDataCoordinatorMap, entityConfiguration.tableName, () => {
68
+ return (0, maps_1.computeIfAbsent)(this.tableDataCoordinatorMap, entityConfiguration.tableName, () => {
69
69
  const entityDatabaseAdapterFlavor = this.databaseAdapterFlavors.get(entityConfiguration.databaseAdapterFlavor);
70
- invariant_1.default(entityDatabaseAdapterFlavor, `No database adaptor configuration found for flavor: ${entityConfiguration.databaseAdapterFlavor}`);
70
+ (0, invariant_1.default)(entityDatabaseAdapterFlavor, `No database adaptor configuration found for flavor: ${entityConfiguration.databaseAdapterFlavor}`);
71
71
  const entityCacheAdapterFlavor = this.cacheAdapterFlavors.get(entityConfiguration.cacheAdapterFlavor);
72
- invariant_1.default(entityCacheAdapterFlavor, `No cache adaptor configuration found for flavor: ${entityConfiguration.cacheAdapterFlavor}`);
72
+ (0, invariant_1.default)(entityCacheAdapterFlavor, `No cache adaptor configuration found for flavor: ${entityConfiguration.cacheAdapterFlavor}`);
73
73
  return new EntityTableDataCoordinator_1.default(entityConfiguration, entityDatabaseAdapterFlavor.adapterProvider, entityCacheAdapterFlavor.cacheAdapterProvider, entityDatabaseAdapterFlavor.queryContextProvider, this.metricsAdapter, entityClassName);
74
74
  });
75
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCompanionProvider.js","sourceRoot":"","sources":["../src/EntityCompanionProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityCompanionProvider.js","sourceRoot":"","sources":["../src/EntityCompanionProvider.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAGlC,wEAAyE;AAUzE,uGAA+E;AAE/E,mDAA2D;AAgC3D;;;GAGG;AACH,MAAa,yBAAyB;IAwCpC,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GAAG,GAAG,EAAE,CAAC,EAAE,EAC7B,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAC7B,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAsB,GA+C1F;QACC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;CACF;AArGD,8DAqGC;AAED;;;;;;;;GAQG;AACH,MAAqB,uBAAuB;IAM1C;;;;;OAKG;IACH,YACkB,cAAqC,EAC7C,sBAGP,EACO,mBAAkF;QAL1E,mBAAc,GAAd,cAAc,CAAuB;QAC7C,2BAAsB,GAAtB,sBAAsB,CAG7B;QACO,wBAAmB,GAAnB,mBAAmB,CAA+D;QAjB3E,iBAAY,GAC3B,IAAI,GAAG,EAAE,CAAC;QACK,4BAAuB,GACtC,IAAI,GAAG,EAAE,CAAC;IAeT,CAAC;IAEJ;;;;;;OAMG;IACH,qBAAqB,CAcnB,WAOC,EACD,yBAOC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,gCAAgC,CAChE,yBAAyB,CAAC,mBAAmB,EAC7C,WAAW,CAAC,IAAI,CACjB,CAAC;QACF,OAAO,IAAA,sBAAe,EAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;YAC/D,OAAO,IAAI,yBAAe,CACxB,yBAAyB,CAAC,WAAW,EACrC,oBAAoB,EACpB,yBAAyB,CAAC,kBAAkB,EAC5C,yBAAyB,CAAC,kBAAkB,EAAE,EAC9C,yBAAyB,CAAC,gBAAgB,EAAE,EAC5C,IAAI,CAAC,cAAc,CACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C,CAC7C,qBAA4C;QAE5C,MAAM,2BAA2B,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3F,IAAA,mBAAS,EACP,2BAA2B,EAC3B,uDAAuD,qBAAqB,EAAE,CAC/E,CAAC;QAEF,OAAO,2BAA2B,CAAC,oBAAoB,CAAC;IAC1D,CAAC;IAEO,gCAAgC,CACtC,mBAAiD,EACjD,eAAuB;QAEvB,OAAO,IAAA,sBAAe,EAAC,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,SAAS,EAAE,GAAG,EAAE;YACvF,MAAM,2BAA2B,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CACjE,mBAAmB,CAAC,qBAAqB,CAC1C,CAAC;YACF,IAAA,mBAAS,EACP,2BAA2B,EAC3B,uDAAuD,mBAAmB,CAAC,qBAAqB,EAAE,CACnG,CAAC;YAEF,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAC3D,mBAAmB,CAAC,kBAAkB,CACvC,CAAC;YACF,IAAA,mBAAS,EACP,wBAAwB,EACxB,oDAAoD,mBAAmB,CAAC,kBAAkB,EAAE,CAC7F,CAAC;YAEF,OAAO,IAAI,oCAA0B,CACnC,mBAAmB,EACnB,2BAA2B,CAAC,eAAe,EAC3C,wBAAwB,CAAC,oBAAoB,EAC7C,2BAA2B,CAAC,oBAAoB,EAChD,IAAI,CAAC,cAAc,EACnB,eAAe,CAChB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtHD,0CAsHC"}
@@ -1,6 +1,6 @@
1
1
  import { IEntityClass } from './Entity';
2
2
  import { DatabaseAdapterFlavor, CacheAdapterFlavor } from './EntityCompanionProvider';
3
- import { EntityFieldDefinition } from './EntityFields';
3
+ import { EntityFieldDefinition } from './EntityFieldDefinition';
4
4
  /**
5
5
  * The data storage configuration for a type of Entity. Contains information relating to IDs,
6
6
  * cachable fields, field mappings, and types of cache and database adapter.
@@ -19,10 +19,10 @@ class EntityConfiguration {
19
19
  this.schema = new Map(Object.entries(schema));
20
20
  this.cacheableKeys = EntityConfiguration.computeCacheableKeys(this.schema);
21
21
  this.entityToDBFieldsKeyMapping = EntityConfiguration.computeEntityToDBFieldsKeyMapping(this.schema);
22
- this.dbToEntityFieldsKeyMapping = maps_1.invertMap(this.entityToDBFieldsKeyMapping);
22
+ this.dbToEntityFieldsKeyMapping = (0, maps_1.invertMap)(this.entityToDBFieldsKeyMapping);
23
23
  }
24
24
  static computeCacheableKeys(schema) {
25
- return maps_1.reduceMap(schema, (acc, v, k) => {
25
+ return (0, maps_1.reduceMap)(schema, (acc, v, k) => {
26
26
  if (v.cache) {
27
27
  acc.add(k);
28
28
  }
@@ -30,7 +30,7 @@ class EntityConfiguration {
30
30
  }, new Set());
31
31
  }
32
32
  static computeEntityToDBFieldsKeyMapping(schema) {
33
- return maps_1.mapMap(schema, (v) => v.columnName);
33
+ return (0, maps_1.mapMap)(schema, (v) => v.columnName);
34
34
  }
35
35
  }
36
36
  exports.default = EntityConfiguration;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityConfiguration.js","sourceRoot":"","sources":["../src/EntityConfiguration.ts"],"names":[],"mappings":";;AAGA,mDAAwE;AAExE;;;GAGG;AACH,MAAqB,mBAAmB;IActC,YAAY,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,eAAe,GAAG,GAAG,EAAE,CAAC,EAAE,EAC1B,eAAe,GAAG,CAAC,EACnB,qBAAqB,EACrB,kBAAkB,GAqCnB;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,kFAAkF;QAClF,qEAAqE;QACrE,mCAAmC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,0BAA0B,GAAG,mBAAmB,CAAC,iCAAiC,CACrF,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,0BAA0B,GAAG,gBAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC/E,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,MAA8D;QAE9D,OAAO,gBAAS,CACd,MAAM,EACN,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAAiB,CACzB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,iCAAiC,CAC9C,MAA8D;QAE9D,OAAO,aAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;CACF;AAnGD,sCAmGC"}
1
+ {"version":3,"file":"EntityConfiguration.js","sourceRoot":"","sources":["../src/EntityConfiguration.ts"],"names":[],"mappings":";;AAGA,mDAAwE;AAExE;;;GAGG;AACH,MAAqB,mBAAmB;IActC,YAAY,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,eAAe,GAAG,GAAG,EAAE,CAAC,EAAE,EAC1B,eAAe,GAAG,CAAC,EACnB,qBAAqB,EACrB,kBAAkB,GAqCnB;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,kFAAkF;QAClF,qEAAqE;QACrE,mCAAmC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,0BAA0B,GAAG,mBAAmB,CAAC,iCAAiC,CACrF,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,0BAA0B,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC/E,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,MAA8D;QAE9D,OAAO,IAAA,gBAAS,EACd,MAAM,EACN,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACZ;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAAiB,CACzB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,iCAAiC,CAC9C,MAA8D;QAE9D,OAAO,IAAA,aAAM,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;CACF;AAnGD,sCAmGC"}
@@ -44,12 +44,12 @@ export interface QuerySelectionModifiers<TFields> {
44
44
  limit?: number;
45
45
  }
46
46
  export interface TableQuerySelectionModifiers {
47
- orderBy?: {
47
+ orderBy: {
48
48
  columnName: string;
49
49
  order: OrderByOrdering;
50
- }[];
51
- offset?: number;
52
- limit?: number;
50
+ }[] | undefined;
51
+ offset: number | undefined;
52
+ limit: number | undefined;
53
53
  }
54
54
  /**
55
55
  * A database adapter is an interface by which entity objects can be
@@ -31,9 +31,9 @@ class EntityDatabaseAdapter {
31
31
  * @returns map from fieldValue to objects that match the query for that fieldValue
32
32
  */
33
33
  async fetchManyWhereAsync(queryContext, field, fieldValues) {
34
- const fieldColumn = EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, field);
34
+ const fieldColumn = (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, field);
35
35
  const results = await this.fetchManyWhereInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, fieldColumn, fieldValues);
36
- const objects = results.map((result) => EntityFieldTransformationUtils_1.transformDatabaseObjectToFields(this.entityConfiguration, this.fieldTransformerMap, result));
36
+ const objects = results.map((result) => (0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, result));
37
37
  const objectMap = new Map();
38
38
  for (const fieldValue of fieldValues) {
39
39
  objectMap.set(fieldValue, []);
@@ -59,19 +59,19 @@ class EntityDatabaseAdapter {
59
59
  for (const operand of fieldEqualityOperands) {
60
60
  if (isSingleValueFieldEqualityCondition(operand)) {
61
61
  tableFieldSingleValueOperands.push({
62
- tableField: EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, operand.fieldName),
62
+ tableField: (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, operand.fieldName),
63
63
  tableValue: operand.fieldValue,
64
64
  });
65
65
  }
66
66
  else {
67
67
  tableFieldMultipleValueOperands.push({
68
- tableField: EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, operand.fieldName),
68
+ tableField: (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, operand.fieldName),
69
69
  tableValues: operand.fieldValues,
70
70
  });
71
71
  }
72
72
  }
73
73
  const results = await this.fetchManyByFieldEqualityConjunctionInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, tableFieldSingleValueOperands, tableFieldMultipleValueOperands, this.convertToTableQueryModifiers(querySelectionModifiers));
74
- return results.map((result) => EntityFieldTransformationUtils_1.transformDatabaseObjectToFields(this.entityConfiguration, this.fieldTransformerMap, result));
74
+ return results.map((result) => (0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, result));
75
75
  }
76
76
  /**
77
77
  * Fetch many objects matching the raw WHERE clause.
@@ -84,7 +84,7 @@ class EntityDatabaseAdapter {
84
84
  */
85
85
  async fetchManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers) {
86
86
  const results = await this.fetchManyByRawWhereClauseInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, rawWhereClause, bindings, this.convertToTableQueryModifiers(querySelectionModifiers));
87
- return results.map((result) => EntityFieldTransformationUtils_1.transformDatabaseObjectToFields(this.entityConfiguration, this.fieldTransformerMap, result));
87
+ return results.map((result) => (0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, result));
88
88
  }
89
89
  /**
90
90
  * Insert an object.
@@ -94,7 +94,7 @@ class EntityDatabaseAdapter {
94
94
  * @returns the inserted object
95
95
  */
96
96
  async insertAsync(queryContext, object) {
97
- const dbObject = EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject(this.entityConfiguration, this.fieldTransformerMap, object);
97
+ const dbObject = (0, EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject)(this.entityConfiguration, this.fieldTransformerMap, object);
98
98
  const results = await this.insertInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, dbObject);
99
99
  if (results.length > 1) {
100
100
  throw new Error(`Excessive results from database adapter insert: ${this.entityConfiguration.tableName}`);
@@ -102,7 +102,7 @@ class EntityDatabaseAdapter {
102
102
  else if (results.length === 0) {
103
103
  throw new Error(`Empty results from database adapter insert: ${this.entityConfiguration.tableName}`);
104
104
  }
105
- return EntityFieldTransformationUtils_1.transformDatabaseObjectToFields(this.entityConfiguration, this.fieldTransformerMap, results[0]);
105
+ return (0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, results[0]);
106
106
  }
107
107
  /**
108
108
  * Update an object.
@@ -114,8 +114,8 @@ class EntityDatabaseAdapter {
114
114
  * @returns the updated object
115
115
  */
116
116
  async updateAsync(queryContext, idField, id, object) {
117
- const idColumn = EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, idField);
118
- const dbObject = EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject(this.entityConfiguration, this.fieldTransformerMap, object);
117
+ const idColumn = (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, idField);
118
+ const dbObject = (0, EntityFieldTransformationUtils_1.transformFieldsToDatabaseObject)(this.entityConfiguration, this.fieldTransformerMap, object);
119
119
  const results = await this.updateInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, idColumn, id, dbObject);
120
120
  if (results.length > 1) {
121
121
  throw new Error(`Excessive results from database adapter update: ${this.entityConfiguration.tableName}(id = ${id})`);
@@ -123,7 +123,7 @@ class EntityDatabaseAdapter {
123
123
  else if (results.length === 0) {
124
124
  throw new Error(`Empty results from database adapter update: ${this.entityConfiguration.tableName}(id = ${id})`);
125
125
  }
126
- return EntityFieldTransformationUtils_1.transformDatabaseObjectToFields(this.entityConfiguration, this.fieldTransformerMap, results[0]);
126
+ return (0, EntityFieldTransformationUtils_1.transformDatabaseObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, results[0]);
127
127
  }
128
128
  /**
129
129
  * Delete an object by ID.
@@ -133,7 +133,7 @@ class EntityDatabaseAdapter {
133
133
  * @param id - the value of the ID field in the object
134
134
  */
135
135
  async deleteAsync(queryContext, idField, id) {
136
- const idColumn = EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, idField);
136
+ const idColumn = (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, idField);
137
137
  const numDeleted = await this.deleteInternalAsync(queryContext.getQueryInterface(), this.entityConfiguration.tableName, idColumn, id);
138
138
  if (numDeleted > 1) {
139
139
  throw new Error(`Excessive deletions from database adapter delete: ${this.entityConfiguration.tableName}(id = ${id})`);
@@ -144,7 +144,7 @@ class EntityDatabaseAdapter {
144
144
  return {
145
145
  orderBy: orderBy !== undefined
146
146
  ? orderBy.map((orderBySpecification) => ({
147
- columnName: EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField(this.entityConfiguration, orderBySpecification.fieldName),
147
+ columnName: (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(this.entityConfiguration, orderBySpecification.fieldName),
148
148
  order: orderBySpecification.order,
149
149
  }))
150
150
  : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"EntityDatabaseAdapter.js","sourceRoot":"","sources":["../src/EntityDatabaseAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityDatabaseAdapter.js","sourceRoot":"","sources":["../src/EntityDatabaseAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { IEntityClass } from './Entity';
2
+ import EntityPrivacyPolicy from './EntityPrivacyPolicy';
3
+ import ReadonlyEntity from './ReadonlyEntity';
4
+ import ViewerContext from './ViewerContext';
5
+ export declare enum EntityEdgeDeletionBehavior {
6
+ /**
7
+ * Default. Invalidate the cache for all entities that reference the entity
8
+ * being deleted through this field, and transitively run deletions on those entities.
9
+ * This is most useful when the database itself expresses foreign
10
+ * keys and cascading deletes or set nulls and the entity framework just needs to
11
+ * be kept consistent with the state of the database.
12
+ */
13
+ CASCADE_DELETE_INVALIDATE_CACHE = 0,
14
+ /**
15
+ * Delete all entities that reference the entity being deleted through this field. This is very similar
16
+ * to SQL `ON DELETE CASCADE` but is done in the Entity framework instead of at the underlying level.
17
+ * This will also invalidate the cached referencing entities.
18
+ */
19
+ CASCADE_DELETE = 1,
20
+ /**
21
+ * Set this field to null when the referenced entity is deleted. This is very similar
22
+ * to SQL `ON DELETE SET NULL` but is done in the Entity framework instead of at the underlying level.
23
+ * This will also invalidate the cached referencing entities.
24
+ */
25
+ SET_NULL = 2
26
+ }
27
+ export interface EntityAssociationDefinition<TViewerContext extends ViewerContext, TAssociatedFields, TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>, TAssociatedEntity extends ReadonlyEntity<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedSelectedFields>, TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedEntity, TAssociatedSelectedFields>, TAssociatedSelectedFields extends keyof TAssociatedFields = keyof TAssociatedFields> {
28
+ /**
29
+ * Class of entity on the other end of this edge.
30
+ */
31
+ getAssociatedEntityClass: () => IEntityClass<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedEntity, TAssociatedPrivacyPolicy, TAssociatedSelectedFields>;
32
+ /**
33
+ * Field by which to load the instance of associatedEntityClass. If not provided, the
34
+ * associatedEntityClass instance is fetched by its ID.
35
+ */
36
+ associatedEntityLookupByField?: keyof TAssociatedFields;
37
+ /**
38
+ * What action to perform on the current entity when the entity on the referencing end of
39
+ * this edge is deleted.
40
+ *
41
+ * @remarks
42
+ * The entity framework doesn't prescribe a one-size-fits-all solution for referential
43
+ * integrity; instead it exposes mechanisms that supports both database foreign key constraints
44
+ * and implicit entity-specified foreign keys. Choosing which approach to use often depends on
45
+ * application requirements, and sometimes even a mix-and-match is the right choice.
46
+ *
47
+ * - If referential integrity is critical to your application, database foreign key constraints
48
+ * combined with {@link EntityEdgeDeletionBehavior.CASACDE_DELETE_INVALIDATE_CACHE} are recommended.
49
+ * - If the database being used doesn't support foreign keys, then using the entity framework for referential
50
+ * integrity is recommended.
51
+ */
52
+ edgeDeletionBehavior?: EntityEdgeDeletionBehavior;
53
+ }
54
+ export declare abstract class EntityFieldDefinition<T> {
55
+ readonly columnName: string;
56
+ readonly cache: boolean;
57
+ readonly association: EntityAssociationDefinition<any, any, any, any, any, any> | undefined;
58
+ /**
59
+ *
60
+ * @param columnName - Column name in the database.
61
+ * @param cache - Whether or not to cache loaded instances of the entity by this field. The column name is
62
+ * used to derive a cache key for the cache entry. If true, this column must be able uniquely
63
+ * identify the entity.
64
+ */
65
+ constructor({ columnName, cache, association, }: {
66
+ columnName: string;
67
+ cache?: boolean;
68
+ association?: EntityAssociationDefinition<any, any, any, any, any, any>;
69
+ });
70
+ /**
71
+ * Validates input value for a field of this type. Null and undefined are considered valid by default. This is used for things like:
72
+ * - EntityLoader.loadByFieldValue - to ensure the value being loaded by is a valid value
73
+ * - EntityMutator.setField - to ensure the value being set is a valid value
74
+ */
75
+ validateInputValue(value: T | null | undefined): boolean;
76
+ protected abstract validateInputValueInternal(value: T): boolean;
77
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityFieldDefinition = exports.EntityEdgeDeletionBehavior = void 0;
4
+ var EntityEdgeDeletionBehavior;
5
+ (function (EntityEdgeDeletionBehavior) {
6
+ /**
7
+ * Default. Invalidate the cache for all entities that reference the entity
8
+ * being deleted through this field, and transitively run deletions on those entities.
9
+ * This is most useful when the database itself expresses foreign
10
+ * keys and cascading deletes or set nulls and the entity framework just needs to
11
+ * be kept consistent with the state of the database.
12
+ */
13
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE_INVALIDATE_CACHE"] = 0] = "CASCADE_DELETE_INVALIDATE_CACHE";
14
+ /**
15
+ * Delete all entities that reference the entity being deleted through this field. This is very similar
16
+ * to SQL `ON DELETE CASCADE` but is done in the Entity framework instead of at the underlying level.
17
+ * This will also invalidate the cached referencing entities.
18
+ */
19
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE"] = 1] = "CASCADE_DELETE";
20
+ /**
21
+ * Set this field to null when the referenced entity is deleted. This is very similar
22
+ * to SQL `ON DELETE SET NULL` but is done in the Entity framework instead of at the underlying level.
23
+ * This will also invalidate the cached referencing entities.
24
+ */
25
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["SET_NULL"] = 2] = "SET_NULL";
26
+ })(EntityEdgeDeletionBehavior = exports.EntityEdgeDeletionBehavior || (exports.EntityEdgeDeletionBehavior = {}));
27
+ class EntityFieldDefinition {
28
+ /**
29
+ *
30
+ * @param columnName - Column name in the database.
31
+ * @param cache - Whether or not to cache loaded instances of the entity by this field. The column name is
32
+ * used to derive a cache key for the cache entry. If true, this column must be able uniquely
33
+ * identify the entity.
34
+ */
35
+ constructor({ columnName, cache = false, association, }) {
36
+ this.columnName = columnName;
37
+ this.cache = cache;
38
+ this.association = association;
39
+ }
40
+ /**
41
+ * Validates input value for a field of this type. Null and undefined are considered valid by default. This is used for things like:
42
+ * - EntityLoader.loadByFieldValue - to ensure the value being loaded by is a valid value
43
+ * - EntityMutator.setField - to ensure the value being set is a valid value
44
+ */
45
+ validateInputValue(value) {
46
+ if (value === null || value === undefined) {
47
+ return true;
48
+ }
49
+ return this.validateInputValueInternal(value);
50
+ }
51
+ }
52
+ exports.EntityFieldDefinition = EntityFieldDefinition;
53
+ //# sourceMappingURL=EntityFieldDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityFieldDefinition.js","sourceRoot":"","sources":["../src/EntityFieldDefinition.ts"],"names":[],"mappings":";;;AAKA,IAAY,0BAuBX;AAvBD,WAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,iIAA+B,CAAA;IAE/B;;;;OAIG;IACH,+FAAc,CAAA;IAEd;;;;OAIG;IACH,mFAAQ,CAAA;AACV,CAAC,EAvBW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAuBrC;AAyDD,MAAsB,qBAAqB;IAIzC;;;;;;OAMG;IACH,YAAY,EACV,UAAU,EACV,KAAK,GAAG,KAAK,EACb,WAAW,GAKZ;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,KAA2B;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEF;AAtCD,sDAsCC"}
@@ -1,80 +1,4 @@
1
- import { IEntityClass } from './Entity';
2
- import EntityPrivacyPolicy from './EntityPrivacyPolicy';
3
- import ReadonlyEntity from './ReadonlyEntity';
4
- import ViewerContext from './ViewerContext';
5
- export declare enum EntityEdgeDeletionBehavior {
6
- /**
7
- * Default. Invalidate the cache for all entities that reference the entity
8
- * being deleted through this field, and transitively run deletions on those entities.
9
- * This is most useful when the database itself expresses foreign
10
- * keys and cascading deletes or set nulls and the entity framework just needs to
11
- * be kept consistent with the state of the database.
12
- */
13
- CASCADE_DELETE_INVALIDATE_CACHE = 0,
14
- /**
15
- * Delete all entities that reference the entity being deleted through this field. This is very similar
16
- * to SQL `ON DELETE CASCADE` but is done in the Entity framework instead of at the underlying level.
17
- * This will also invalidate the cached referencing entities.
18
- */
19
- CASCADE_DELETE = 1,
20
- /**
21
- * Set this field to null when the referenced entity is deleted. This is very similar
22
- * to SQL `ON DELETE SET NULL` but is done in the Entity framework instead of at the underlying level.
23
- * This will also invalidate the cached referencing entities.
24
- */
25
- SET_NULL = 2
26
- }
27
- export interface EntityAssociationDefinition<TViewerContext extends ViewerContext, TAssociatedFields, TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>, TAssociatedEntity extends ReadonlyEntity<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedSelectedFields>, TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedEntity, TAssociatedSelectedFields>, TAssociatedSelectedFields extends keyof TAssociatedFields = keyof TAssociatedFields> {
28
- /**
29
- * Class of entity on the other end of this edge.
30
- */
31
- getAssociatedEntityClass: () => IEntityClass<TAssociatedFields, TAssociatedID, TViewerContext, TAssociatedEntity, TAssociatedPrivacyPolicy, TAssociatedSelectedFields>;
32
- /**
33
- * Field by which to load the instance of associatedEntityClass. If not provided, the
34
- * associatedEntityClass instance is fetched by its ID.
35
- */
36
- associatedEntityLookupByField?: keyof TAssociatedFields;
37
- /**
38
- * What action to perform on the current entity when the entity on the referencing end of
39
- * this edge is deleted.
40
- *
41
- * @remarks
42
- * The entity framework doesn't prescribe a one-size-fits-all solution for referential
43
- * integrity; instead it exposes mechanisms that supports both database foreign key constraints
44
- * and implicit entity-specified foreign keys. Choosing which approach to use often depends on
45
- * application requirements, and sometimes even a mix-and-match is the right choice.
46
- *
47
- * - If referential integrity is critical to your application, database foreign key constraints
48
- * combined with {@link EntityEdgeDeletionBehavior.CASACDE_DELETE_INVALIDATE_CACHE} are recommended.
49
- * - If the database being used doesn't support foreign keys, then using the entity framework for referential
50
- * integrity is recommended.
51
- */
52
- edgeDeletionBehavior?: EntityEdgeDeletionBehavior;
53
- }
54
- export declare abstract class EntityFieldDefinition<T> {
55
- readonly columnName: string;
56
- readonly cache: boolean;
57
- readonly association?: EntityAssociationDefinition<any, any, any, any, any, any>;
58
- /**
59
- *
60
- * @param columnName - Column name in the database.
61
- * @param cache - Whether or not to cache loaded instances of the entity by this field. The column name is
62
- * used to derive a cache key for the cache entry. If true, this column must be able uniquely
63
- * identify the entity.
64
- */
65
- constructor({ columnName, cache, association, }: {
66
- columnName: string;
67
- cache?: boolean;
68
- association?: EntityAssociationDefinition<any, any, any, any, any, any>;
69
- });
70
- /**
71
- * Validates input value for a field of this type. Null and undefined are considered valid by default. This is used for things like:
72
- * - EntityLoader.loadByFieldValue - to ensure the value being loaded by is a valid value
73
- * - EntityMutator.setField - to ensure the value being set is a valid value
74
- */
75
- validateInputValue(value: T | null | undefined): boolean;
76
- protected abstract validateInputValueInternal(value: T): boolean;
77
- }
1
+ import { EntityFieldDefinition } from './EntityFieldDefinition';
78
2
  export declare class StringField extends EntityFieldDefinition<string> {
79
3
  protected validateInputValueInternal(value: string): boolean;
80
4
  }