@expo/entity-cache-adapter-local-memory 0.40.0 → 0.41.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.
|
@@ -16,14 +16,11 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
16
16
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
17
17
|
const date = new Date();
|
|
18
18
|
const entity1Created = await LocalMemoryTestEntity_1.default.creator(viewerContext)
|
|
19
|
-
.enforcing()
|
|
20
19
|
.setField('name', 'blah')
|
|
21
20
|
.setField('dateField', date)
|
|
22
21
|
.createAsync();
|
|
23
22
|
// loading an entity should put it in cache
|
|
24
|
-
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
25
|
-
.enforcing()
|
|
26
|
-
.loadByIDAsync(entity1Created.getID());
|
|
23
|
+
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext).loadByIDAsync(entity1Created.getID());
|
|
27
24
|
const localMemoryCacheAdapterProvider = entityCompanionProvider['cacheAdapterFlavors'].get('local-memory').cacheAdapterProvider;
|
|
28
25
|
const entitySpecificGenericCacher = localMemoryCacheAdapterProvider['localMemoryCacheAdapterMap'].get(viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity_1.default)
|
|
29
26
|
.entityCompanionDefinition.entityConfiguration.tableName)['genericCacher'];
|
|
@@ -41,9 +38,7 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
41
38
|
});
|
|
42
39
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
43
40
|
const nonExistentId = (0, uuid_1.v4)();
|
|
44
|
-
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.
|
|
45
|
-
.withAuthorizationResults()
|
|
46
|
-
.loadByIDAsync(nonExistentId);
|
|
41
|
+
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
47
42
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
48
43
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
49
44
|
cacheKeyMaker('id', nonExistentId),
|
|
@@ -52,14 +47,10 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
52
47
|
status: entity_1.CacheStatus.NEGATIVE,
|
|
53
48
|
});
|
|
54
49
|
// load again through entities framework to ensure it reads negative result
|
|
55
|
-
const entityNonExistentResult2 = await LocalMemoryTestEntity_1.default.
|
|
56
|
-
.withAuthorizationResults()
|
|
57
|
-
.loadByIDAsync(nonExistentId);
|
|
50
|
+
const entityNonExistentResult2 = await LocalMemoryTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
58
51
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
59
52
|
// invalidate from cache to ensure it invalidates correctly
|
|
60
|
-
await LocalMemoryTestEntity_1.default.
|
|
61
|
-
.utils()
|
|
62
|
-
.invalidateFieldsAsync(entity1.getAllFields());
|
|
53
|
+
await LocalMemoryTestEntity_1.default.loaderUtils(viewerContext).invalidateFieldsAsync(entity1.getAllFields());
|
|
63
54
|
const cachedResultMiss = await entitySpecificGenericCacher.loadManyAsync([
|
|
64
55
|
cacheKeyMaker('id', entity1.getID()),
|
|
65
56
|
]);
|
|
@@ -73,14 +64,11 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
73
64
|
const cacheKeyMaker = genericCacher['makeCacheKey'].bind(genericCacher);
|
|
74
65
|
const date = new Date();
|
|
75
66
|
const entity1Created = await LocalMemoryTestEntity_1.default.creator(viewerContext)
|
|
76
|
-
.enforcing()
|
|
77
67
|
.setField('name', 'blah')
|
|
78
68
|
.setField('dateField', date)
|
|
79
69
|
.createAsync();
|
|
80
70
|
// loading an entity will try to put it in cache but it's a noop cache, so it should be a miss
|
|
81
|
-
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
82
|
-
.enforcing()
|
|
83
|
-
.loadByIDAsync(entity1Created.getID());
|
|
71
|
+
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext).loadByIDAsync(entity1Created.getID());
|
|
84
72
|
const localMemoryCacheAdapterProvider = entityCompanionProvider['cacheAdapterFlavors'].get('local-memory').cacheAdapterProvider;
|
|
85
73
|
const entitySpecificGenericCacher = localMemoryCacheAdapterProvider['localMemoryCacheAdapterMap'].get(viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity_1.default)
|
|
86
74
|
.entityCompanionDefinition.entityConfiguration.tableName)['genericCacher'];
|
|
@@ -93,9 +81,7 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
93
81
|
});
|
|
94
82
|
// a non existent db fetch should try to write negative result ('') but it's a noop cache, so it should be a miss
|
|
95
83
|
const nonExistentId = (0, uuid_1.v4)();
|
|
96
|
-
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.
|
|
97
|
-
.withAuthorizationResults()
|
|
98
|
-
.loadByIDAsync(nonExistentId);
|
|
84
|
+
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(nonExistentId);
|
|
99
85
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
100
86
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
101
87
|
cacheKeyMaker('id', nonExistentId),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericLocalMemoryCacher-full-test.js","sourceRoot":"","sources":["../../src/__tests__/GenericLocalMemoryCacher-full-test.ts"],"names":[],"mappings":";;;;;AAAA,yCAKsB;AACtB,+BAAoC;AAEpC,2FAAmE;AAEnE,kGAA0E;AAC1E,+HAGsE;AAEtE,QAAQ,CAAC,kCAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,uBAAuB,GAAG,IAAA,2FAA4C,GAAE,CAAC;QAC/E,MAAM,aAAa,GAAG,IAAI,sBAAa,CAAC,uBAAuB,CAAC,CAAC;QACjE,MAAM,aAAa,GACjB,aAAa,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,+BAAqB,CAAC,CAChF,sBAAsB,CACvB,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,MAAM,+BAAqB,CAAC,OAAO,CAAC,aAAa,CAAC;aACtE,
|
|
1
|
+
{"version":3,"file":"GenericLocalMemoryCacher-full-test.js","sourceRoot":"","sources":["../../src/__tests__/GenericLocalMemoryCacher-full-test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/entity-cache-adapter-local-memory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "Cross-request local memory cache adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"author": "Expo",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@expo/entity": "^0.
|
|
30
|
+
"@expo/entity": "^0.41.0",
|
|
31
31
|
"lru-cache": "^6.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"ts-mockito": "^2.6.1",
|
|
46
46
|
"typescript": "^5.7.3"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "ee4be736a9a0ba580e9af0194e07c9cd36b1c599"
|
|
49
49
|
}
|
|
@@ -26,15 +26,14 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
26
26
|
|
|
27
27
|
const date = new Date();
|
|
28
28
|
const entity1Created = await LocalMemoryTestEntity.creator(viewerContext)
|
|
29
|
-
.enforcing()
|
|
30
29
|
.setField('name', 'blah')
|
|
31
30
|
.setField('dateField', date)
|
|
32
31
|
.createAsync();
|
|
33
32
|
|
|
34
33
|
// loading an entity should put it in cache
|
|
35
|
-
const entity1 = await LocalMemoryTestEntity.loader(viewerContext)
|
|
36
|
-
.
|
|
37
|
-
|
|
34
|
+
const entity1 = await LocalMemoryTestEntity.loader(viewerContext).loadByIDAsync(
|
|
35
|
+
entity1Created.getID(),
|
|
36
|
+
);
|
|
38
37
|
|
|
39
38
|
const localMemoryCacheAdapterProvider = (
|
|
40
39
|
entityCompanionProvider['cacheAdapterFlavors'] as ReadonlyMap<
|
|
@@ -64,9 +63,10 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
64
63
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
65
64
|
const nonExistentId = uuidv4();
|
|
66
65
|
|
|
67
|
-
const entityNonExistentResult =
|
|
68
|
-
.
|
|
69
|
-
|
|
66
|
+
const entityNonExistentResult =
|
|
67
|
+
await LocalMemoryTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
68
|
+
nonExistentId,
|
|
69
|
+
);
|
|
70
70
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
71
71
|
|
|
72
72
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
@@ -77,15 +77,16 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
// load again through entities framework to ensure it reads negative result
|
|
80
|
-
const entityNonExistentResult2 =
|
|
81
|
-
.
|
|
82
|
-
|
|
80
|
+
const entityNonExistentResult2 =
|
|
81
|
+
await LocalMemoryTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
82
|
+
nonExistentId,
|
|
83
|
+
);
|
|
83
84
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
84
85
|
|
|
85
86
|
// invalidate from cache to ensure it invalidates correctly
|
|
86
|
-
await LocalMemoryTestEntity.
|
|
87
|
-
.
|
|
88
|
-
|
|
87
|
+
await LocalMemoryTestEntity.loaderUtils(viewerContext).invalidateFieldsAsync(
|
|
88
|
+
entity1.getAllFields(),
|
|
89
|
+
);
|
|
89
90
|
const cachedResultMiss = await entitySpecificGenericCacher.loadManyAsync([
|
|
90
91
|
cacheKeyMaker('id', entity1.getID()),
|
|
91
92
|
]);
|
|
@@ -104,15 +105,14 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
104
105
|
|
|
105
106
|
const date = new Date();
|
|
106
107
|
const entity1Created = await LocalMemoryTestEntity.creator(viewerContext)
|
|
107
|
-
.enforcing()
|
|
108
108
|
.setField('name', 'blah')
|
|
109
109
|
.setField('dateField', date)
|
|
110
110
|
.createAsync();
|
|
111
111
|
|
|
112
112
|
// loading an entity will try to put it in cache but it's a noop cache, so it should be a miss
|
|
113
|
-
const entity1 = await LocalMemoryTestEntity.loader(viewerContext)
|
|
114
|
-
.
|
|
115
|
-
|
|
113
|
+
const entity1 = await LocalMemoryTestEntity.loader(viewerContext).loadByIDAsync(
|
|
114
|
+
entity1Created.getID(),
|
|
115
|
+
);
|
|
116
116
|
|
|
117
117
|
const localMemoryCacheAdapterProvider = (
|
|
118
118
|
entityCompanionProvider['cacheAdapterFlavors'] as ReadonlyMap<
|
|
@@ -137,9 +137,10 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
137
137
|
// a non existent db fetch should try to write negative result ('') but it's a noop cache, so it should be a miss
|
|
138
138
|
const nonExistentId = uuidv4();
|
|
139
139
|
|
|
140
|
-
const entityNonExistentResult =
|
|
141
|
-
.
|
|
142
|
-
|
|
140
|
+
const entityNonExistentResult =
|
|
141
|
+
await LocalMemoryTestEntity.loaderWithAuthorizationResults(viewerContext).loadByIDAsync(
|
|
142
|
+
nonExistentId,
|
|
143
|
+
);
|
|
143
144
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
144
145
|
|
|
145
146
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|