@expo/entity-cache-adapter-local-memory 0.24.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/README.md +2 -0
- package/build/GenericLocalMemoryCacher.d.ts +7 -7
- package/build/GenericLocalMemoryCacher.js +7 -7
- package/build/GenericLocalMemoryCacher.js.map +1 -1
- package/build/LocalMemoryCacheAdapter.d.ts +1 -1
- package/build/LocalMemoryCacheAdapter.js +3 -3
- package/build/LocalMemoryCacheAdapter.js.map +1 -1
- package/build/LocalMemoryCacheAdapterProvider.d.ts +2 -2
- package/build/LocalMemoryCacheAdapterProvider.js +6 -7
- package/build/LocalMemoryCacheAdapterProvider.js.map +1 -1
- package/build/{__integration-tests__/LocalMemoryCacheAdapter-integration-test.d.ts → __tests__/LocalMemoryCacheAdapter-full-test.d.ts} +0 -0
- package/build/{__integration-tests__/LocalMemoryCacheAdapter-integration-test.js → __tests__/LocalMemoryCacheAdapter-full-test.js} +10 -10
- package/build/__tests__/LocalMemoryCacheAdapter-full-test.js.map +1 -0
- package/build/__tests__/LocalMemoryCacheAdapter-test.js +8 -8
- package/build/__tests__/LocalMemoryCacheAdapter-test.js.map +1 -1
- package/build/index.d.ts +8 -0
- package/build/index.js +29 -0
- package/build/index.js.map +1 -0
- package/build/testfixtures/{createLocalMemoryIntegrationTestEntityCompanionProvider.d.ts → createLocalMemoryTestEntityCompanionProvider.d.ts} +1 -1
- package/build/testfixtures/{createLocalMemoryIntegrationTestEntityCompanionProvider.js → createLocalMemoryTestEntityCompanionProvider.js} +11 -8
- package/build/testfixtures/createLocalMemoryTestEntityCompanionProvider.js.map +1 -0
- package/package.json +2 -2
- package/src/GenericLocalMemoryCacher.ts +10 -10
- package/src/LocalMemoryCacheAdapter.ts +3 -3
- package/src/LocalMemoryCacheAdapterProvider.ts +7 -5
- package/src/{__integration-tests__/LocalMemoryCacheAdapter-integration-test.ts → __tests__/LocalMemoryCacheAdapter-full-test.ts} +6 -12
- package/src/__tests__/LocalMemoryCacheAdapter-test.ts +8 -8
- package/src/index.ts +10 -0
- package/src/testfixtures/{createLocalMemoryIntegrationTestEntityCompanionProvider.ts → createLocalMemoryTestEntityCompanionProvider.ts} +3 -3
- package/build/__integration-tests__/LocalMemoryCacheAdapter-integration-test.js.map +0 -1
- package/build/testfixtures/createLocalMemoryIntegrationTestEntityCompanionProvider.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Cross-request [LRU](https://github.com/isaacs/node-lru-cache) cache adapter for `@expo/entity`. Use
|
|
4
4
|
this cache with caution - it is nonstandard. The cache is shared between requests in the node process.
|
|
5
5
|
|
|
6
|
+
[Documentation](https://expo.github.io/entity/modules/_expo_cache_adapter_local_memory.html)
|
|
7
|
+
|
|
6
8
|
## Why NOT use this cache
|
|
7
9
|
|
|
8
10
|
Because this is an in-memory cache, cross-box invalidation is not possible. Do not use this cache
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { CacheLoadResult } from '@expo/entity';
|
|
1
|
+
import { CacheLoadResult, IEntityGenericCacher } from '@expo/entity';
|
|
2
2
|
import LRUCache from 'lru-cache';
|
|
3
3
|
export declare const DOES_NOT_EXIST_LOCAL_MEMORY_CACHE: unique symbol;
|
|
4
4
|
declare type LocalMemoryCacheValue<TFields> = Readonly<TFields> | typeof DOES_NOT_EXIST_LOCAL_MEMORY_CACHE;
|
|
5
5
|
export declare type LocalMemoryCache<TFields> = LRUCache<string, LocalMemoryCacheValue<TFields>>;
|
|
6
|
-
export default class GenericLocalMemoryCacher<TFields> {
|
|
7
|
-
private readonly
|
|
8
|
-
constructor(
|
|
6
|
+
export default class GenericLocalMemoryCacher<TFields> implements IEntityGenericCacher<TFields> {
|
|
7
|
+
private readonly localMemoryCache;
|
|
8
|
+
constructor(localMemoryCache: LocalMemoryCache<TFields>);
|
|
9
9
|
static createLRUCache<TFields>(options?: {
|
|
10
10
|
maxSize?: number;
|
|
11
11
|
ttlSeconds?: number;
|
|
12
12
|
}): LocalMemoryCache<TFields>;
|
|
13
|
-
static
|
|
13
|
+
static createNoOpCache<TFields>(): LocalMemoryCache<TFields>;
|
|
14
14
|
loadManyAsync(keys: readonly string[]): Promise<ReadonlyMap<string, CacheLoadResult<TFields>>>;
|
|
15
15
|
cacheManyAsync(objectMap: ReadonlyMap<string, Readonly<TFields>>): Promise<void>;
|
|
16
|
-
cacheDBMissesAsync(keys: string[]): Promise<void>;
|
|
17
|
-
invalidateManyAsync(keys: string[]): Promise<void>;
|
|
16
|
+
cacheDBMissesAsync(keys: readonly string[]): Promise<void>;
|
|
17
|
+
invalidateManyAsync(keys: readonly string[]): Promise<void>;
|
|
18
18
|
makeCacheKey(parts: string[]): string;
|
|
19
19
|
}
|
|
20
20
|
export {};
|
|
@@ -10,8 +10,8 @@ const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
|
10
10
|
// The sentinel value is distinct from any (positively) cached value.
|
|
11
11
|
exports.DOES_NOT_EXIST_LOCAL_MEMORY_CACHE = Symbol('doesNotExist');
|
|
12
12
|
class GenericLocalMemoryCacher {
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
13
|
+
constructor(localMemoryCache) {
|
|
14
|
+
this.localMemoryCache = localMemoryCache;
|
|
15
15
|
}
|
|
16
16
|
static createLRUCache(options = {}) {
|
|
17
17
|
var _a, _b;
|
|
@@ -25,7 +25,7 @@ class GenericLocalMemoryCacher {
|
|
|
25
25
|
};
|
|
26
26
|
return new lru_cache_1.default(lruCacheOptions);
|
|
27
27
|
}
|
|
28
|
-
static
|
|
28
|
+
static createNoOpCache() {
|
|
29
29
|
return new lru_cache_1.default({
|
|
30
30
|
max: 0,
|
|
31
31
|
maxAge: -1,
|
|
@@ -34,7 +34,7 @@ class GenericLocalMemoryCacher {
|
|
|
34
34
|
async loadManyAsync(keys) {
|
|
35
35
|
const cacheResults = new Map();
|
|
36
36
|
for (const key of keys) {
|
|
37
|
-
const cacheResult = this.
|
|
37
|
+
const cacheResult = this.localMemoryCache.get(key);
|
|
38
38
|
if (cacheResult === exports.DOES_NOT_EXIST_LOCAL_MEMORY_CACHE) {
|
|
39
39
|
cacheResults.set(key, {
|
|
40
40
|
status: entity_1.CacheStatus.NEGATIVE,
|
|
@@ -56,17 +56,17 @@ class GenericLocalMemoryCacher {
|
|
|
56
56
|
}
|
|
57
57
|
async cacheManyAsync(objectMap) {
|
|
58
58
|
for (const [key, item] of objectMap) {
|
|
59
|
-
this.
|
|
59
|
+
this.localMemoryCache.set(key, item);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
async cacheDBMissesAsync(keys) {
|
|
63
63
|
for (const key of keys) {
|
|
64
|
-
this.
|
|
64
|
+
this.localMemoryCache.set(key, exports.DOES_NOT_EXIST_LOCAL_MEMORY_CACHE);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
async invalidateManyAsync(keys) {
|
|
68
68
|
for (const key of keys) {
|
|
69
|
-
this.
|
|
69
|
+
this.localMemoryCache.del(key);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
makeCacheKey(parts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericLocalMemoryCacher.js","sourceRoot":"","sources":["../src/GenericLocalMemoryCacher.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"GenericLocalMemoryCacher.js","sourceRoot":"","sources":["../src/GenericLocalMemoryCacher.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { EntityCacheAdapter, CacheLoadResult, EntityConfiguration } from '@expo/
|
|
|
2
2
|
import { LocalMemoryCache } from './GenericLocalMemoryCacher';
|
|
3
3
|
export default class LocalMemoryCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
|
|
4
4
|
private readonly genericLocalMemoryCacher;
|
|
5
|
-
constructor(entityConfiguration: EntityConfiguration<TFields>,
|
|
5
|
+
constructor(entityConfiguration: EntityConfiguration<TFields>, localMemoryCache: LocalMemoryCache<TFields>);
|
|
6
6
|
loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
|
|
7
7
|
cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
|
|
8
8
|
cacheDBMissesAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
|
|
@@ -7,16 +7,16 @@ const entity_1 = require("@expo/entity");
|
|
|
7
7
|
const invariant_1 = __importDefault(require("invariant"));
|
|
8
8
|
const GenericLocalMemoryCacher_1 = __importDefault(require("./GenericLocalMemoryCacher"));
|
|
9
9
|
class LocalMemoryCacheAdapter extends entity_1.EntityCacheAdapter {
|
|
10
|
-
constructor(entityConfiguration,
|
|
10
|
+
constructor(entityConfiguration, localMemoryCache) {
|
|
11
11
|
super(entityConfiguration);
|
|
12
|
-
this.genericLocalMemoryCacher = new GenericLocalMemoryCacher_1.default(
|
|
12
|
+
this.genericLocalMemoryCacher = new GenericLocalMemoryCacher_1.default(localMemoryCache);
|
|
13
13
|
}
|
|
14
14
|
async loadManyAsync(fieldName, fieldValues) {
|
|
15
15
|
const localMemoryCacheKeyToFieldValueMapping = new Map(fieldValues.map((fieldValue) => [this.makeCacheKey(fieldName, fieldValue), fieldValue]));
|
|
16
16
|
const cacheResults = await this.genericLocalMemoryCacher.loadManyAsync(Array.from(localMemoryCacheKeyToFieldValueMapping.keys()));
|
|
17
17
|
return (0, entity_1.mapKeys)(cacheResults, (cacheKey) => {
|
|
18
18
|
const fieldValue = localMemoryCacheKeyToFieldValueMapping.get(cacheKey);
|
|
19
|
-
(0, invariant_1.default)(fieldValue !== undefined, 'Unspecified cache key %s returned from generic
|
|
19
|
+
(0, invariant_1.default)(fieldValue !== undefined, 'Unspecified cache key %s returned from generic local memory cacher', cacheKey);
|
|
20
20
|
return fieldValue;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryCacheAdapter.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiG;AACjG,0DAAkC;AAElC,0FAAwF;AAExF,MAAqB,uBAAiC,SAAQ,2BAA2B;IAGvF,YACE,mBAAiD,EACjD,
|
|
1
|
+
{"version":3,"file":"LocalMemoryCacheAdapter.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiG;AACjG,0DAAkC;AAElC,0FAAwF;AAExF,MAAqB,uBAAiC,SAAQ,2BAA2B;IAGvF,YACE,mBAAiD,EACjD,gBAA2C;QAE3C,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAwB,CAAC,gBAAgB,CAAC,CAAC;IACjF,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAY,EACZ,WAA+C;QAE/C,MAAM,sCAAsC,GAAG,IAAI,GAAG,CACpD,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CACxF,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,aAAa,CACpE,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,IAAI,EAAE,CAAC,CAC1D,CAAC;QAEF,OAAO,IAAA,gBAAO,EAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;YACxC,MAAM,UAAU,GAAG,sCAAsC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxE,IAAA,mBAAS,EACP,UAAU,KAAK,SAAS,EACxB,oEAAoE,EACpE,QAAQ,CACT,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,SAAY,EACZ,SAAkE;QAElE,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAChD,IAAA,gBAAO,EAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAC7E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,SAAY,EACZ,WAA+C;QAE/C,MAAM,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CACpD,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,SAAY,EACZ,WAA+C;QAE/C,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CACrD,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAEO,YAAY,CAClB,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,SAAS,EAAE,CAAC,CAAC;QACzE,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;QACF,OAAO,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;CACF;AA1ED,0CA0EC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EntityCacheAdapter, EntityConfiguration, IEntityCacheAdapterProvider } from '@expo/entity';
|
|
2
2
|
import LocalMemoryCacheAdapter from './LocalMemoryCacheAdapter';
|
|
3
|
-
export
|
|
4
|
-
private readonly
|
|
3
|
+
export default class LocalMemoryCacheAdapterProvider implements IEntityCacheAdapterProvider {
|
|
4
|
+
private readonly localMemoryCacheCreator;
|
|
5
5
|
static localMemoryCacheAdapterMap: Map<string, LocalMemoryCacheAdapter<any>>;
|
|
6
6
|
static getNoOpProvider(): IEntityCacheAdapterProvider;
|
|
7
7
|
static getProvider(options?: {
|
|
@@ -3,28 +3,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.LocalMemoryCacheAdapterProvider = void 0;
|
|
7
6
|
const entity_1 = require("@expo/entity");
|
|
8
7
|
const GenericLocalMemoryCacher_1 = __importDefault(require("./GenericLocalMemoryCacher"));
|
|
9
8
|
const LocalMemoryCacheAdapter_1 = __importDefault(require("./LocalMemoryCacheAdapter"));
|
|
10
9
|
class LocalMemoryCacheAdapterProvider {
|
|
11
|
-
constructor(
|
|
12
|
-
this.
|
|
10
|
+
constructor(localMemoryCacheCreator) {
|
|
11
|
+
this.localMemoryCacheCreator = localMemoryCacheCreator;
|
|
13
12
|
}
|
|
14
13
|
static getNoOpProvider() {
|
|
15
|
-
return new LocalMemoryCacheAdapterProvider(() => GenericLocalMemoryCacher_1.default.
|
|
14
|
+
return new LocalMemoryCacheAdapterProvider(() => GenericLocalMemoryCacher_1.default.createNoOpCache());
|
|
16
15
|
}
|
|
17
16
|
static getProvider(options = {}) {
|
|
18
17
|
return new LocalMemoryCacheAdapterProvider(() => GenericLocalMemoryCacher_1.default.createLRUCache(options));
|
|
19
18
|
}
|
|
20
19
|
getCacheAdapter(entityConfiguration) {
|
|
21
20
|
return (0, entity_1.computeIfAbsent)(LocalMemoryCacheAdapterProvider.localMemoryCacheAdapterMap, entityConfiguration.tableName, () => {
|
|
22
|
-
const
|
|
23
|
-
return new LocalMemoryCacheAdapter_1.default(entityConfiguration,
|
|
21
|
+
const localMemoryCache = this.localMemoryCacheCreator();
|
|
22
|
+
return new LocalMemoryCacheAdapter_1.default(entityConfiguration, localMemoryCache);
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
exports.
|
|
26
|
+
exports.default = LocalMemoryCacheAdapterProvider;
|
|
28
27
|
// local memory cache adapters should be shared/reused across requests
|
|
29
28
|
LocalMemoryCacheAdapterProvider.localMemoryCacheAdapterMap = new Map();
|
|
30
29
|
//# sourceMappingURL=LocalMemoryCacheAdapterProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryCacheAdapterProvider.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapterProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocalMemoryCacheAdapterProvider.js","sourceRoot":"","sources":["../src/LocalMemoryCacheAdapterProvider.ts"],"names":[],"mappings":";;;;;AAAA,yCAKsB;AAEtB,0FAAwF;AACxF,wFAAgE;AAEhE,MAAqB,+BAA+B;IAkBlD,YACmB,uBAAiE;QAAjE,4BAAuB,GAAvB,uBAAuB,CAA0C;IACjF,CAAC;IAhBJ,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,+BAA+B,CAAC,GAAY,EAAE,CACvD,kCAAwB,CAAC,eAAe,EAAW,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,UAAqD,EAAE;QAEvD,OAAO,IAAI,+BAA+B,CAAC,GAAY,EAAE,CACvD,kCAAwB,CAAC,cAAc,CAAU,OAAO,CAAC,CAC1D,CAAC;IACJ,CAAC;IAMM,eAAe,CACpB,mBAAiD;QAEjD,OAAO,IAAA,wBAAe,EACpB,+BAA+B,CAAC,0BAA0B,EAC1D,mBAAmB,CAAC,SAAS,EAC7B,GAAG,EAAE;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAW,CAAC;YACjE,OAAO,IAAI,iCAAuB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;QAC5E,CAAC,CACF,CAAC;IACJ,CAAC;;AAjCH,kDAkCC;AAjCC,sEAAsE;AAC/D,0DAA0B,GAAG,IAAI,GAAG,EAAwC,CAAC"}
|
|
File without changes
|
|
@@ -7,17 +7,17 @@ const entity_1 = require("@expo/entity");
|
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const GenericLocalMemoryCacher_1 = __importDefault(require("../GenericLocalMemoryCacher"));
|
|
9
9
|
const LocalMemoryCacheAdapter_1 = __importDefault(require("../LocalMemoryCacheAdapter"));
|
|
10
|
-
const LocalMemoryCacheAdapterProvider_1 = require("../LocalMemoryCacheAdapterProvider");
|
|
10
|
+
const LocalMemoryCacheAdapterProvider_1 = __importDefault(require("../LocalMemoryCacheAdapterProvider"));
|
|
11
11
|
const LocalMemoryTestEntity_1 = __importDefault(require("../testfixtures/LocalMemoryTestEntity"));
|
|
12
|
-
const
|
|
12
|
+
const createLocalMemoryTestEntityCompanionProvider_1 = require("../testfixtures/createLocalMemoryTestEntityCompanionProvider");
|
|
13
13
|
class TestViewerContext extends entity_1.ViewerContext {
|
|
14
14
|
}
|
|
15
15
|
describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
16
16
|
beforeEach(async () => {
|
|
17
|
-
LocalMemoryCacheAdapterProvider_1.
|
|
17
|
+
LocalMemoryCacheAdapterProvider_1.default.localMemoryCacheAdapterMap.clear();
|
|
18
18
|
});
|
|
19
19
|
it('has correct caching behavior', async () => {
|
|
20
|
-
const viewerContext = new TestViewerContext((0,
|
|
20
|
+
const viewerContext = new TestViewerContext((0, createLocalMemoryTestEntityCompanionProvider_1.createLocalMemoryTestEntityCompanionProvider)());
|
|
21
21
|
const cacheAdapter = viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity_1.default, LocalMemoryTestEntity_1.default.getCompanionDefinition())['tableDataCoordinator']['cacheAdapter'];
|
|
22
22
|
const cacheKeyMaker = cacheAdapter['makeCacheKey'].bind(cacheAdapter);
|
|
23
23
|
const date = new Date();
|
|
@@ -29,7 +29,7 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
29
29
|
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
30
30
|
.enforcing()
|
|
31
31
|
.loadByIDAsync(entity1Created.getID());
|
|
32
|
-
const entitySpecificGenericCacher = LocalMemoryCacheAdapterProvider_1.
|
|
32
|
+
const entitySpecificGenericCacher = LocalMemoryCacheAdapterProvider_1.default.localMemoryCacheAdapterMap.get(LocalMemoryTestEntity_1.default.getCompanionDefinition().entityConfiguration.tableName)['genericLocalMemoryCacher'];
|
|
33
33
|
const cachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
34
34
|
cacheKeyMaker('id', entity1.getID()),
|
|
35
35
|
]);
|
|
@@ -65,7 +65,7 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
65
65
|
});
|
|
66
66
|
it('shares the cache between different requests', async () => {
|
|
67
67
|
const genericLocalMemoryCacherLoadManySpy = jest.spyOn(GenericLocalMemoryCacher_1.default.prototype, 'loadManyAsync');
|
|
68
|
-
const viewerContext = new TestViewerContext((0,
|
|
68
|
+
const viewerContext = new TestViewerContext((0, createLocalMemoryTestEntityCompanionProvider_1.createLocalMemoryTestEntityCompanionProvider)());
|
|
69
69
|
const date = new Date();
|
|
70
70
|
const entity1Created = await LocalMemoryTestEntity_1.default.creator(viewerContext)
|
|
71
71
|
.setField('name', 'blah')
|
|
@@ -76,7 +76,7 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
76
76
|
.enforcing()
|
|
77
77
|
.loadByIDAsync(entity1Created.getID());
|
|
78
78
|
// load entity with a different request
|
|
79
|
-
const viewerContext2 = new TestViewerContext((0,
|
|
79
|
+
const viewerContext2 = new TestViewerContext((0, createLocalMemoryTestEntityCompanionProvider_1.createLocalMemoryTestEntityCompanionProvider)());
|
|
80
80
|
const entity1WithVc2 = await LocalMemoryTestEntity_1.default.loader(viewerContext2)
|
|
81
81
|
.enforcing()
|
|
82
82
|
.loadByIDAsync(entity1Created.getID());
|
|
@@ -93,7 +93,7 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
93
93
|
expect(genericLocalMemoryCacherLoadManySpy).toBeCalledTimes(2);
|
|
94
94
|
});
|
|
95
95
|
it('respects the parameters of a noop cache', async () => {
|
|
96
|
-
const viewerContext = new TestViewerContext((0,
|
|
96
|
+
const viewerContext = new TestViewerContext((0, createLocalMemoryTestEntityCompanionProvider_1.createNoopLocalMemoryIntegrationTestEntityCompanionProvider)());
|
|
97
97
|
const cacheAdapter = viewerContext.entityCompanionProvider.getCompanionForEntity(LocalMemoryTestEntity_1.default, LocalMemoryTestEntity_1.default.getCompanionDefinition())['tableDataCoordinator']['cacheAdapter'];
|
|
98
98
|
const cacheKeyMaker = cacheAdapter['makeCacheKey'].bind(cacheAdapter);
|
|
99
99
|
const date = new Date();
|
|
@@ -105,7 +105,7 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
105
105
|
const entity1 = await LocalMemoryTestEntity_1.default.loader(viewerContext)
|
|
106
106
|
.enforcing()
|
|
107
107
|
.loadByIDAsync(entity1Created.getID());
|
|
108
|
-
const entitySpecificGenericCacher = LocalMemoryCacheAdapterProvider_1.
|
|
108
|
+
const entitySpecificGenericCacher = LocalMemoryCacheAdapterProvider_1.default.localMemoryCacheAdapterMap.get(LocalMemoryTestEntity_1.default.getCompanionDefinition().entityConfiguration.tableName)['genericLocalMemoryCacher'];
|
|
109
109
|
const cachedResult = await entitySpecificGenericCacher.loadManyAsync([
|
|
110
110
|
cacheKeyMaker('id', entity1.getID()),
|
|
111
111
|
]);
|
|
@@ -125,4 +125,4 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
125
125
|
});
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
|
-
//# sourceMappingURL=LocalMemoryCacheAdapter-
|
|
128
|
+
//# sourceMappingURL=LocalMemoryCacheAdapter-full-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalMemoryCacheAdapter-full-test.js","sourceRoot":"","sources":["../../src/__tests__/LocalMemoryCacheAdapter-full-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,37 +68,37 @@ describe(LocalMemoryCacheAdapter_1.default, () => {
|
|
|
68
68
|
});
|
|
69
69
|
describe('cacheManyAsync', () => {
|
|
70
70
|
it('correctly caches all objects', async () => {
|
|
71
|
-
const
|
|
71
|
+
const localMemoryCache = GenericLocalMemoryCacher_1.default.createLRUCache({
|
|
72
72
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
73
73
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
74
74
|
});
|
|
75
|
-
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration,
|
|
75
|
+
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration, localMemoryCache);
|
|
76
76
|
await cacheAdapter.cacheManyAsync('id', new Map([['test-id-1', { id: 'test-id-1' }]]));
|
|
77
77
|
const cacheKey = cacheAdapter['makeCacheKey']('id', 'test-id-1');
|
|
78
|
-
expect(
|
|
78
|
+
expect(localMemoryCache.get(cacheKey)).toMatchObject({
|
|
79
79
|
id: 'test-id-1',
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
83
|
describe('cacheDBMissesAsync', () => {
|
|
84
84
|
it('correctly caches misses', async () => {
|
|
85
|
-
const
|
|
85
|
+
const localMemoryCache = GenericLocalMemoryCacher_1.default.createLRUCache({
|
|
86
86
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
87
87
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
88
88
|
});
|
|
89
|
-
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration,
|
|
89
|
+
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration, localMemoryCache);
|
|
90
90
|
await cacheAdapter.cacheDBMissesAsync('id', ['test-id-1']);
|
|
91
91
|
const cacheKey = cacheAdapter['makeCacheKey']('id', 'test-id-1');
|
|
92
|
-
expect(
|
|
92
|
+
expect(localMemoryCache.get(cacheKey)).toEqual(GenericLocalMemoryCacher_1.DOES_NOT_EXIST_LOCAL_MEMORY_CACHE);
|
|
93
93
|
});
|
|
94
94
|
});
|
|
95
95
|
describe('invalidateManyAsync', () => {
|
|
96
96
|
it('invalidates correctly', async () => {
|
|
97
|
-
const
|
|
97
|
+
const localMemoryCache = GenericLocalMemoryCacher_1.default.createLRUCache({
|
|
98
98
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
99
99
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
100
100
|
});
|
|
101
|
-
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration,
|
|
101
|
+
const cacheAdapter = new LocalMemoryCacheAdapter_1.default(entityConfiguration, localMemoryCache);
|
|
102
102
|
await cacheAdapter.cacheManyAsync('id', new Map([['test-id-1', { id: 'test-id-1' }]]));
|
|
103
103
|
await cacheAdapter.cacheDBMissesAsync('id', ['test-id-2']);
|
|
104
104
|
await cacheAdapter.invalidateManyAsync('id', ['test-id-1', 'test-id-2']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryCacheAdapter-test.js","sourceRoot":"","sources":["../../src/__tests__/LocalMemoryCacheAdapter-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2E;AAE3E,wFAEqC;AACrC,yFAAiE;AAMjE,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,iCAAuB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,iCAAuB,CAC9C,mBAAmB,EACnB,kCAAwB,CAAC,cAAc,CAAC;gBACtC,OAAO,EAAE,MAAM,CAAC,gBAAgB;gBAChC,UAAU,EAAE,MAAM,CAAC,gBAAgB;aACpC,CAAC,CACH,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,GAAG,CAA+B,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnD,MAAM,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;gBACrD,WAAW;gBACX,WAAW;gBACX,WAAW;aACZ,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7C,MAAM,EAAE,oBAAW,CAAC,GAAG;gBACvB,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,oBAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,oBAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,YAAY,GAAG,IAAI,iCAAuB,CAC9C,mBAAmB,EACnB,kCAAwB,CAAC,cAAc,CAAC;gBACtC,OAAO,EAAE,MAAM,CAAC,gBAAgB;gBAChC,UAAU,EAAE,MAAM,CAAC,gBAAgB;aACpC,CAAC,CACH,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,
|
|
1
|
+
{"version":3,"file":"LocalMemoryCacheAdapter-test.js","sourceRoot":"","sources":["../../src/__tests__/LocalMemoryCacheAdapter-test.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module @expo/entity-cache-adapter-local-memory
|
|
4
|
+
*/
|
|
5
|
+
export { default as GenericLocalMemoryCacher } from './GenericLocalMemoryCacher';
|
|
6
|
+
export * from './GenericLocalMemoryCacher';
|
|
7
|
+
export { default as LocalMemoryCacheAdapter } from './LocalMemoryCacheAdapter';
|
|
8
|
+
export { default as LocalMemoryCacheAdapterProvider } from './LocalMemoryCacheAdapterProvider';
|
package/build/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable tsdoc/syntax */
|
|
3
|
+
/**
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
* @module @expo/entity-cache-adapter-local-memory
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.LocalMemoryCacheAdapterProvider = exports.LocalMemoryCacheAdapter = exports.GenericLocalMemoryCacher = void 0;
|
|
22
|
+
var GenericLocalMemoryCacher_1 = require("./GenericLocalMemoryCacher");
|
|
23
|
+
Object.defineProperty(exports, "GenericLocalMemoryCacher", { enumerable: true, get: function () { return __importDefault(GenericLocalMemoryCacher_1).default; } });
|
|
24
|
+
__exportStar(require("./GenericLocalMemoryCacher"), exports);
|
|
25
|
+
var LocalMemoryCacheAdapter_1 = require("./LocalMemoryCacheAdapter");
|
|
26
|
+
Object.defineProperty(exports, "LocalMemoryCacheAdapter", { enumerable: true, get: function () { return __importDefault(LocalMemoryCacheAdapter_1).default; } });
|
|
27
|
+
var LocalMemoryCacheAdapterProvider_1 = require("./LocalMemoryCacheAdapterProvider");
|
|
28
|
+
Object.defineProperty(exports, "LocalMemoryCacheAdapterProvider", { enumerable: true, get: function () { return __importDefault(LocalMemoryCacheAdapterProvider_1).default; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC;;;GAGG;;;;;;;;;;;;;;;;AAEH,uEAAiF;AAAxE,qJAAA,OAAO,OAA4B;AAC5C,6DAA2C;AAC3C,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,qFAA+F;AAAtF,mKAAA,OAAO,OAAmC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IEntityMetricsAdapter, EntityCompanionProvider } from '@expo/entity';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const createLocalMemoryTestEntityCompanionProvider: (localMemoryOptions?: {
|
|
3
3
|
maxSize?: number;
|
|
4
4
|
ttlSeconds?: number;
|
|
5
5
|
}, metricsAdapter?: IEntityMetricsAdapter) => EntityCompanionProvider;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNoopLocalMemoryIntegrationTestEntityCompanionProvider = exports.
|
|
6
|
+
exports.createNoopLocalMemoryIntegrationTestEntityCompanionProvider = exports.createLocalMemoryTestEntityCompanionProvider = void 0;
|
|
4
7
|
const entity_1 = require("@expo/entity");
|
|
5
|
-
const LocalMemoryCacheAdapterProvider_1 = require("../LocalMemoryCacheAdapterProvider");
|
|
6
|
-
const
|
|
8
|
+
const LocalMemoryCacheAdapterProvider_1 = __importDefault(require("../LocalMemoryCacheAdapterProvider"));
|
|
9
|
+
const createLocalMemoryTestEntityCompanionProvider = (localMemoryOptions = {}, metricsAdapter = new entity_1.NoOpEntityMetricsAdapter()) => {
|
|
7
10
|
const localMemoryCacheAdapterProvider = localMemoryOptions.maxSize === 0 && localMemoryOptions.ttlSeconds === 0
|
|
8
|
-
? LocalMemoryCacheAdapterProvider_1.
|
|
9
|
-
: LocalMemoryCacheAdapterProvider_1.
|
|
11
|
+
? LocalMemoryCacheAdapterProvider_1.default.getNoOpProvider()
|
|
12
|
+
: LocalMemoryCacheAdapterProvider_1.default.getProvider(localMemoryOptions);
|
|
10
13
|
return new entity_1.EntityCompanionProvider(metricsAdapter, new Map([
|
|
11
14
|
[
|
|
12
15
|
'postgres',
|
|
@@ -24,9 +27,9 @@ const createLocalMemoryIntegrationTestEntityCompanionProvider = (localMemoryOpti
|
|
|
24
27
|
],
|
|
25
28
|
]));
|
|
26
29
|
};
|
|
27
|
-
exports.
|
|
30
|
+
exports.createLocalMemoryTestEntityCompanionProvider = createLocalMemoryTestEntityCompanionProvider;
|
|
28
31
|
const createNoopLocalMemoryIntegrationTestEntityCompanionProvider = (metricsAdapter = new entity_1.NoOpEntityMetricsAdapter()) => {
|
|
29
|
-
return (0, exports.
|
|
32
|
+
return (0, exports.createLocalMemoryTestEntityCompanionProvider)({ maxSize: 0, ttlSeconds: 0 }, metricsAdapter);
|
|
30
33
|
};
|
|
31
34
|
exports.createNoopLocalMemoryIntegrationTestEntityCompanionProvider = createNoopLocalMemoryIntegrationTestEntityCompanionProvider;
|
|
32
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=createLocalMemoryTestEntityCompanionProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLocalMemoryTestEntityCompanionProvider.js","sourceRoot":"","sources":["../../src/testfixtures/createLocalMemoryTestEntityCompanionProvider.ts"],"names":[],"mappings":";;;;;;AAAA,yCAMsB;AAEtB,yGAAiF;AAE1E,MAAM,4CAA4C,GAAG,CAC1D,qBAAgE,EAAE,EAClE,iBAAwC,IAAI,iCAAwB,EAAE,EAC7C,EAAE;IAC3B,MAAM,+BAA+B,GACnC,kBAAkB,CAAC,OAAO,KAAK,CAAC,IAAI,kBAAkB,CAAC,UAAU,KAAK,CAAC;QACrE,CAAC,CAAC,yCAA+B,CAAC,eAAe,EAAE;QACnD,CAAC,CAAC,yCAA+B,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtE,OAAO,IAAI,gCAAuB,CAChC,cAAc,EACd,IAAI,GAAG,CAAC;QACN;YACE,UAAU;YACV;gBACE,eAAe,EAAE,IAAI,oCAA2B,EAAE;gBAClD,oBAAoB,EAAE,iCAAwB;aAC/C;SACF;KACF,CAAC,EACF,IAAI,GAAG,CAAC;QACN;YACE,cAAc;YACd;gBACE,oBAAoB,EAAE,+BAA+B;aACtD;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,4CAA4C,gDA4BvD;AAEK,MAAM,2DAA2D,GAAG,CACzE,iBAAwC,IAAI,iCAAwB,EAAE,EAC7C,EAAE;IAC3B,OAAO,IAAA,oDAA4C,EACjD,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC7B,cAAc,CACf,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,2DAA2D,+DAOtE"}
|
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.25.0",
|
|
4
4
|
"description": "Cross-request local memory cache adapter for @expo/entity",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -33,6 +33,6 @@
|
|
|
33
33
|
"lru-cache": "^7.3.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@expo/entity": "^0.
|
|
36
|
+
"@expo/entity": "^0.25.0"
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CacheLoadResult, CacheStatus } from '@expo/entity';
|
|
1
|
+
import { CacheLoadResult, CacheStatus, IEntityGenericCacher } from '@expo/entity';
|
|
2
2
|
import LRUCache from 'lru-cache';
|
|
3
3
|
|
|
4
4
|
// Sentinel value we store in local memory to negatively cache a database miss.
|
|
@@ -77,8 +77,8 @@ type LRUCacheOptionsV7<K, V> = {
|
|
|
77
77
|
updateRecencyOnHas?: boolean;
|
|
78
78
|
};
|
|
79
79
|
|
|
80
|
-
export default class GenericLocalMemoryCacher<TFields> {
|
|
81
|
-
constructor(private readonly
|
|
80
|
+
export default class GenericLocalMemoryCacher<TFields> implements IEntityGenericCacher<TFields> {
|
|
81
|
+
constructor(private readonly localMemoryCache: LocalMemoryCache<TFields>) {}
|
|
82
82
|
|
|
83
83
|
static createLRUCache<TFields>(
|
|
84
84
|
options: { maxSize?: number; ttlSeconds?: number } = {}
|
|
@@ -95,7 +95,7 @@ export default class GenericLocalMemoryCacher<TFields> {
|
|
|
95
95
|
return new LRUCache<string, LocalMemoryCacheValue<TFields>>(lruCacheOptions as any);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
static
|
|
98
|
+
static createNoOpCache<TFields>(): LocalMemoryCache<TFields> {
|
|
99
99
|
return new LRUCache<string, LocalMemoryCacheValue<TFields>>({
|
|
100
100
|
max: 0,
|
|
101
101
|
maxAge: -1,
|
|
@@ -107,7 +107,7 @@ export default class GenericLocalMemoryCacher<TFields> {
|
|
|
107
107
|
): Promise<ReadonlyMap<string, CacheLoadResult<TFields>>> {
|
|
108
108
|
const cacheResults = new Map<string, CacheLoadResult<TFields>>();
|
|
109
109
|
for (const key of keys) {
|
|
110
|
-
const cacheResult = this.
|
|
110
|
+
const cacheResult = this.localMemoryCache.get(key);
|
|
111
111
|
if (cacheResult === DOES_NOT_EXIST_LOCAL_MEMORY_CACHE) {
|
|
112
112
|
cacheResults.set(key, {
|
|
113
113
|
status: CacheStatus.NEGATIVE,
|
|
@@ -128,19 +128,19 @@ export default class GenericLocalMemoryCacher<TFields> {
|
|
|
128
128
|
|
|
129
129
|
public async cacheManyAsync(objectMap: ReadonlyMap<string, Readonly<TFields>>): Promise<void> {
|
|
130
130
|
for (const [key, item] of objectMap) {
|
|
131
|
-
this.
|
|
131
|
+
this.localMemoryCache.set(key, item);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
public async cacheDBMissesAsync(keys: string[]): Promise<void> {
|
|
135
|
+
public async cacheDBMissesAsync(keys: readonly string[]): Promise<void> {
|
|
136
136
|
for (const key of keys) {
|
|
137
|
-
this.
|
|
137
|
+
this.localMemoryCache.set(key, DOES_NOT_EXIST_LOCAL_MEMORY_CACHE);
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
public async invalidateManyAsync(keys: string[]): Promise<void> {
|
|
141
|
+
public async invalidateManyAsync(keys: readonly string[]): Promise<void> {
|
|
142
142
|
for (const key of keys) {
|
|
143
|
-
this.
|
|
143
|
+
this.localMemoryCache.del(key);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
|
|
@@ -8,10 +8,10 @@ export default class LocalMemoryCacheAdapter<TFields> extends EntityCacheAdapter
|
|
|
8
8
|
|
|
9
9
|
constructor(
|
|
10
10
|
entityConfiguration: EntityConfiguration<TFields>,
|
|
11
|
-
|
|
11
|
+
localMemoryCache: LocalMemoryCache<TFields>
|
|
12
12
|
) {
|
|
13
13
|
super(entityConfiguration);
|
|
14
|
-
this.genericLocalMemoryCacher = new GenericLocalMemoryCacher(
|
|
14
|
+
this.genericLocalMemoryCacher = new GenericLocalMemoryCacher(localMemoryCache);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
public async loadManyAsync<N extends keyof TFields>(
|
|
@@ -29,7 +29,7 @@ export default class LocalMemoryCacheAdapter<TFields> extends EntityCacheAdapter
|
|
|
29
29
|
const fieldValue = localMemoryCacheKeyToFieldValueMapping.get(cacheKey);
|
|
30
30
|
invariant(
|
|
31
31
|
fieldValue !== undefined,
|
|
32
|
-
'Unspecified cache key %s returned from generic
|
|
32
|
+
'Unspecified cache key %s returned from generic local memory cacher',
|
|
33
33
|
cacheKey
|
|
34
34
|
);
|
|
35
35
|
return fieldValue;
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
import GenericLocalMemoryCacher, { LocalMemoryCache } from './GenericLocalMemoryCacher';
|
|
9
9
|
import LocalMemoryCacheAdapter from './LocalMemoryCacheAdapter';
|
|
10
10
|
|
|
11
|
-
export class LocalMemoryCacheAdapterProvider implements IEntityCacheAdapterProvider {
|
|
11
|
+
export default class LocalMemoryCacheAdapterProvider implements IEntityCacheAdapterProvider {
|
|
12
12
|
// local memory cache adapters should be shared/reused across requests
|
|
13
13
|
static localMemoryCacheAdapterMap = new Map<string, LocalMemoryCacheAdapter<any>>();
|
|
14
14
|
|
|
15
15
|
static getNoOpProvider(): IEntityCacheAdapterProvider {
|
|
16
16
|
return new LocalMemoryCacheAdapterProvider(<TFields>() =>
|
|
17
|
-
GenericLocalMemoryCacher.
|
|
17
|
+
GenericLocalMemoryCacher.createNoOpCache<TFields>()
|
|
18
18
|
);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -26,7 +26,9 @@ export class LocalMemoryCacheAdapterProvider implements IEntityCacheAdapterProvi
|
|
|
26
26
|
);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
private constructor(
|
|
29
|
+
private constructor(
|
|
30
|
+
private readonly localMemoryCacheCreator: <TFields>() => LocalMemoryCache<TFields>
|
|
31
|
+
) {}
|
|
30
32
|
|
|
31
33
|
public getCacheAdapter<TFields>(
|
|
32
34
|
entityConfiguration: EntityConfiguration<TFields>
|
|
@@ -35,8 +37,8 @@ export class LocalMemoryCacheAdapterProvider implements IEntityCacheAdapterProvi
|
|
|
35
37
|
LocalMemoryCacheAdapterProvider.localMemoryCacheAdapterMap,
|
|
36
38
|
entityConfiguration.tableName,
|
|
37
39
|
() => {
|
|
38
|
-
const
|
|
39
|
-
return new LocalMemoryCacheAdapter(entityConfiguration,
|
|
40
|
+
const localMemoryCache = this.localMemoryCacheCreator<TFields>();
|
|
41
|
+
return new LocalMemoryCacheAdapter(entityConfiguration, localMemoryCache);
|
|
40
42
|
}
|
|
41
43
|
);
|
|
42
44
|
}
|
|
@@ -3,12 +3,12 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
3
3
|
|
|
4
4
|
import GenericLocalMemoryCacher from '../GenericLocalMemoryCacher';
|
|
5
5
|
import LocalMemoryCacheAdapter from '../LocalMemoryCacheAdapter';
|
|
6
|
-
import
|
|
6
|
+
import LocalMemoryCacheAdapterProvider from '../LocalMemoryCacheAdapterProvider';
|
|
7
7
|
import LocalMemoryTestEntity from '../testfixtures/LocalMemoryTestEntity';
|
|
8
8
|
import {
|
|
9
|
-
|
|
9
|
+
createLocalMemoryTestEntityCompanionProvider,
|
|
10
10
|
createNoopLocalMemoryIntegrationTestEntityCompanionProvider,
|
|
11
|
-
} from '../testfixtures/
|
|
11
|
+
} from '../testfixtures/createLocalMemoryTestEntityCompanionProvider';
|
|
12
12
|
|
|
13
13
|
class TestViewerContext extends ViewerContext {}
|
|
14
14
|
|
|
@@ -18,9 +18,7 @@ describe(LocalMemoryCacheAdapter, () => {
|
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it('has correct caching behavior', async () => {
|
|
21
|
-
const viewerContext = new TestViewerContext(
|
|
22
|
-
createLocalMemoryIntegrationTestEntityCompanionProvider()
|
|
23
|
-
);
|
|
21
|
+
const viewerContext = new TestViewerContext(createLocalMemoryTestEntityCompanionProvider());
|
|
24
22
|
const cacheAdapter = viewerContext.entityCompanionProvider.getCompanionForEntity(
|
|
25
23
|
LocalMemoryTestEntity,
|
|
26
24
|
LocalMemoryTestEntity.getCompanionDefinition()
|
|
@@ -90,9 +88,7 @@ describe(LocalMemoryCacheAdapter, () => {
|
|
|
90
88
|
GenericLocalMemoryCacher.prototype as unknown as any,
|
|
91
89
|
'loadManyAsync'
|
|
92
90
|
);
|
|
93
|
-
const viewerContext = new TestViewerContext(
|
|
94
|
-
createLocalMemoryIntegrationTestEntityCompanionProvider()
|
|
95
|
-
);
|
|
91
|
+
const viewerContext = new TestViewerContext(createLocalMemoryTestEntityCompanionProvider());
|
|
96
92
|
|
|
97
93
|
const date = new Date();
|
|
98
94
|
const entity1Created = await LocalMemoryTestEntity.creator(viewerContext)
|
|
@@ -106,9 +102,7 @@ describe(LocalMemoryCacheAdapter, () => {
|
|
|
106
102
|
.loadByIDAsync(entity1Created.getID());
|
|
107
103
|
|
|
108
104
|
// load entity with a different request
|
|
109
|
-
const viewerContext2 = new TestViewerContext(
|
|
110
|
-
createLocalMemoryIntegrationTestEntityCompanionProvider()
|
|
111
|
-
);
|
|
105
|
+
const viewerContext2 = new TestViewerContext(createLocalMemoryTestEntityCompanionProvider());
|
|
112
106
|
const entity1WithVc2 = await LocalMemoryTestEntity.loader(viewerContext2)
|
|
113
107
|
.enforcing()
|
|
114
108
|
.loadByIDAsync(entity1Created.getID());
|
|
@@ -64,16 +64,16 @@ describe(LocalMemoryCacheAdapter, () => {
|
|
|
64
64
|
|
|
65
65
|
describe('cacheManyAsync', () => {
|
|
66
66
|
it('correctly caches all objects', async () => {
|
|
67
|
-
const
|
|
67
|
+
const localMemoryCache = GenericLocalMemoryCacher.createLRUCache<BlahFields>({
|
|
68
68
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
69
69
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
70
70
|
});
|
|
71
71
|
|
|
72
|
-
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration,
|
|
72
|
+
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration, localMemoryCache);
|
|
73
73
|
await cacheAdapter.cacheManyAsync('id', new Map([['test-id-1', { id: 'test-id-1' }]]));
|
|
74
74
|
|
|
75
75
|
const cacheKey = cacheAdapter['makeCacheKey']('id', 'test-id-1');
|
|
76
|
-
expect(
|
|
76
|
+
expect(localMemoryCache.get(cacheKey)).toMatchObject({
|
|
77
77
|
id: 'test-id-1',
|
|
78
78
|
});
|
|
79
79
|
});
|
|
@@ -81,27 +81,27 @@ describe(LocalMemoryCacheAdapter, () => {
|
|
|
81
81
|
|
|
82
82
|
describe('cacheDBMissesAsync', () => {
|
|
83
83
|
it('correctly caches misses', async () => {
|
|
84
|
-
const
|
|
84
|
+
const localMemoryCache = GenericLocalMemoryCacher.createLRUCache<BlahFields>({
|
|
85
85
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
86
86
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
87
87
|
});
|
|
88
88
|
|
|
89
|
-
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration,
|
|
89
|
+
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration, localMemoryCache);
|
|
90
90
|
await cacheAdapter.cacheDBMissesAsync('id', ['test-id-1']);
|
|
91
91
|
|
|
92
92
|
const cacheKey = cacheAdapter['makeCacheKey']('id', 'test-id-1');
|
|
93
|
-
expect(
|
|
93
|
+
expect(localMemoryCache.get(cacheKey)).toEqual(DOES_NOT_EXIST_LOCAL_MEMORY_CACHE);
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
|
|
97
97
|
describe('invalidateManyAsync', () => {
|
|
98
98
|
it('invalidates correctly', async () => {
|
|
99
|
-
const
|
|
99
|
+
const localMemoryCache = GenericLocalMemoryCacher.createLRUCache<BlahFields>({
|
|
100
100
|
maxSize: Number.MAX_SAFE_INTEGER,
|
|
101
101
|
ttlSeconds: Number.MAX_SAFE_INTEGER,
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
-
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration,
|
|
104
|
+
const cacheAdapter = new LocalMemoryCacheAdapter(entityConfiguration, localMemoryCache);
|
|
105
105
|
await cacheAdapter.cacheManyAsync('id', new Map([['test-id-1', { id: 'test-id-1' }]]));
|
|
106
106
|
await cacheAdapter.cacheDBMissesAsync('id', ['test-id-2']);
|
|
107
107
|
await cacheAdapter.invalidateManyAsync('id', ['test-id-1', 'test-id-2']);
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* eslint-disable tsdoc/syntax */
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @module @expo/entity-cache-adapter-local-memory
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { default as GenericLocalMemoryCacher } from './GenericLocalMemoryCacher';
|
|
8
|
+
export * from './GenericLocalMemoryCacher';
|
|
9
|
+
export { default as LocalMemoryCacheAdapter } from './LocalMemoryCacheAdapter';
|
|
10
|
+
export { default as LocalMemoryCacheAdapterProvider } from './LocalMemoryCacheAdapterProvider';
|
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
StubDatabaseAdapterProvider,
|
|
7
7
|
} from '@expo/entity';
|
|
8
8
|
|
|
9
|
-
import
|
|
9
|
+
import LocalMemoryCacheAdapterProvider from '../LocalMemoryCacheAdapterProvider';
|
|
10
10
|
|
|
11
|
-
export const
|
|
11
|
+
export const createLocalMemoryTestEntityCompanionProvider = (
|
|
12
12
|
localMemoryOptions: { maxSize?: number; ttlSeconds?: number } = {},
|
|
13
13
|
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter()
|
|
14
14
|
): EntityCompanionProvider => {
|
|
@@ -41,7 +41,7 @@ export const createLocalMemoryIntegrationTestEntityCompanionProvider = (
|
|
|
41
41
|
export const createNoopLocalMemoryIntegrationTestEntityCompanionProvider = (
|
|
42
42
|
metricsAdapter: IEntityMetricsAdapter = new NoOpEntityMetricsAdapter()
|
|
43
43
|
): EntityCompanionProvider => {
|
|
44
|
-
return
|
|
44
|
+
return createLocalMemoryTestEntityCompanionProvider(
|
|
45
45
|
{ maxSize: 0, ttlSeconds: 0 },
|
|
46
46
|
metricsAdapter
|
|
47
47
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalMemoryCacheAdapter-integration-test.js","sourceRoot":"","sources":["../../src/__integration-tests__/LocalMemoryCacheAdapter-integration-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createLocalMemoryIntegrationTestEntityCompanionProvider.js","sourceRoot":"","sources":["../../src/testfixtures/createLocalMemoryIntegrationTestEntityCompanionProvider.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AAEtB,wFAAqF;AAE9E,MAAM,uDAAuD,GAAG,CACrE,qBAAgE,EAAE,EAClE,iBAAwC,IAAI,iCAAwB,EAAE,EAC7C,EAAE;IAC3B,MAAM,+BAA+B,GACnC,kBAAkB,CAAC,OAAO,KAAK,CAAC,IAAI,kBAAkB,CAAC,UAAU,KAAK,CAAC;QACrE,CAAC,CAAC,iEAA+B,CAAC,eAAe,EAAE;QACnD,CAAC,CAAC,iEAA+B,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtE,OAAO,IAAI,gCAAuB,CAChC,cAAc,EACd,IAAI,GAAG,CAAC;QACN;YACE,UAAU;YACV;gBACE,eAAe,EAAE,IAAI,oCAA2B,EAAE;gBAClD,oBAAoB,EAAE,iCAAwB;aAC/C;SACF;KACF,CAAC,EACF,IAAI,GAAG,CAAC;QACN;YACE,cAAc;YACd;gBACE,oBAAoB,EAAE,+BAA+B;aACtD;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,uDAAuD,2DA4BlE;AAEK,MAAM,2DAA2D,GAAG,CACzE,iBAAwC,IAAI,iCAAwB,EAAE,EAC7C,EAAE;IAC3B,OAAO,IAAA,+DAAuD,EAC5D,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC7B,cAAc,CACf,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,2DAA2D,+DAOtE"}
|