@expo/entity-cache-adapter-local-memory 0.35.0 → 0.36.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/GenericLocalMemoryCacher.d.ts +1 -1
- package/build/GenericLocalMemoryCacher.js +2 -0
- package/build/GenericLocalMemoryCacher.js.map +1 -1
- package/build/LocalMemoryCacheAdapterProvider.d.ts +1 -1
- package/build/LocalMemoryCacheAdapterProvider.js +2 -1
- package/build/LocalMemoryCacheAdapterProvider.js.map +1 -1
- package/build/__tests__/GenericLocalMemoryCacher-full-test.js +12 -4
- package/build/__tests__/GenericLocalMemoryCacher-full-test.js.map +1 -1
- package/build/__tests__/GenericLocalMemoryCacher-test.js.map +1 -1
- package/build/testfixtures/LocalMemoryTestEntity.js +12 -15
- package/build/testfixtures/LocalMemoryTestEntity.js.map +1 -1
- package/package.json +3 -3
- package/src/GenericLocalMemoryCacher.ts +8 -6
- package/src/LocalMemoryCacheAdapterProvider.ts +7 -7
- package/src/__tests__/GenericLocalMemoryCacher-full-test.ts +14 -12
- package/src/__tests__/GenericLocalMemoryCacher-test.ts +11 -5
- package/src/testfixtures/createLocalMemoryTestEntityCompanionProvider.ts +4 -4
|
@@ -3,7 +3,7 @@ import LRUCache from 'lru-cache';
|
|
|
3
3
|
export declare const DOES_NOT_EXIST_LOCAL_MEMORY_CACHE: unique symbol;
|
|
4
4
|
type LocalMemoryCacheValue<TFields> = Readonly<TFields> | typeof DOES_NOT_EXIST_LOCAL_MEMORY_CACHE;
|
|
5
5
|
export type LocalMemoryCache<TFields> = LRUCache<string, LocalMemoryCacheValue<TFields>>;
|
|
6
|
-
export default class GenericLocalMemoryCacher<TFields
|
|
6
|
+
export default class GenericLocalMemoryCacher<TFields extends Record<string, any>> implements IEntityGenericCacher<TFields> {
|
|
7
7
|
private readonly entityConfiguration;
|
|
8
8
|
private readonly localMemoryCache;
|
|
9
9
|
constructor(entityConfiguration: EntityConfiguration<TFields>, localMemoryCache: LocalMemoryCache<TFields>);
|
|
@@ -11,6 +11,8 @@ const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
|
11
11
|
// The sentinel value is distinct from any (positively) cached value.
|
|
12
12
|
exports.DOES_NOT_EXIST_LOCAL_MEMORY_CACHE = Symbol('doesNotExist');
|
|
13
13
|
class GenericLocalMemoryCacher {
|
|
14
|
+
entityConfiguration;
|
|
15
|
+
localMemoryCache;
|
|
14
16
|
constructor(entityConfiguration, localMemoryCache) {
|
|
15
17
|
this.entityConfiguration = entityConfiguration;
|
|
16
18
|
this.localMemoryCache = localMemoryCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericLocalMemoryCacher.js","sourceRoot":"","sources":["../src/GenericLocalMemoryCacher.ts"],"names":[],"mappings":";;;;;;AAAA,yCAKsB;AACtB,0DAAkC;AAClC,0DAAiC;AAEjC,+EAA+E;AAC/E,qEAAqE;AACxD,QAAA,iCAAiC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAIxE,MAAqB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"GenericLocalMemoryCacher.js","sourceRoot":"","sources":["../src/GenericLocalMemoryCacher.ts"],"names":[],"mappings":";;;;;;AAAA,yCAKsB;AACtB,0DAAkC;AAClC,0DAAiC;AAEjC,+EAA+E;AAC/E,qEAAqE;AACxD,QAAA,iCAAiC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAIxE,MAAqB,wBAAwB;IAIxB;IACA;IAFnB,YACmB,mBAAiD,EACjD,gBAA2C;QAD3C,wBAAmB,GAAnB,mBAAmB,CAA8B;QACjD,qBAAgB,GAAhB,gBAAgB,CAA2B;IAC3D,CAAC;IAEJ,MAAM,CAAC,cAAc,CACnB,UAAqD,EAAE;QAEvD,MAAM,iCAAiC,GAAG,EAAE,CAAC;QAC7C,MAAM,sBAAsB,GAAG,KAAK,CAAC;QACrC,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,IAAI,iCAAiC,CAAC;QAC9E,OAAO,IAAI,mBAAQ,CAAyC;YAC1D,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,sBAAsB;YAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,yCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,gBAAgB;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,mBAAQ,CAAyC;YAC1D,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC,CAAC;SACX,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,IAAuB;QAEvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoC,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,WAAW,KAAK,yCAAiC,EAAE,CAAC;gBACtD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;oBACpB,MAAM,EAAE,oBAAW,CAAC,QAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;oBACpB,MAAM,EAAE,oBAAW,CAAC,GAAG;oBACvB,IAAI,EAAE,WAAiC;iBACxC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;oBACpB,MAAM,EAAE,oBAAW,CAAC,IAAI;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,SAAiD;QAC3E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QACrD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,yCAAiC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,IAAuB;QACtD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEM,YAAY,CACjB,SAAY,EACZ,UAAmC;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtF,IAAA,mBAAS,EAAC,UAAU,EAAE,sCAAsC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,mBAAmB,CAAC,SAAS;YAClC,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE;YAC7C,UAAU;YACV,MAAM,CAAC,UAAU,CAAC;SACnB,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF;AAzFD,2CAyFC"}
|
|
@@ -18,5 +18,5 @@ export default class LocalMemoryCacheAdapterProvider implements IEntityCacheAdap
|
|
|
18
18
|
}): IEntityCacheAdapterProvider;
|
|
19
19
|
private localMemoryCacheAdapterMap;
|
|
20
20
|
private constructor();
|
|
21
|
-
getCacheAdapter<TFields
|
|
21
|
+
getCacheAdapter<TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>): IEntityCacheAdapter<TFields>;
|
|
22
22
|
}
|
|
@@ -10,6 +10,7 @@ const GenericLocalMemoryCacher_1 = __importDefault(require("./GenericLocalMemory
|
|
|
10
10
|
* share the local memory cache.
|
|
11
11
|
*/
|
|
12
12
|
class LocalMemoryCacheAdapterProvider {
|
|
13
|
+
localMemoryCacheCreator;
|
|
13
14
|
/**
|
|
14
15
|
* @returns a no-op local memory cache adapter provider, or one that doesn't cache locally.
|
|
15
16
|
*/
|
|
@@ -22,9 +23,9 @@ class LocalMemoryCacheAdapterProvider {
|
|
|
22
23
|
static createProviderWithOptions(options = {}) {
|
|
23
24
|
return new LocalMemoryCacheAdapterProvider(() => GenericLocalMemoryCacher_1.default.createLRUCache(options));
|
|
24
25
|
}
|
|
26
|
+
localMemoryCacheAdapterMap = new Map();
|
|
25
27
|
constructor(localMemoryCacheCreator) {
|
|
26
28
|
this.localMemoryCacheCreator = localMemoryCacheCreator;
|
|
27
|
-
this.localMemoryCacheAdapterMap = new Map();
|
|
28
29
|
}
|
|
29
30
|
getCacheAdapter(entityConfiguration) {
|
|
30
31
|
return (0, entity_1.computeIfAbsent)(this.localMemoryCacheAdapterMap, entityConfiguration.tableName, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryCacheAdapterProvider.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapterProvider.ts"],"names":[],"mappings":";;;;;AAAA,yCAMsB;AAEtB,0FAAwF;AAExF;;;GAGG;AACH,MAAqB,+BAA+B;
|
|
1
|
+
{"version":3,"file":"LocalMemoryCacheAdapterProvider.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapterProvider.ts"],"names":[],"mappings":";;;;;AAAA,yCAMsB;AAEtB,0FAAwF;AAExF;;;GAGG;AACH,MAAqB,+BAA+B;IAwB/B;IAvBnB;;OAEG;IACH,MAAM,CAAC,kBAAkB;QACvB,OAAO,IAAI,+BAA+B,CAAC,GAAY,EAAE,CACvD,kCAAwB,CAAC,eAAe,EAAW,CACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,UAAqD,EAAE;QAEvD,OAAO,IAAI,+BAA+B,CAAC,GAAY,EAAE,CACvD,kCAAwB,CAAC,cAAc,CAAU,OAAO,CAAC,CAC1D,CAAC;IACJ,CAAC;IAEO,0BAA0B,GAAG,IAAI,GAAG,EAA0C,CAAC;IAEvF,YACmB,uBAAiE;QAAjE,4BAAuB,GAAvB,uBAAuB,CAA0C;IACjF,CAAC;IAEG,eAAe,CACpB,mBAAiD;QAEjD,OAAO,IAAA,wBAAe,EAAC,IAAI,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAW,CAAC;YACjE,OAAO,IAAI,kCAAyB,CAClC,IAAI,kCAAwB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CACpE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArCD,kDAqCC"}
|
|
@@ -40,7 +40,9 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
40
40
|
});
|
|
41
41
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
42
42
|
const nonExistentId = (0, uuid_1.v4)();
|
|
43
|
-
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
43
|
+
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
44
|
+
.withAuthorizationResults()
|
|
45
|
+
.loadByIDAsync(nonExistentId);
|
|
44
46
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
45
47
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
46
48
|
cacheKeyMaker('id', nonExistentId),
|
|
@@ -49,10 +51,14 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
49
51
|
status: entity_1.CacheStatus.NEGATIVE,
|
|
50
52
|
});
|
|
51
53
|
// load again through entities framework to ensure it reads negative result
|
|
52
|
-
const entityNonExistentResult2 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
54
|
+
const entityNonExistentResult2 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
55
|
+
.withAuthorizationResults()
|
|
56
|
+
.loadByIDAsync(nonExistentId);
|
|
53
57
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
54
58
|
// invalidate from cache to ensure it invalidates correctly
|
|
55
|
-
await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
59
|
+
await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
60
|
+
.utils()
|
|
61
|
+
.invalidateFieldsAsync(entity1.getAllFields());
|
|
56
62
|
const cachedResultMiss = await entitySpecificGenericCacher.loadManyAsync([
|
|
57
63
|
cacheKeyMaker('id', entity1.getID()),
|
|
58
64
|
]);
|
|
@@ -85,7 +91,9 @@ describe(GenericLocalMemoryCacher_1.default, () => {
|
|
|
85
91
|
});
|
|
86
92
|
// a non existent db fetch should try to write negative result ('') but it's a noop cache, so it should be a miss
|
|
87
93
|
const nonExistentId = (0, uuid_1.v4)();
|
|
88
|
-
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
94
|
+
const entityNonExistentResult = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
95
|
+
.withAuthorizationResults()
|
|
96
|
+
.loadByIDAsync(nonExistentId);
|
|
89
97
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
90
98
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
91
99
|
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,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;aACxB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;aAC3B,kBAAkB,EAAE,CAAC;QAExB,2CAA2C;QAC3C,MAAM,OAAO,GAAG,MAAM,+BAAqB,CAAC,MAAM,CAAC,aAAa,CAAC;aAC9D,SAAS,EAAE;aACX,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QAEzC,MAAM,+BAA+B,GACnC,uBAAuB,CAAC,qBAAqB,CAI9C,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,oBAAuD,CAAC;QAC/E,MAAM,2BAA2B,GAAG,+BAA+B,CACjE,4BAA4B,CAC7B,CAAC,GAAG,CACH,aAAa,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,+BAAqB,CAAC;aAC/E,yBAAyB,CAAC,mBAAmB,CAAC,SAAS,CAC1D,CAAC,eAAe,CAAC,CAAC;QACpB,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,aAAa,CAAC;YACnE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAE,CAAC;QAC5E,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC;YAChC,MAAM,EAAE,oBAAW,CAAC,GAAG;YACvB,IAAI,EAAE;gBACJ,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,IAAI;aAChB;SACF,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,aAAa,GAAG,IAAA,SAAM,GAAE,CAAC;QAE/B,MAAM,uBAAuB,GAAG,MAAM,+BAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"GenericLocalMemoryCacher-full-test.js","sourceRoot":"","sources":["../../src/__tests__/GenericLocalMemoryCacher-full-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericLocalMemoryCacher-test.js","sourceRoot":"","sources":["../../src/__tests__/GenericLocalMemoryCacher-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAKsB;AAEtB,wFAEqC;AAMrC,MAAM,mBAAmB,GAAG,IAAI,4BAAmB,CAAa;IAC9D,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,kBAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACrD;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,cAAc;CACnC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,kCAAwB,CAAC,cAAc,EAAE,GAAG,EAAE;QACrD,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,kCAAwB,CAAC,cAAc,EAAE,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAG,kCAAwB,CAAC,cAAc,CAAC;gBACpD,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAwB,CAAC,eAAe,EAAE,GAAG,EAAE;QACtD,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAG,kCAAwB,CAAC,eAAe,EAAsB,CAAC;YAC7E,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,kCAAyB,CAChD,IAAI,kCAAwB,
|
|
1
|
+
{"version":3,"file":"GenericLocalMemoryCacher-test.js","sourceRoot":"","sources":["../../src/__tests__/GenericLocalMemoryCacher-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,21 +13,18 @@ class LocalMemoryTestEntity extends entity_1.Entity {
|
|
|
13
13
|
}
|
|
14
14
|
exports.default = LocalMemoryTestEntity;
|
|
15
15
|
class LocalMemoryTestEntityPrivacyPolicy extends entity_1.EntityPrivacyPolicy {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
29
|
-
];
|
|
30
|
-
}
|
|
16
|
+
createRules = [
|
|
17
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
18
|
+
];
|
|
19
|
+
readRules = [
|
|
20
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
21
|
+
];
|
|
22
|
+
updateRules = [
|
|
23
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
24
|
+
];
|
|
25
|
+
deleteRules = [
|
|
26
|
+
new entity_1.AlwaysAllowPrivacyPolicyRule(),
|
|
27
|
+
];
|
|
31
28
|
}
|
|
32
29
|
exports.LocalMemoryTestEntityPrivacyPolicy = LocalMemoryTestEntityPrivacyPolicy;
|
|
33
30
|
exports.localMemoryTestEntityConfiguration = new entity_1.EntityConfiguration({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/LocalMemoryTestEntity.ts"],"names":[],"mappings":";;;AAAA,yCAUsB;AAQtB,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":"LocalMemoryTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/LocalMemoryTestEntity.ts"],"names":[],"mappings":";;;AAAA,yCAUsB;AAQtB,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;IAC6B,WAAW,GAAG;QACxC,IAAI,qCAA4B,EAK7B;KACJ,CAAC;IAC0B,SAAS,GAAG;QACtC,IAAI,qCAA4B,EAK7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,qCAA4B,EAK7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,qCAA4B,EAK7B;KACJ,CAAC;CACH;AAtCD,gFAsCC;AAEY,QAAA,kCAAkC,GAC7C,IAAI,4BAAmB,CAA8B;IACnD,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,4BAA4B;IACvC,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,kBAAS,CAAC;YAChB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAI,EAAE,IAAI,oBAAW,CAAC;YACpB,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,SAAS,EAAE,IAAI,kBAAS,CAAC;YACvB,UAAU,EAAE,YAAY;SACzB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,cAAc;CACnC,CAAC,CAAC"}
|
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.36.0",
|
|
4
4
|
"description": "Cross-request local memory cache adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"lru-cache": "^6.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@expo/entity": "^0.
|
|
36
|
+
"@expo/entity": "^0.36.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "f17a33c42874c0d9c46311d19847074ddafeb04e"
|
|
39
39
|
}
|
|
@@ -13,14 +13,16 @@ export const DOES_NOT_EXIST_LOCAL_MEMORY_CACHE = Symbol('doesNotExist');
|
|
|
13
13
|
type LocalMemoryCacheValue<TFields> = Readonly<TFields> | typeof DOES_NOT_EXIST_LOCAL_MEMORY_CACHE;
|
|
14
14
|
export type LocalMemoryCache<TFields> = LRUCache<string, LocalMemoryCacheValue<TFields>>;
|
|
15
15
|
|
|
16
|
-
export default class GenericLocalMemoryCacher<TFields
|
|
16
|
+
export default class GenericLocalMemoryCacher<TFields extends Record<string, any>>
|
|
17
|
+
implements IEntityGenericCacher<TFields>
|
|
18
|
+
{
|
|
17
19
|
constructor(
|
|
18
20
|
private readonly entityConfiguration: EntityConfiguration<TFields>,
|
|
19
|
-
private readonly localMemoryCache: LocalMemoryCache<TFields
|
|
21
|
+
private readonly localMemoryCache: LocalMemoryCache<TFields>,
|
|
20
22
|
) {}
|
|
21
23
|
|
|
22
24
|
static createLRUCache<TFields>(
|
|
23
|
-
options: { maxSize?: number; ttlSeconds?: number } = {}
|
|
25
|
+
options: { maxSize?: number; ttlSeconds?: number } = {},
|
|
24
26
|
): LocalMemoryCache<TFields> {
|
|
25
27
|
const DEFAULT_LRU_CACHE_MAX_AGE_SECONDS = 10;
|
|
26
28
|
const DEFAULT_LRU_CACHE_SIZE = 10000;
|
|
@@ -40,7 +42,7 @@ export default class GenericLocalMemoryCacher<TFields> implements IEntityGeneric
|
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
public async loadManyAsync(
|
|
43
|
-
keys: readonly string[]
|
|
45
|
+
keys: readonly string[],
|
|
44
46
|
): Promise<ReadonlyMap<string, CacheLoadResult<TFields>>> {
|
|
45
47
|
const cacheResults = new Map<string, CacheLoadResult<TFields>>();
|
|
46
48
|
for (const key of keys) {
|
|
@@ -83,7 +85,7 @@ export default class GenericLocalMemoryCacher<TFields> implements IEntityGeneric
|
|
|
83
85
|
|
|
84
86
|
public makeCacheKey<N extends keyof TFields>(
|
|
85
87
|
fieldName: N,
|
|
86
|
-
fieldValue: NonNullable<TFields[N]
|
|
88
|
+
fieldValue: NonNullable<TFields[N]>,
|
|
87
89
|
): string {
|
|
88
90
|
const columnName = this.entityConfiguration.entityToDBFieldsKeyMapping.get(fieldName);
|
|
89
91
|
invariant(columnName, `database field mapping missing for ${String(fieldName)}`);
|
|
@@ -96,7 +98,7 @@ export default class GenericLocalMemoryCacher<TFields> implements IEntityGeneric
|
|
|
96
98
|
|
|
97
99
|
const delimiter = ':';
|
|
98
100
|
const escapedParts = parts.map((part) =>
|
|
99
|
-
part.replace('\\', '\\\\').replace(delimiter, `\\${delimiter}`)
|
|
101
|
+
part.replace('\\', '\\\\').replace(delimiter, `\\${delimiter}`),
|
|
100
102
|
);
|
|
101
103
|
return escapedParts.join(delimiter);
|
|
102
104
|
}
|
|
@@ -18,7 +18,7 @@ export default class LocalMemoryCacheAdapterProvider implements IEntityCacheAdap
|
|
|
18
18
|
*/
|
|
19
19
|
static createNoOpProvider(): IEntityCacheAdapterProvider {
|
|
20
20
|
return new LocalMemoryCacheAdapterProvider(<TFields>() =>
|
|
21
|
-
GenericLocalMemoryCacher.createNoOpCache<TFields>()
|
|
21
|
+
GenericLocalMemoryCacher.createNoOpCache<TFields>(),
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -26,26 +26,26 @@ export default class LocalMemoryCacheAdapterProvider implements IEntityCacheAdap
|
|
|
26
26
|
* @returns a local memory cache adapter provider configured with the supplied options.
|
|
27
27
|
*/
|
|
28
28
|
static createProviderWithOptions(
|
|
29
|
-
options: { maxSize?: number; ttlSeconds?: number } = {}
|
|
29
|
+
options: { maxSize?: number; ttlSeconds?: number } = {},
|
|
30
30
|
): IEntityCacheAdapterProvider {
|
|
31
31
|
return new LocalMemoryCacheAdapterProvider(<TFields>() =>
|
|
32
|
-
GenericLocalMemoryCacher.createLRUCache<TFields>(options)
|
|
32
|
+
GenericLocalMemoryCacher.createLRUCache<TFields>(options),
|
|
33
33
|
);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
private localMemoryCacheAdapterMap = new Map<string, GenericEntityCacheAdapter<any>>();
|
|
37
37
|
|
|
38
38
|
private constructor(
|
|
39
|
-
private readonly localMemoryCacheCreator: <TFields>() => LocalMemoryCache<TFields
|
|
39
|
+
private readonly localMemoryCacheCreator: <TFields>() => LocalMemoryCache<TFields>,
|
|
40
40
|
) {}
|
|
41
41
|
|
|
42
|
-
public getCacheAdapter<TFields
|
|
43
|
-
entityConfiguration: EntityConfiguration<TFields
|
|
42
|
+
public getCacheAdapter<TFields extends Record<string, any>>(
|
|
43
|
+
entityConfiguration: EntityConfiguration<TFields>,
|
|
44
44
|
): IEntityCacheAdapter<TFields> {
|
|
45
45
|
return computeIfAbsent(this.localMemoryCacheAdapterMap, entityConfiguration.tableName, () => {
|
|
46
46
|
const localMemoryCache = this.localMemoryCacheCreator<TFields>();
|
|
47
47
|
return new GenericEntityCacheAdapter(
|
|
48
|
-
new GenericLocalMemoryCacher(entityConfiguration, localMemoryCache)
|
|
48
|
+
new GenericLocalMemoryCacher(entityConfiguration, localMemoryCache),
|
|
49
49
|
);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
@@ -45,7 +45,7 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
45
45
|
'localMemoryCacheAdapterMap'
|
|
46
46
|
].get(
|
|
47
47
|
viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity)
|
|
48
|
-
.entityCompanionDefinition.entityConfiguration.tableName
|
|
48
|
+
.entityCompanionDefinition.entityConfiguration.tableName,
|
|
49
49
|
)!['genericCacher'];
|
|
50
50
|
const cachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
51
51
|
cacheKeyMaker('id', entity1.getID()),
|
|
@@ -63,9 +63,9 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
63
63
|
// simulate non existent db fetch, should write negative result ('') to cache
|
|
64
64
|
const nonExistentId = uuidv4();
|
|
65
65
|
|
|
66
|
-
const entityNonExistentResult = await LocalMemoryTestEntity.loader(viewerContext)
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
const entityNonExistentResult = await LocalMemoryTestEntity.loader(viewerContext)
|
|
67
|
+
.withAuthorizationResults()
|
|
68
|
+
.loadByIDAsync(nonExistentId);
|
|
69
69
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
70
70
|
|
|
71
71
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
@@ -76,13 +76,15 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
76
76
|
});
|
|
77
77
|
|
|
78
78
|
// load again through entities framework to ensure it reads negative result
|
|
79
|
-
const entityNonExistentResult2 = await LocalMemoryTestEntity.loader(
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
const entityNonExistentResult2 = await LocalMemoryTestEntity.loader(viewerContext)
|
|
80
|
+
.withAuthorizationResults()
|
|
81
|
+
.loadByIDAsync(nonExistentId);
|
|
82
82
|
expect(entityNonExistentResult2.ok).toBe(false);
|
|
83
83
|
|
|
84
84
|
// invalidate from cache to ensure it invalidates correctly
|
|
85
|
-
await LocalMemoryTestEntity.loader(viewerContext)
|
|
85
|
+
await LocalMemoryTestEntity.loader(viewerContext)
|
|
86
|
+
.utils()
|
|
87
|
+
.invalidateFieldsAsync(entity1.getAllFields());
|
|
86
88
|
const cachedResultMiss = await entitySpecificGenericCacher.loadManyAsync([
|
|
87
89
|
cacheKeyMaker('id', entity1.getID()),
|
|
88
90
|
]);
|
|
@@ -120,7 +122,7 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
120
122
|
'localMemoryCacheAdapterMap'
|
|
121
123
|
].get(
|
|
122
124
|
viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity)
|
|
123
|
-
.entityCompanionDefinition.entityConfiguration.tableName
|
|
125
|
+
.entityCompanionDefinition.entityConfiguration.tableName,
|
|
124
126
|
)!['genericCacher'];
|
|
125
127
|
const cachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
126
128
|
cacheKeyMaker('id', entity1.getID()),
|
|
@@ -133,9 +135,9 @@ describe(GenericLocalMemoryCacher, () => {
|
|
|
133
135
|
// a non existent db fetch should try to write negative result ('') but it's a noop cache, so it should be a miss
|
|
134
136
|
const nonExistentId = uuidv4();
|
|
135
137
|
|
|
136
|
-
const entityNonExistentResult = await LocalMemoryTestEntity.loader(viewerContext)
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
const entityNonExistentResult = await LocalMemoryTestEntity.loader(viewerContext)
|
|
139
|
+
.withAuthorizationResults()
|
|
140
|
+
.loadByIDAsync(nonExistentId);
|
|
139
141
|
expect(entityNonExistentResult.ok).toBe(false);
|
|
140
142
|
|
|
141
143
|
const nonExistentCachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
@@ -54,7 +54,10 @@ describe('Use within GenericEntityCacheAdapter', () => {
|
|
|
54
54
|
describe('loadManyAsync', () => {
|
|
55
55
|
it('returns appropriate cache results', async () => {
|
|
56
56
|
const cacheAdapter = new GenericEntityCacheAdapter(
|
|
57
|
-
new GenericLocalMemoryCacher(
|
|
57
|
+
new GenericLocalMemoryCacher(
|
|
58
|
+
entityConfiguration,
|
|
59
|
+
GenericLocalMemoryCacher.createLRUCache(),
|
|
60
|
+
),
|
|
58
61
|
);
|
|
59
62
|
|
|
60
63
|
const cacheHits = new Map<string, Readonly<BlahFields>>([['test-id-1', { id: 'test-id-1' }]]);
|
|
@@ -78,7 +81,10 @@ describe('Use within GenericEntityCacheAdapter', () => {
|
|
|
78
81
|
|
|
79
82
|
it('returns empty map when passed empty array of fieldValues', async () => {
|
|
80
83
|
const cacheAdapter = new GenericEntityCacheAdapter(
|
|
81
|
-
new GenericLocalMemoryCacher(
|
|
84
|
+
new GenericLocalMemoryCacher(
|
|
85
|
+
entityConfiguration,
|
|
86
|
+
GenericLocalMemoryCacher.createLRUCache(),
|
|
87
|
+
),
|
|
82
88
|
);
|
|
83
89
|
const results = await cacheAdapter.loadManyAsync('id', []);
|
|
84
90
|
expect(results).toEqual(new Map());
|
|
@@ -118,7 +124,7 @@ describe('Use within GenericEntityCacheAdapter', () => {
|
|
|
118
124
|
const localMemoryCache = GenericLocalMemoryCacher.createLRUCache<BlahFields>({});
|
|
119
125
|
|
|
120
126
|
const cacheAdapter = new GenericEntityCacheAdapter(
|
|
121
|
-
new GenericLocalMemoryCacher(entityConfiguration, localMemoryCache)
|
|
127
|
+
new GenericLocalMemoryCacher(entityConfiguration, localMemoryCache),
|
|
122
128
|
);
|
|
123
129
|
await cacheAdapter.cacheManyAsync('id', new Map([['test-id-1', { id: 'test-id-1' }]]));
|
|
124
130
|
await cacheAdapter.cacheDBMissesAsync('id', ['test-id-2']);
|
|
@@ -133,8 +139,8 @@ describe('Use within GenericEntityCacheAdapter', () => {
|
|
|
133
139
|
const cacheAdapter = new GenericEntityCacheAdapter(
|
|
134
140
|
new GenericLocalMemoryCacher(
|
|
135
141
|
entityConfiguration,
|
|
136
|
-
GenericLocalMemoryCacher.createLRUCache<BlahFields>({})
|
|
137
|
-
)
|
|
142
|
+
GenericLocalMemoryCacher.createLRUCache<BlahFields>({}),
|
|
143
|
+
),
|
|
138
144
|
);
|
|
139
145
|
await cacheAdapter.invalidateManyAsync('id', []);
|
|
140
146
|
});
|
|
@@ -10,7 +10,7 @@ import LocalMemoryCacheAdapterProvider from '../LocalMemoryCacheAdapterProvider'
|
|
|
10
10
|
|
|
11
11
|
export const createLocalMemoryTestEntityCompanionProvider = (
|
|
12
12
|
localMemoryOptions: { maxSize?: number; ttlSeconds?: number } = {},
|
|
13
|
-
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter()
|
|
13
|
+
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter(),
|
|
14
14
|
): EntityCompanionProvider => {
|
|
15
15
|
const localMemoryCacheAdapterProvider =
|
|
16
16
|
localMemoryOptions.maxSize === 0 && localMemoryOptions.ttlSeconds === 0
|
|
@@ -34,15 +34,15 @@ export const createLocalMemoryTestEntityCompanionProvider = (
|
|
|
34
34
|
cacheAdapterProvider: localMemoryCacheAdapterProvider,
|
|
35
35
|
},
|
|
36
36
|
],
|
|
37
|
-
])
|
|
37
|
+
]),
|
|
38
38
|
);
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
export const createNoOpLocalMemoryIntegrationTestEntityCompanionProvider = (
|
|
42
|
-
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter()
|
|
42
|
+
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter(),
|
|
43
43
|
): EntityCompanionProvider => {
|
|
44
44
|
return createLocalMemoryTestEntityCompanionProvider(
|
|
45
45
|
{ maxSize: 0, ttlSeconds: 0 },
|
|
46
|
-
metricsAdapter
|
|
46
|
+
metricsAdapter,
|
|
47
47
|
);
|
|
48
48
|
};
|