@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.
- package/build/ComposedEntityCacheAdapter.d.ts +19 -0
- package/build/ComposedEntityCacheAdapter.js +66 -0
- package/build/ComposedEntityCacheAdapter.js.map +1 -0
- package/build/ComposedSecondaryEntityCache.d.ts +15 -0
- package/build/ComposedSecondaryEntityCache.js +37 -0
- package/build/ComposedSecondaryEntityCache.js.map +1 -0
- package/build/Entity.js +6 -6
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.js +4 -4
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCacheAdapter.d.ts +2 -9
- package/build/EntityCacheAdapter.js.map +1 -1
- package/build/EntityFieldDefinition.d.ts +8 -0
- package/build/EntityFieldDefinition.js +5 -0
- package/build/EntityFieldDefinition.js.map +1 -1
- package/build/EntityFields.d.ts +38 -0
- package/build/EntityFields.js +38 -0
- package/build/EntityFields.js.map +1 -1
- package/build/EntityLoader.d.ts +3 -2
- package/build/EntityLoader.js +5 -4
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +2 -2
- package/build/EntityLoaderFactory.js +2 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +12 -3
- package/build/EntityMutator.d.ts +5 -4
- package/build/EntityMutator.js +31 -24
- package/build/EntityMutator.js.map +1 -1
- package/build/EntityMutatorFactory.d.ts +4 -4
- package/build/EntityMutatorFactory.js +6 -6
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntityPrivacyPolicy.d.ts +15 -4
- package/build/EntityPrivacyPolicy.js +14 -14
- package/build/EntityPrivacyPolicy.js.map +1 -1
- package/build/GenericSecondaryEntityCache.d.ts +19 -0
- package/build/GenericSecondaryEntityCache.js +74 -0
- package/build/GenericSecondaryEntityCache.js.map +1 -0
- package/build/IEntityGenericCacher.d.ts +11 -0
- package/build/IEntityGenericCacher.js +3 -0
- package/build/IEntityGenericCacher.js.map +1 -0
- package/build/ReadonlyEntity.js +1 -1
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
- package/build/ViewerScopedEntityLoaderFactory.js +2 -2
- package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
- package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
- package/build/ViewerScopedEntityMutatorFactory.js +6 -6
- package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
- package/build/__tests__/ComposedCacheAdapter-test.d.ts +1 -0
- package/build/__tests__/ComposedCacheAdapter-test.js +198 -0
- package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -0
- package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +1 -0
- package/build/__tests__/ComposedSecondaryEntityCache-test.js +65 -0
- package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +1 -0
- package/build/__tests__/EntityCommonUseCases-test.js +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +260 -37
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityLoader-constructor-test.js +2 -1
- package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
- package/build/__tests__/EntityLoader-test.js +19 -11
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-test.js +96 -43
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +23 -12
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +3 -2
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +3 -2
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.d.ts +2 -3
- package/build/internal/ReadThroughEntityCache.js +2 -6
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -32
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/rules/PrivacyPolicyRule.d.ts +2 -1
- package/build/rules/PrivacyPolicyRule.js.map +1 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +1 -0
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +1 -0
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +1 -0
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +2 -0
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +6 -6
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
- package/build/utils/testing/StubCacheAdapter.d.ts +6 -9
- package/build/utils/testing/StubCacheAdapter.js +0 -6
- package/build/utils/testing/StubCacheAdapter.js.map +1 -1
- package/package.json +1 -1
- package/src/ComposedEntityCacheAdapter.ts +86 -0
- package/src/ComposedSecondaryEntityCache.ts +63 -0
- package/src/Entity.ts +6 -4
- package/src/EntityAssociationLoader.ts +4 -4
- package/src/EntityCacheAdapter.ts +2 -10
- package/src/EntityFieldDefinition.ts +8 -0
- package/src/EntityFields.ts +45 -0
- package/src/EntityLoader.ts +5 -1
- package/src/EntityLoaderFactory.ts +4 -2
- package/src/EntityMutationInfo.ts +13 -3
- package/src/EntityMutator.ts +44 -21
- package/src/EntityMutatorFactory.ts +10 -4
- package/src/EntityPrivacyPolicy.ts +31 -1
- package/src/GenericSecondaryEntityCache.ts +98 -0
- package/src/IEntityGenericCacher.ts +15 -0
- package/src/ReadonlyEntity.ts +1 -1
- package/src/ViewerScopedEntityLoaderFactory.ts +8 -3
- package/src/ViewerScopedEntityMutatorFactory.ts +22 -7
- package/src/__tests__/ComposedCacheAdapter-test.ts +280 -0
- package/src/__tests__/ComposedSecondaryEntityCache-test.ts +101 -0
- package/src/__tests__/EntityCommonUseCases-test.ts +2 -1
- package/src/__tests__/EntityEdges-test.ts +286 -45
- package/src/__tests__/EntityLoader-constructor-test.ts +3 -1
- package/src/__tests__/EntityLoader-test.ts +26 -1
- package/src/__tests__/EntityMutator-test.ts +99 -37
- package/src/__tests__/EntityPrivacyPolicy-test.ts +66 -7
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +1 -0
- package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +4 -2
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +6 -2
- package/src/index.ts +2 -0
- package/src/internal/ReadThroughEntityCache.ts +6 -28
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +0 -44
- package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +2 -0
- package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +2 -0
- package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +2 -0
- package/src/rules/PrivacyPolicyRule.ts +2 -0
- package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +2 -0
- package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +2 -0
- package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +2 -0
- package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +14 -6
- package/src/utils/testing/StubCacheAdapter.ts +11 -17
|
@@ -51,7 +51,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
51
51
|
describe('readManyThroughAsync', () => {
|
|
52
52
|
it('fetches from DB upon cache miss and caches the result', async () => {
|
|
53
53
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
54
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
55
54
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
56
55
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
57
56
|
const fetcher = createIdFetcher(['wat', 'who']);
|
|
@@ -73,7 +72,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
73
72
|
});
|
|
74
73
|
it('does not fetch from the DB or cache results when all cache fetches are hits', async () => {
|
|
75
74
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
76
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
77
75
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
78
76
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
79
77
|
const fetcher = createIdFetcher(['wat', 'who']);
|
|
@@ -95,7 +93,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
95
93
|
});
|
|
96
94
|
it('negatively caches db misses', async () => {
|
|
97
95
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
98
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
99
96
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
100
97
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
101
98
|
// simulate db miss
|
|
@@ -109,7 +106,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
109
106
|
});
|
|
110
107
|
it('does not return or fetch negatively cached results from DB', async () => {
|
|
111
108
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
112
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
113
109
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
114
110
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
115
111
|
const fetcher = createIdFetcher([]);
|
|
@@ -122,7 +118,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
122
118
|
});
|
|
123
119
|
it('does a mix and match of hit, miss, and negative', async () => {
|
|
124
120
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
125
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
126
121
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
127
122
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
128
123
|
const fetcher = createIdFetcher(['wat', 'who', 'why']);
|
|
@@ -143,7 +138,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
143
138
|
});
|
|
144
139
|
it('does not call into cache for field that is not cacheable', async () => {
|
|
145
140
|
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
146
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
|
|
147
141
|
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
148
142
|
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(false), cacheAdapter);
|
|
149
143
|
const fetcher = createIdFetcher(['wat']);
|
|
@@ -151,32 +145,6 @@ describe(ReadThroughEntityCache_1.default, () => {
|
|
|
151
145
|
(0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.anything)())).never();
|
|
152
146
|
expect(result).toEqual(new Map([['wat', [{ id: 'wat' }]]]));
|
|
153
147
|
});
|
|
154
|
-
it('transforms fields for cache storage', async () => {
|
|
155
|
-
const cacheAdapterMock = (0, ts_mockito_1.mock)();
|
|
156
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map([
|
|
157
|
-
[
|
|
158
|
-
EntityFields_1.UUIDField.name,
|
|
159
|
-
{
|
|
160
|
-
read: (val) => val.split('-')[0],
|
|
161
|
-
write: (val) => `${val}-in-cache`,
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
]));
|
|
165
|
-
const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
|
|
166
|
-
const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
|
|
167
|
-
const fetcher = createIdFetcher(['wat', 'who']);
|
|
168
|
-
(0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.deepEqual)(['wat', 'who']))).thenResolve(new Map([
|
|
169
|
-
['wat', { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
|
|
170
|
-
['who', { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'who-in-cache' } }],
|
|
171
|
-
]));
|
|
172
|
-
const result = await entityCache.readManyThroughAsync('id', ['wat', 'who'], fetcher);
|
|
173
|
-
(0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.deepEqual)(['wat', 'who']))).once();
|
|
174
|
-
(0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync('id', (0, ts_mockito_1.deepEqual)(new Map([['wat', { id: 'wat-in-cache' }]])))).once();
|
|
175
|
-
expect(result).toEqual(new Map([
|
|
176
|
-
['wat', [{ id: 'wat' }]],
|
|
177
|
-
['who', [{ id: 'who' }]],
|
|
178
|
-
]));
|
|
179
|
-
});
|
|
180
148
|
});
|
|
181
149
|
describe('invalidateManyAsync', () => {
|
|
182
150
|
it('calls cache adapter invalidate', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadThroughEntityCache-test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/ReadThroughEntityCache-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadThroughEntityCache-test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/ReadThroughEntityCache-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
|
|
1
2
|
import { EntityQueryContext } from '../EntityQueryContext';
|
|
2
3
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
3
4
|
import ViewerContext from '../ViewerContext';
|
|
@@ -6,5 +7,5 @@ import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
|
|
|
6
7
|
* Privacy policy rule that always allows.
|
|
7
8
|
*/
|
|
8
9
|
export default class AlwaysAllowPrivacyPolicyRule<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
|
|
9
|
-
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
|
+
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
11
|
}
|
|
@@ -24,7 +24,7 @@ const PrivacyPolicyRule_1 = __importStar(require("./PrivacyPolicyRule"));
|
|
|
24
24
|
* Privacy policy rule that always allows.
|
|
25
25
|
*/
|
|
26
26
|
class AlwaysAllowPrivacyPolicyRule extends PrivacyPolicyRule_1.default {
|
|
27
|
-
async evaluateAsync(_viewerContext, _queryContext, _entity) {
|
|
27
|
+
async evaluateAsync(_viewerContext, _queryContext, _evaluationContext, _entity) {
|
|
28
28
|
return PrivacyPolicyRule_1.RuleEvaluationResult.ALLOW;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysAllowPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysAllowPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AlwaysAllowPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysAllowPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,yEAA8E;AAE9E;;GAEG;AACH,MAAqB,4BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,KAAK,CAAC;IACpC,CAAC;CACF;AAfD,+CAeC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
|
|
1
2
|
import { EntityQueryContext } from '../EntityQueryContext';
|
|
2
3
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
3
4
|
import ViewerContext from '../ViewerContext';
|
|
@@ -6,5 +7,5 @@ import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
|
|
|
6
7
|
* Privacy policy rule that always denies.
|
|
7
8
|
*/
|
|
8
9
|
export default class AlwaysDenyPrivacyPolicyRule<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
|
|
9
|
-
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
|
+
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
11
|
}
|
|
@@ -24,7 +24,7 @@ const PrivacyPolicyRule_1 = __importStar(require("./PrivacyPolicyRule"));
|
|
|
24
24
|
* Privacy policy rule that always denies.
|
|
25
25
|
*/
|
|
26
26
|
class AlwaysDenyPrivacyPolicyRule extends PrivacyPolicyRule_1.default {
|
|
27
|
-
async evaluateAsync(_viewerContext, _queryContext, _entity) {
|
|
27
|
+
async evaluateAsync(_viewerContext, _queryContext, _evaluationContext, _entity) {
|
|
28
28
|
return PrivacyPolicyRule_1.RuleEvaluationResult.DENY;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysDenyPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysDenyPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AlwaysDenyPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysDenyPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,yEAA8E;AAE9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAfD,8CAeC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
|
|
1
2
|
import { EntityQueryContext } from '../EntityQueryContext';
|
|
2
3
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
3
4
|
import ViewerContext from '../ViewerContext';
|
|
@@ -6,5 +7,5 @@ import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
|
|
|
6
7
|
* A no-op policy rule that always skips.
|
|
7
8
|
*/
|
|
8
9
|
export default class AlwaysSkipPrivacyPolicyRule<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
|
|
9
|
-
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
|
+
evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
|
|
10
11
|
}
|
|
@@ -24,7 +24,7 @@ const PrivacyPolicyRule_1 = __importStar(require("./PrivacyPolicyRule"));
|
|
|
24
24
|
* A no-op policy rule that always skips.
|
|
25
25
|
*/
|
|
26
26
|
class AlwaysSkipPrivacyPolicyRule extends PrivacyPolicyRule_1.default {
|
|
27
|
-
async evaluateAsync(_viewerContext, _queryContext, _entity) {
|
|
27
|
+
async evaluateAsync(_viewerContext, _queryContext, _evaluationContext, _entity) {
|
|
28
28
|
return PrivacyPolicyRule_1.RuleEvaluationResult.SKIP;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysSkipPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysSkipPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AlwaysSkipPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysSkipPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,yEAA8E;AAE9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAfD,8CAeC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
|
|
1
2
|
import { EntityQueryContext } from '../EntityQueryContext';
|
|
2
3
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
3
4
|
import ViewerContext from '../ViewerContext';
|
|
@@ -32,5 +33,5 @@ export declare enum RuleEvaluationResult {
|
|
|
32
33
|
* would be named something like `DenyIfViewerHasBeenBlockedPrivacyPolicyRule`.
|
|
33
34
|
*/
|
|
34
35
|
export default abstract class PrivacyPolicyRule<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
35
|
-
abstract evaluateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity): Promise<RuleEvaluationResult>;
|
|
36
|
+
abstract evaluateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, evaluationContext: EntityPrivacyPolicyEvaluationContext, entity: TEntity): Promise<RuleEvaluationResult>;
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/PrivacyPolicyRule.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/PrivacyPolicyRule.ts"],"names":[],"mappings":";;;AAKA,IAAY,oBAeX;AAfD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,gEAAS,CAAA;IAET;;OAEG;IACH,+DAAQ,CAAA;IAER;;OAEG;IACH,iEAAS,CAAA;AACX,CAAC,EAfW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAe/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAA8B,iBAAiB;CAa9C;AAbD,oCAaC"}
|
|
@@ -13,6 +13,7 @@ const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../AlwaysAllowPr
|
|
|
13
13
|
{
|
|
14
14
|
viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default)),
|
|
15
15
|
queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
|
|
16
|
+
evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
|
|
16
17
|
entity: (0, ts_mockito_1.anything)(),
|
|
17
18
|
},
|
|
18
19
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysAllowPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;
|
|
1
|
+
{"version":3,"file":"AlwaysAllowPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,mGAA2E;AAE3E,IAAA,sDAAyB,EAAC,IAAI,sCAA4B,EAAE,EAAE;IAC5D,UAAU,EAAE;QACV;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
|
|
@@ -13,6 +13,7 @@ const AlwaysDenyPrivacyPolicyRule_1 = __importDefault(require("../AlwaysDenyPriv
|
|
|
13
13
|
{
|
|
14
14
|
viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default)),
|
|
15
15
|
queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
|
|
16
|
+
evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
|
|
16
17
|
entity: (0, ts_mockito_1.anything)(),
|
|
17
18
|
},
|
|
18
19
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysDenyPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;
|
|
1
|
+
{"version":3,"file":"AlwaysDenyPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
|
|
@@ -13,6 +13,7 @@ const AlwaysSkipPrivacyPolicyRule_1 = __importDefault(require("../AlwaysSkipPriv
|
|
|
13
13
|
{
|
|
14
14
|
viewerContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default)),
|
|
15
15
|
queryContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext)),
|
|
16
|
+
evaluationContext: (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)()),
|
|
16
17
|
entity: (0, ts_mockito_1.anything)(),
|
|
17
18
|
},
|
|
18
19
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlwaysSkipPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;
|
|
1
|
+
{"version":3,"file":"AlwaysSkipPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
|
|
1
2
|
import { EntityQueryContext } from '../../EntityQueryContext';
|
|
2
3
|
import ReadonlyEntity from '../../ReadonlyEntity';
|
|
3
4
|
import ViewerContext from '../../ViewerContext';
|
|
@@ -5,6 +6,7 @@ import PrivacyPolicyRule from '../../rules/PrivacyPolicyRule';
|
|
|
5
6
|
export interface Case<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
6
7
|
viewerContext: TViewerContext;
|
|
7
8
|
queryContext: EntityQueryContext;
|
|
9
|
+
evaluationContext: EntityPrivacyPolicyEvaluationContext;
|
|
8
10
|
entity: TEntity;
|
|
9
11
|
}
|
|
10
12
|
declare type CaseMap<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> = Map<string, () => Promise<Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>>>;
|
|
@@ -10,24 +10,24 @@ const describePrivacyPolicyRuleWithAsyncTestCase = (privacyPolicyRule, { allowCa
|
|
|
10
10
|
if (allowCases && allowCases.size > 0) {
|
|
11
11
|
describe('allow cases', () => {
|
|
12
12
|
test.each(Array.from(allowCases.keys()))('%p', async (caseKey) => {
|
|
13
|
-
const { viewerContext, queryContext, entity } = await allowCases.get(caseKey)();
|
|
14
|
-
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.ALLOW);
|
|
13
|
+
const { viewerContext, queryContext, evaluationContext, entity } = await allowCases.get(caseKey)();
|
|
14
|
+
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, evaluationContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.ALLOW);
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
if (skipCases && skipCases.size > 0) {
|
|
19
19
|
describe('skip cases', () => {
|
|
20
20
|
test.each(Array.from(skipCases.keys()))('%p', async (caseKey) => {
|
|
21
|
-
const { viewerContext, queryContext, entity } = await skipCases.get(caseKey)();
|
|
22
|
-
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.SKIP);
|
|
21
|
+
const { viewerContext, queryContext, evaluationContext, entity } = await skipCases.get(caseKey)();
|
|
22
|
+
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, evaluationContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.SKIP);
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
if (denyCases && denyCases.size > 0) {
|
|
27
27
|
describe('deny cases', () => {
|
|
28
28
|
test.each(Array.from(denyCases.keys()))('%p', async (caseKey) => {
|
|
29
|
-
const { viewerContext, queryContext, entity } = await denyCases.get(caseKey)();
|
|
30
|
-
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.DENY);
|
|
29
|
+
const { viewerContext, queryContext, evaluationContext, entity } = await denyCases.get(caseKey)();
|
|
30
|
+
await expect(privacyPolicyRule.evaluateAsync(viewerContext, queryContext, evaluationContext, entity)).resolves.toEqual(PrivacyPolicyRule_1.RuleEvaluationResult.DENY);
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivacyPolicyRuleTestUtils.js","sourceRoot":"","sources":["../../../src/utils/testing/PrivacyPolicyRuleTestUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PrivacyPolicyRuleTestUtils.js","sourceRoot":"","sources":["../../../src/utils/testing/PrivacyPolicyRuleTestUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import EntityCacheAdapter from '../../EntityCacheAdapter';
|
|
2
2
|
import EntityConfiguration from '../../EntityConfiguration';
|
|
3
3
|
import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
|
|
4
|
-
import { FieldTransformerMap } from '../../internal/EntityFieldTransformationUtils';
|
|
5
4
|
import { CacheLoadResult } from '../../internal/ReadThroughEntityCache';
|
|
6
5
|
export declare class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
|
|
7
6
|
getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
|
|
8
7
|
}
|
|
9
8
|
export declare class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
cacheManyAsync<N extends keyof TFields>(_fieldName: N, _objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>): Promise<void>;
|
|
9
|
+
loadManyAsync<N extends keyof TFields>(_fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
|
|
10
|
+
cacheManyAsync<N extends keyof TFields>(_fieldName: N, _objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
|
|
13
11
|
cacheDBMissesAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
|
|
14
12
|
invalidateManyAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly TFields[N][]): Promise<void>;
|
|
15
13
|
}
|
|
@@ -18,11 +16,10 @@ export declare class InMemoryFullCacheStubCacheAdapterProvider implements IEntit
|
|
|
18
16
|
getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
|
|
19
17
|
}
|
|
20
18
|
export declare class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
|
|
21
|
-
readonly cache: Map<string, Readonly<
|
|
22
|
-
constructor(entityConfiguration: EntityConfiguration<TFields>, cache: Map<string, Readonly<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>): Promise<void>;
|
|
19
|
+
readonly cache: Map<string, Readonly<TFields>>;
|
|
20
|
+
constructor(entityConfiguration: EntityConfiguration<TFields>, cache: Map<string, Readonly<TFields>>);
|
|
21
|
+
loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
|
|
22
|
+
cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
|
|
26
23
|
cacheDBMissesAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
|
|
27
24
|
invalidateManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
|
|
28
25
|
private createCacheKey;
|
|
@@ -14,9 +14,6 @@ class NoCacheStubCacheAdapterProvider {
|
|
|
14
14
|
}
|
|
15
15
|
exports.NoCacheStubCacheAdapterProvider = NoCacheStubCacheAdapterProvider;
|
|
16
16
|
class NoCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
|
|
17
|
-
getFieldTransformerMap() {
|
|
18
|
-
return new Map();
|
|
19
|
-
}
|
|
20
17
|
async loadManyAsync(_fieldName, fieldValues) {
|
|
21
18
|
return fieldValues.reduce((acc, v) => {
|
|
22
19
|
acc.set(v, {
|
|
@@ -44,9 +41,6 @@ class InMemoryFullCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
|
|
|
44
41
|
super(entityConfiguration);
|
|
45
42
|
this.cache = cache;
|
|
46
43
|
}
|
|
47
|
-
getFieldTransformerMap() {
|
|
48
|
-
return new Map();
|
|
49
|
-
}
|
|
50
44
|
async loadManyAsync(fieldName, fieldValues) {
|
|
51
45
|
const results = new Map();
|
|
52
46
|
fieldValues.forEach((fieldValue) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAElC,kFAA0D;
|
|
1
|
+
{"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import nullthrows from 'nullthrows';
|
|
2
|
+
|
|
3
|
+
import EntityCacheAdapter from './EntityCacheAdapter';
|
|
4
|
+
import EntityConfiguration from './EntityConfiguration';
|
|
5
|
+
import { CacheStatus, CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
6
|
+
|
|
7
|
+
export default class ComposedEntityCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
|
|
8
|
+
/**
|
|
9
|
+
* A {@link EntityCacheAdapter} that composes other {@link EntityCacheAdapter} instances.
|
|
10
|
+
*
|
|
11
|
+
* @param entityConfiguration - configuration for entity being loaded
|
|
12
|
+
* @param cacheAdapters - list of cache adapters to compose in order of precedence.
|
|
13
|
+
* Earlier cache adapters are read from first and written to (including invalidations) last.
|
|
14
|
+
* Typically, caches closer to the application should be ordered before caches closer to the database.
|
|
15
|
+
*/
|
|
16
|
+
constructor(
|
|
17
|
+
entityConfiguration: EntityConfiguration<TFields>,
|
|
18
|
+
private readonly cacheAdapters: EntityCacheAdapter<TFields>[]
|
|
19
|
+
) {
|
|
20
|
+
super(entityConfiguration);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public async loadManyAsync<N extends keyof TFields>(
|
|
24
|
+
fieldName: N,
|
|
25
|
+
fieldValues: readonly NonNullable<TFields[N]>[]
|
|
26
|
+
): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>> {
|
|
27
|
+
const retMap = new Map<NonNullable<TFields[N]>, CacheLoadResult<TFields>>();
|
|
28
|
+
|
|
29
|
+
let unfulfilledFieldValues = fieldValues;
|
|
30
|
+
for (const cacheAdapter of this.cacheAdapters) {
|
|
31
|
+
const cacheResultsFromAdapter = await cacheAdapter.loadManyAsync(
|
|
32
|
+
fieldName,
|
|
33
|
+
unfulfilledFieldValues
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const newUnfulfilledFieldValues = [];
|
|
37
|
+
for (const [fieldValue, cacheResult] of cacheResultsFromAdapter) {
|
|
38
|
+
if (cacheResult.status === CacheStatus.MISS) {
|
|
39
|
+
newUnfulfilledFieldValues.push(fieldValue);
|
|
40
|
+
} else {
|
|
41
|
+
retMap.set(fieldValue, cacheResult);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
unfulfilledFieldValues = newUnfulfilledFieldValues;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
for (const fieldValue of unfulfilledFieldValues) {
|
|
48
|
+
retMap.set(fieldValue, { status: CacheStatus.MISS });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return retMap;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public async cacheManyAsync<N extends keyof TFields>(
|
|
55
|
+
fieldName: N,
|
|
56
|
+
objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
|
|
57
|
+
): Promise<void> {
|
|
58
|
+
// write to lower layers first
|
|
59
|
+
for (let i = this.cacheAdapters.length - 1; i >= 0; i--) {
|
|
60
|
+
const cacheAdapter = nullthrows(this.cacheAdapters[i]);
|
|
61
|
+
await cacheAdapter.cacheManyAsync(fieldName, objectMap);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public async cacheDBMissesAsync<N extends keyof TFields>(
|
|
66
|
+
fieldName: N,
|
|
67
|
+
fieldValues: readonly NonNullable<TFields[N]>[]
|
|
68
|
+
): Promise<void> {
|
|
69
|
+
// write to lower layers first
|
|
70
|
+
for (let i = this.cacheAdapters.length - 1; i >= 0; i--) {
|
|
71
|
+
const cacheAdapter = nullthrows(this.cacheAdapters[i]);
|
|
72
|
+
await cacheAdapter.cacheDBMissesAsync(fieldName, fieldValues);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public async invalidateManyAsync<N extends keyof TFields>(
|
|
77
|
+
fieldName: N,
|
|
78
|
+
fieldValues: readonly NonNullable<TFields[N]>[]
|
|
79
|
+
): Promise<void> {
|
|
80
|
+
// delete from lower layers first
|
|
81
|
+
for (let i = this.cacheAdapters.length - 1; i >= 0; i--) {
|
|
82
|
+
const cacheAdapter = nullthrows(this.cacheAdapters[i]);
|
|
83
|
+
await cacheAdapter.invalidateManyAsync(fieldName, fieldValues);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import nullthrows from 'nullthrows';
|
|
2
|
+
|
|
3
|
+
import { ISecondaryEntityCache } from './EntitySecondaryCacheLoader';
|
|
4
|
+
|
|
5
|
+
export default class ComposedSecondaryEntityCache<TLoadParams, TFields>
|
|
6
|
+
implements ISecondaryEntityCache<TFields, TLoadParams>
|
|
7
|
+
{
|
|
8
|
+
/**
|
|
9
|
+
* A {@link ISecondaryEntityCache} that composes other {@link ISecondaryEntityCache} instances.
|
|
10
|
+
*
|
|
11
|
+
* @param secondaryEntityCaches - list of caches to compose in order of precedence.
|
|
12
|
+
* Earlier caches are read from first and written to (including invalidations) last.
|
|
13
|
+
* Typically, caches closer to the application should be ordered before caches closer to the database.
|
|
14
|
+
*/
|
|
15
|
+
constructor(
|
|
16
|
+
private readonly secondaryEntityCaches: ISecondaryEntityCache<TFields, TLoadParams>[]
|
|
17
|
+
) {}
|
|
18
|
+
|
|
19
|
+
async loadManyThroughAsync(
|
|
20
|
+
loadParamsArray: readonly Readonly<TLoadParams>[],
|
|
21
|
+
fetcher: (
|
|
22
|
+
fetcherLoadParamsArray: readonly Readonly<TLoadParams>[]
|
|
23
|
+
) => Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>>
|
|
24
|
+
): Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>> {
|
|
25
|
+
return await ComposedSecondaryEntityCache.loadManyThroughRecursivelyAsync(
|
|
26
|
+
this.secondaryEntityCaches,
|
|
27
|
+
loadParamsArray,
|
|
28
|
+
fetcher
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private static async loadManyThroughRecursivelyAsync<TLoadParams, TFields>(
|
|
33
|
+
secondaryEntityCaches: ISecondaryEntityCache<TFields, TLoadParams>[],
|
|
34
|
+
loadParamsArray: readonly Readonly<TLoadParams>[],
|
|
35
|
+
fetcher: (
|
|
36
|
+
fetcherLoadParamsArray: readonly Readonly<TLoadParams>[]
|
|
37
|
+
) => Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>>
|
|
38
|
+
): Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>> {
|
|
39
|
+
if (secondaryEntityCaches.length === 0) {
|
|
40
|
+
return await fetcher(loadParamsArray);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const [firstCache, ...restCaches] = secondaryEntityCaches;
|
|
44
|
+
|
|
45
|
+
return await nullthrows(firstCache).loadManyThroughAsync(
|
|
46
|
+
loadParamsArray,
|
|
47
|
+
(fetcherLoadParamsArray) =>
|
|
48
|
+
ComposedSecondaryEntityCache.loadManyThroughRecursivelyAsync(
|
|
49
|
+
restCaches,
|
|
50
|
+
fetcherLoadParamsArray,
|
|
51
|
+
fetcher
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async invalidateManyAsync(loadParamsArray: readonly Readonly<TLoadParams>[]): Promise<void> {
|
|
57
|
+
// invalidate lower layers first
|
|
58
|
+
for (let i = this.secondaryEntityCaches.length - 1; i >= 0; i--) {
|
|
59
|
+
const secondaryEntityCache = nullthrows(this.secondaryEntityCaches[i]);
|
|
60
|
+
await secondaryEntityCache.invalidateManyAsync(loadParamsArray);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|