@expo/entity 0.22.0 → 0.25.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 (145) hide show
  1. package/build/ComposedEntityCacheAdapter.d.ts +19 -0
  2. package/build/ComposedEntityCacheAdapter.js +66 -0
  3. package/build/ComposedEntityCacheAdapter.js.map +1 -0
  4. package/build/ComposedSecondaryEntityCache.d.ts +15 -0
  5. package/build/ComposedSecondaryEntityCache.js +37 -0
  6. package/build/ComposedSecondaryEntityCache.js.map +1 -0
  7. package/build/Entity.js +6 -6
  8. package/build/Entity.js.map +1 -1
  9. package/build/EntityAssociationLoader.js +4 -4
  10. package/build/EntityAssociationLoader.js.map +1 -1
  11. package/build/EntityCacheAdapter.d.ts +2 -9
  12. package/build/EntityCacheAdapter.js.map +1 -1
  13. package/build/EntityFieldDefinition.d.ts +8 -0
  14. package/build/EntityFieldDefinition.js +5 -0
  15. package/build/EntityFieldDefinition.js.map +1 -1
  16. package/build/EntityFields.d.ts +38 -0
  17. package/build/EntityFields.js +38 -0
  18. package/build/EntityFields.js.map +1 -1
  19. package/build/EntityLoader.d.ts +3 -2
  20. package/build/EntityLoader.js +5 -4
  21. package/build/EntityLoader.js.map +1 -1
  22. package/build/EntityLoaderFactory.d.ts +2 -2
  23. package/build/EntityLoaderFactory.js +2 -2
  24. package/build/EntityLoaderFactory.js.map +1 -1
  25. package/build/EntityMutationInfo.d.ts +12 -3
  26. package/build/EntityMutator.d.ts +5 -4
  27. package/build/EntityMutator.js +31 -24
  28. package/build/EntityMutator.js.map +1 -1
  29. package/build/EntityMutatorFactory.d.ts +4 -4
  30. package/build/EntityMutatorFactory.js +6 -6
  31. package/build/EntityMutatorFactory.js.map +1 -1
  32. package/build/EntityPrivacyPolicy.d.ts +15 -4
  33. package/build/EntityPrivacyPolicy.js +14 -14
  34. package/build/EntityPrivacyPolicy.js.map +1 -1
  35. package/build/GenericSecondaryEntityCache.d.ts +19 -0
  36. package/build/GenericSecondaryEntityCache.js +74 -0
  37. package/build/GenericSecondaryEntityCache.js.map +1 -0
  38. package/build/IEntityGenericCacher.d.ts +11 -0
  39. package/build/IEntityGenericCacher.js +3 -0
  40. package/build/IEntityGenericCacher.js.map +1 -0
  41. package/build/ReadonlyEntity.js +1 -1
  42. package/build/ReadonlyEntity.js.map +1 -1
  43. package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
  44. package/build/ViewerScopedEntityLoaderFactory.js +2 -2
  45. package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
  46. package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
  47. package/build/ViewerScopedEntityMutatorFactory.js +6 -6
  48. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  49. package/build/__tests__/ComposedCacheAdapter-test.d.ts +1 -0
  50. package/build/__tests__/ComposedCacheAdapter-test.js +198 -0
  51. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -0
  52. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +1 -0
  53. package/build/__tests__/ComposedSecondaryEntityCache-test.js +65 -0
  54. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +1 -0
  55. package/build/__tests__/EntityCommonUseCases-test.js +1 -1
  56. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  57. package/build/__tests__/EntityEdges-test.js +260 -37
  58. package/build/__tests__/EntityEdges-test.js.map +1 -1
  59. package/build/__tests__/EntityLoader-constructor-test.js +2 -1
  60. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  61. package/build/__tests__/EntityLoader-test.js +19 -11
  62. package/build/__tests__/EntityLoader-test.js.map +1 -1
  63. package/build/__tests__/EntityMutator-test.js +96 -43
  64. package/build/__tests__/EntityMutator-test.js.map +1 -1
  65. package/build/__tests__/EntityPrivacyPolicy-test.js +23 -12
  66. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  67. package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -1
  68. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  69. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +3 -2
  70. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
  71. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +3 -2
  72. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
  73. package/build/index.d.ts +2 -0
  74. package/build/index.js +3 -1
  75. package/build/index.js.map +1 -1
  76. package/build/internal/ReadThroughEntityCache.d.ts +2 -3
  77. package/build/internal/ReadThroughEntityCache.js +2 -6
  78. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  79. package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -32
  80. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  81. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -1
  82. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +1 -1
  83. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  84. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -1
  85. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +1 -1
  86. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  87. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -1
  88. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +1 -1
  89. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  90. package/build/rules/PrivacyPolicyRule.d.ts +2 -1
  91. package/build/rules/PrivacyPolicyRule.js.map +1 -1
  92. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +1 -0
  93. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
  94. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +1 -0
  95. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
  96. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +1 -0
  97. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
  98. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +2 -0
  99. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +6 -6
  100. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
  101. package/build/utils/testing/StubCacheAdapter.d.ts +6 -9
  102. package/build/utils/testing/StubCacheAdapter.js +0 -6
  103. package/build/utils/testing/StubCacheAdapter.js.map +1 -1
  104. package/package.json +1 -1
  105. package/src/ComposedEntityCacheAdapter.ts +86 -0
  106. package/src/ComposedSecondaryEntityCache.ts +63 -0
  107. package/src/Entity.ts +6 -4
  108. package/src/EntityAssociationLoader.ts +4 -4
  109. package/src/EntityCacheAdapter.ts +2 -10
  110. package/src/EntityFieldDefinition.ts +8 -0
  111. package/src/EntityFields.ts +45 -0
  112. package/src/EntityLoader.ts +5 -1
  113. package/src/EntityLoaderFactory.ts +4 -2
  114. package/src/EntityMutationInfo.ts +13 -3
  115. package/src/EntityMutator.ts +44 -21
  116. package/src/EntityMutatorFactory.ts +10 -4
  117. package/src/EntityPrivacyPolicy.ts +31 -1
  118. package/src/GenericSecondaryEntityCache.ts +98 -0
  119. package/src/IEntityGenericCacher.ts +15 -0
  120. package/src/ReadonlyEntity.ts +1 -1
  121. package/src/ViewerScopedEntityLoaderFactory.ts +8 -3
  122. package/src/ViewerScopedEntityMutatorFactory.ts +22 -7
  123. package/src/__tests__/ComposedCacheAdapter-test.ts +280 -0
  124. package/src/__tests__/ComposedSecondaryEntityCache-test.ts +101 -0
  125. package/src/__tests__/EntityCommonUseCases-test.ts +2 -1
  126. package/src/__tests__/EntityEdges-test.ts +286 -45
  127. package/src/__tests__/EntityLoader-constructor-test.ts +3 -1
  128. package/src/__tests__/EntityLoader-test.ts +26 -1
  129. package/src/__tests__/EntityMutator-test.ts +99 -37
  130. package/src/__tests__/EntityPrivacyPolicy-test.ts +66 -7
  131. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +1 -0
  132. package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +4 -2
  133. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +6 -2
  134. package/src/index.ts +2 -0
  135. package/src/internal/ReadThroughEntityCache.ts +6 -28
  136. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +0 -44
  137. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +2 -0
  138. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +2 -0
  139. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +2 -0
  140. package/src/rules/PrivacyPolicyRule.ts +2 -0
  141. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +2 -0
  142. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +2 -0
  143. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +2 -0
  144. package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +14 -6
  145. package/src/utils/testing/StubCacheAdapter.ts +11 -17
@@ -3,7 +3,6 @@ import invariant from 'invariant';
3
3
  import EntityCacheAdapter from '../../EntityCacheAdapter';
4
4
  import EntityConfiguration from '../../EntityConfiguration';
5
5
  import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
6
- import { FieldTransformerMap } from '../../internal/EntityFieldTransformationUtils';
7
6
  import { CacheStatus, CacheLoadResult } from '../../internal/ReadThroughEntityCache';
8
7
 
9
8
  export class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
@@ -15,15 +14,11 @@ export class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvi
15
14
  }
16
15
 
17
16
  export class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
18
- public getFieldTransformerMap(): FieldTransformerMap {
19
- return new Map();
20
- }
21
-
22
17
  public async loadManyAsync<N extends keyof TFields>(
23
18
  _fieldName: N,
24
19
  fieldValues: readonly NonNullable<TFields[N]>[]
25
- ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>> {
26
- return fieldValues.reduce((acc: Map<NonNullable<TFields[N]>, CacheLoadResult>, v) => {
20
+ ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>> {
21
+ return fieldValues.reduce((acc: Map<NonNullable<TFields[N]>, CacheLoadResult<TFields>>, v) => {
27
22
  acc.set(v, {
28
23
  status: CacheStatus.MISS,
29
24
  });
@@ -33,7 +28,7 @@ export class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields
33
28
 
34
29
  public async cacheManyAsync<N extends keyof TFields>(
35
30
  _fieldName: N,
36
- _objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>
31
+ _objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
37
32
  ): Promise<void> {}
38
33
 
39
34
  public async cacheDBMissesAsync<N extends keyof TFields>(
@@ -53,27 +48,26 @@ export class InMemoryFullCacheStubCacheAdapterProvider implements IEntityCacheAd
53
48
  getCacheAdapter<TFields>(
54
49
  entityConfiguration: EntityConfiguration<TFields>
55
50
  ): EntityCacheAdapter<TFields> {
56
- return new InMemoryFullCacheStubCacheAdapter(entityConfiguration, this.cache);
51
+ return new InMemoryFullCacheStubCacheAdapter(
52
+ entityConfiguration,
53
+ this.cache as Map<string, Readonly<TFields>>
54
+ );
57
55
  }
58
56
  }
59
57
 
60
58
  export class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
61
59
  constructor(
62
60
  entityConfiguration: EntityConfiguration<TFields>,
63
- readonly cache: Map<string, Readonly<object>>
61
+ readonly cache: Map<string, Readonly<TFields>>
64
62
  ) {
65
63
  super(entityConfiguration);
66
64
  }
67
65
 
68
- public getFieldTransformerMap(): FieldTransformerMap {
69
- return new Map();
70
- }
71
-
72
66
  public async loadManyAsync<N extends keyof TFields>(
73
67
  fieldName: N,
74
68
  fieldValues: readonly NonNullable<TFields[N]>[]
75
- ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>> {
76
- const results = new Map<NonNullable<TFields[N]>, CacheLoadResult>();
69
+ ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>> {
70
+ const results = new Map<NonNullable<TFields[N]>, CacheLoadResult<TFields>>();
77
71
  fieldValues.forEach((fieldValue) => {
78
72
  const cacheKey = this.createCacheKey(fieldName, fieldValue);
79
73
  if (!this.cache.has(cacheKey)) {
@@ -94,7 +88,7 @@ export class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapt
94
88
 
95
89
  public async cacheManyAsync<N extends keyof TFields>(
96
90
  fieldName: N,
97
- objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>
91
+ objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
98
92
  ): Promise<void> {
99
93
  objectMap.forEach((obj, fieldValue) => {
100
94
  const cacheKey = this.createCacheKey(fieldName, fieldValue);