@expo/entity-secondary-cache-local-memory 0.35.0 → 0.37.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/LocalMemorySecondaryEntityCache.d.ts +1 -1
- package/build/__tests__/LocalMemorySecondaryEntityCache-test.js +13 -19
- package/build/__tests__/LocalMemorySecondaryEntityCache-test.js.map +1 -1
- package/package.json +5 -5
- package/src/LocalMemorySecondaryEntityCache.ts +4 -4
- package/src/__tests__/LocalMemorySecondaryEntityCache-test.ts +11 -11
|
@@ -7,6 +7,6 @@ import { LocalMemoryCache } from '@expo/entity-cache-adapter-local-memory';
|
|
|
7
7
|
*
|
|
8
8
|
* TLoadParams must be JSON stringifyable.
|
|
9
9
|
*/
|
|
10
|
-
export default class LocalMemorySecondaryEntityCache<TFields, TLoadParams> extends GenericSecondaryEntityCache<TFields, TLoadParams> {
|
|
10
|
+
export default class LocalMemorySecondaryEntityCache<TFields extends Record<string, any>, TLoadParams> extends GenericSecondaryEntityCache<TFields, TLoadParams> {
|
|
11
11
|
constructor(entityConfiguration: EntityConfiguration<TFields>, localMemoryCache: LocalMemoryCache<TFields>);
|
|
12
12
|
}
|
|
@@ -19,21 +19,18 @@ class LocalMemoryTestEntity extends entity_1.Entity {
|
|
|
19
19
|
}
|
|
20
20
|
exports.default = LocalMemoryTestEntity;
|
|
21
21
|
class LocalMemoryTestEntityPrivacyPolicy extends entity_1.EntityPrivacyPolicy {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
35
|
-
];
|
|
36
|
-
}
|
|
22
|
+
createRules = [
|
|
23
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
24
|
+
];
|
|
25
|
+
readRules = [
|
|
26
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
27
|
+
];
|
|
28
|
+
updateRules = [
|
|
29
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
30
|
+
];
|
|
31
|
+
deleteRules = [
|
|
32
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
33
|
+
];
|
|
37
34
|
}
|
|
38
35
|
exports.LocalMemoryTestEntityPrivacyPolicy = LocalMemoryTestEntityPrivacyPolicy;
|
|
39
36
|
exports.localMemoryTestEntityConfiguration = new entity_1.EntityConfiguration({
|
|
@@ -73,10 +70,7 @@ class TestViewerContext extends entity_1.ViewerContext {
|
|
|
73
70
|
}
|
|
74
71
|
const FAKE_ID = 'fake';
|
|
75
72
|
class TestSecondaryLocalMemoryCacheLoader extends entity_1.EntitySecondaryCacheLoader {
|
|
76
|
-
|
|
77
|
-
super(...arguments);
|
|
78
|
-
this.databaseLoadCount = 0;
|
|
79
|
-
}
|
|
73
|
+
databaseLoadCount = 0;
|
|
80
74
|
async fetchObjectsFromDatabaseAsync(loadParamsArray) {
|
|
81
75
|
this.databaseLoadCount += loadParamsArray.length;
|
|
82
76
|
const emptyMap = new Map(loadParamsArray.map((p) => [p, null]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemorySecondaryEntityCache-test.js","sourceRoot":"","sources":["../../src/__tests__/LocalMemorySecondaryEntityCache-test.ts"],"names":[],"mappings":";;;;;;AAAA,yCAgBsB;AACtB,+FAGiD;AACjD,4DAAoC;AAEpC,yGAAiF;AAOjF,MAAqB,qBAAsB,SAAQ,eAIlD;IACC,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,qBAAqB;YAClC,mBAAmB,EAAE,0CAAkC;YACvD,kBAAkB,EAAE,kCAAkC;SACvD,CAAC;IACJ,CAAC;CACF;AAlBD,wCAkBC;AAED,MAAa,kCAAmC,SAAQ,4BAKvD;
|
|
1
|
+
{"version":3,"file":"LocalMemorySecondaryEntityCache-test.js","sourceRoot":"","sources":["../../src/__tests__/LocalMemorySecondaryEntityCache-test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/entity-secondary-cache-local-memory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"description": "Local memory secondary cache for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"test": "jest --rootDir . --config ../../resources/jest.config.js --passWithNoTests",
|
|
17
17
|
"integration": "../../resources/run-with-docker yarn integration-no-setup",
|
|
18
18
|
"integration-no-setup": "jest --config ../../resources/jest-integration.config.js --rootDir . --runInBand --passWithNoTests",
|
|
19
|
-
"barrelsby": "barrelsby --
|
|
19
|
+
"barrelsby": "barrelsby --config ../../.barrelsby.json"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=16"
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"@expo/entity-cache-adapter-local-memory": "*"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@expo/entity": "^0.
|
|
35
|
-
"@expo/entity-cache-adapter-local-memory": "^0.
|
|
34
|
+
"@expo/entity": "^0.37.0",
|
|
35
|
+
"@expo/entity-cache-adapter-local-memory": "^0.37.0",
|
|
36
36
|
"nullthrows": "^1.1.1"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "59fc77810ad169b1820f5c58a462d996f375e0cc"
|
|
39
39
|
}
|
|
@@ -12,15 +12,15 @@ import {
|
|
|
12
12
|
* TLoadParams must be JSON stringifyable.
|
|
13
13
|
*/
|
|
14
14
|
export default class LocalMemorySecondaryEntityCache<
|
|
15
|
-
TFields,
|
|
16
|
-
TLoadParams
|
|
15
|
+
TFields extends Record<string, any>,
|
|
16
|
+
TLoadParams,
|
|
17
17
|
> extends GenericSecondaryEntityCache<TFields, TLoadParams> {
|
|
18
18
|
constructor(
|
|
19
19
|
entityConfiguration: EntityConfiguration<TFields>,
|
|
20
|
-
localMemoryCache: LocalMemoryCache<TFields
|
|
20
|
+
localMemoryCache: LocalMemoryCache<TFields>,
|
|
21
21
|
) {
|
|
22
22
|
super(new GenericLocalMemoryCacher(entityConfiguration, localMemoryCache), (params) =>
|
|
23
|
-
JSON.stringify(params)
|
|
23
|
+
JSON.stringify(params),
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -105,7 +105,7 @@ export const localMemoryTestEntityConfiguration =
|
|
|
105
105
|
});
|
|
106
106
|
|
|
107
107
|
export const createTestEntityCompanionProvider = (
|
|
108
|
-
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter()
|
|
108
|
+
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter(),
|
|
109
109
|
): EntityCompanionProvider => {
|
|
110
110
|
return new EntityCompanionProvider(
|
|
111
111
|
metricsAdapter,
|
|
@@ -125,7 +125,7 @@ export const createTestEntityCompanionProvider = (
|
|
|
125
125
|
cacheAdapterProvider: LocalMemoryCacheAdapterProvider.createProviderWithOptions(),
|
|
126
126
|
},
|
|
127
127
|
],
|
|
128
|
-
])
|
|
128
|
+
]),
|
|
129
129
|
);
|
|
130
130
|
};
|
|
131
131
|
|
|
@@ -146,7 +146,7 @@ class TestSecondaryLocalMemoryCacheLoader extends EntitySecondaryCacheLoader<
|
|
|
146
146
|
public databaseLoadCount = 0;
|
|
147
147
|
|
|
148
148
|
protected async fetchObjectsFromDatabaseAsync(
|
|
149
|
-
loadParamsArray: readonly Readonly<TestLoadParams>[]
|
|
149
|
+
loadParamsArray: readonly Readonly<TestLoadParams>[],
|
|
150
150
|
): Promise<ReadonlyMap<Readonly<TestLoadParams>, Readonly<LocalMemoryTestEntityFields> | null>> {
|
|
151
151
|
this.databaseLoadCount += loadParamsArray.length;
|
|
152
152
|
|
|
@@ -162,7 +162,7 @@ class TestSecondaryLocalMemoryCacheLoader extends EntitySecondaryCacheLoader<
|
|
|
162
162
|
.loadManyByFieldEqualityConjunctionAsync([
|
|
163
163
|
{ fieldName: 'id', fieldValue: loadParams.id },
|
|
164
164
|
])
|
|
165
|
-
)[0]
|
|
165
|
+
)[0],
|
|
166
166
|
).getAllFields();
|
|
167
167
|
});
|
|
168
168
|
}
|
|
@@ -179,22 +179,22 @@ describe(LocalMemorySecondaryEntityCache, () => {
|
|
|
179
179
|
const secondaryCacheLoader = new TestSecondaryLocalMemoryCacheLoader(
|
|
180
180
|
new LocalMemorySecondaryEntityCache(
|
|
181
181
|
localMemoryTestEntityConfiguration,
|
|
182
|
-
GenericLocalMemoryCacher.createLRUCache<LocalMemoryTestEntityFields>({})
|
|
182
|
+
GenericLocalMemoryCacher.createLRUCache<LocalMemoryTestEntityFields>({}),
|
|
183
183
|
),
|
|
184
|
-
LocalMemoryTestEntity.loader(viewerContext)
|
|
184
|
+
LocalMemoryTestEntity.loader(viewerContext),
|
|
185
185
|
);
|
|
186
186
|
|
|
187
187
|
const loadParams = { id: createdEntity.getID() };
|
|
188
188
|
const results = await secondaryCacheLoader.loadManyAsync([loadParams]);
|
|
189
189
|
expect(nullthrows(results.get(loadParams)).enforceValue().getID()).toEqual(
|
|
190
|
-
createdEntity.getID()
|
|
190
|
+
createdEntity.getID(),
|
|
191
191
|
);
|
|
192
192
|
|
|
193
193
|
expect(secondaryCacheLoader.databaseLoadCount).toEqual(1);
|
|
194
194
|
|
|
195
195
|
const results2 = await secondaryCacheLoader.loadManyAsync([loadParams]);
|
|
196
196
|
expect(nullthrows(results2.get(loadParams)).enforceValue().getID()).toEqual(
|
|
197
|
-
createdEntity.getID()
|
|
197
|
+
createdEntity.getID(),
|
|
198
198
|
);
|
|
199
199
|
|
|
200
200
|
expect(secondaryCacheLoader.databaseLoadCount).toEqual(1);
|
|
@@ -203,7 +203,7 @@ describe(LocalMemorySecondaryEntityCache, () => {
|
|
|
203
203
|
|
|
204
204
|
const results3 = await secondaryCacheLoader.loadManyAsync([loadParams]);
|
|
205
205
|
expect(nullthrows(results3.get(loadParams)).enforceValue().getID()).toEqual(
|
|
206
|
-
createdEntity.getID()
|
|
206
|
+
createdEntity.getID(),
|
|
207
207
|
);
|
|
208
208
|
|
|
209
209
|
expect(secondaryCacheLoader.databaseLoadCount).toEqual(2);
|
|
@@ -215,9 +215,9 @@ describe(LocalMemorySecondaryEntityCache, () => {
|
|
|
215
215
|
const secondaryCacheLoader = new TestSecondaryLocalMemoryCacheLoader(
|
|
216
216
|
new LocalMemorySecondaryEntityCache(
|
|
217
217
|
localMemoryTestEntityConfiguration,
|
|
218
|
-
GenericLocalMemoryCacher.createLRUCache<LocalMemoryTestEntityFields>({})
|
|
218
|
+
GenericLocalMemoryCacher.createLRUCache<LocalMemoryTestEntityFields>({}),
|
|
219
219
|
),
|
|
220
|
-
LocalMemoryTestEntity.loader(viewerContext)
|
|
220
|
+
LocalMemoryTestEntity.loader(viewerContext),
|
|
221
221
|
);
|
|
222
222
|
|
|
223
223
|
const loadParams = { id: FAKE_ID };
|