@expo/entity 0.22.0 → 0.23.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.
@@ -1,5 +1,4 @@
1
1
  import EntityConfiguration from './EntityConfiguration';
2
- import { FieldTransformerMap } from './internal/EntityFieldTransformationUtils';
3
2
  import { CacheLoadResult } from './internal/ReadThroughEntityCache';
4
3
  /**
5
4
  * A cache adapter is an interface by which objects can be
@@ -8,25 +7,19 @@ import { CacheLoadResult } from './internal/ReadThroughEntityCache';
8
7
  export default abstract class EntityCacheAdapter<TFields> {
9
8
  protected readonly entityConfiguration: EntityConfiguration<TFields>;
10
9
  constructor(entityConfiguration: EntityConfiguration<TFields>);
11
- /**
12
- * Transformer definitions for field types. Used to modify values as they are read from or written to
13
- * the cache. Override in concrete subclasses to change transformation behavior.
14
- * If a field type is not present in the map, then fields of that type will not be transformed.
15
- */
16
- abstract getFieldTransformerMap(): FieldTransformerMap;
17
10
  /**
18
11
  * Load many objects from cache.
19
12
  * @param fieldName - object field being queried
20
13
  * @param fieldValues - fieldName field values being queried
21
14
  * @returns map from all field values to a CacheLoadResult for each input value
22
15
  */
23
- abstract loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>>;
16
+ abstract loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
24
17
  /**
25
18
  * Cache many objects fetched from the DB.
26
19
  * @param fieldName - object field being queried
27
20
  * @param objectMap - map from field value to object to cache
28
21
  */
29
- abstract cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>): Promise<void>;
22
+ abstract cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
30
23
  /**
31
24
  * Negatively cache objects that could not be found in the cache or DB.
32
25
  * @param fieldName - object field being queried
@@ -1 +1 @@
1
- {"version":3,"file":"EntityCacheAdapter.js","sourceRoot":"","sources":["../src/EntityCacheAdapter.ts"],"names":[],"mappings":";;AAIA;;;GAGG;AACH,MAA8B,kBAAkB;IAC9C,YAA+B,mBAAiD;QAAjD,wBAAmB,GAAnB,mBAAmB,CAA8B;IAAG,CAAC;CAkDrF;AAnDD,qCAmDC"}
1
+ {"version":3,"file":"EntityCacheAdapter.js","sourceRoot":"","sources":["../src/EntityCacheAdapter.ts"],"names":[],"mappings":";;AAGA;;;GAGG;AACH,MAA8B,kBAAkB;IAC9C,YAA+B,mBAAiD;QAAjD,wBAAmB,GAAnB,mBAAmB,CAA8B;IAAG,CAAC;CA2CrF;AA5CD,qCA4CC"}
@@ -5,9 +5,9 @@ export declare enum CacheStatus {
5
5
  MISS = 1,
6
6
  NEGATIVE = 2
7
7
  }
8
- export declare type CacheLoadResult = {
8
+ export declare type CacheLoadResult<TFields> = {
9
9
  status: CacheStatus.HIT;
10
- item: Readonly<object>;
10
+ item: Readonly<TFields>;
11
11
  } | {
12
12
  status: CacheStatus.MISS;
13
13
  } | {
@@ -20,7 +20,6 @@ export declare type CacheLoadResult = {
20
20
  export default class ReadThroughEntityCache<TFields> {
21
21
  private readonly entityConfiguration;
22
22
  private readonly entityCacheAdapter;
23
- private readonly fieldTransformerMap;
24
23
  constructor(entityConfiguration: EntityConfiguration<TFields>, entityCacheAdapter: EntityCacheAdapter<TFields>);
25
24
  private isFieldCacheable;
26
25
  /**
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CacheStatus = void 0;
7
7
  const invariant_1 = __importDefault(require("invariant"));
8
8
  const maps_1 = require("../utils/collections/maps");
9
- const EntityFieldTransformationUtils_1 = require("./EntityFieldTransformationUtils");
10
9
  var CacheStatus;
11
10
  (function (CacheStatus) {
12
11
  CacheStatus[CacheStatus["HIT"] = 0] = "HIT";
@@ -21,7 +20,6 @@ class ReadThroughEntityCache {
21
20
  constructor(entityConfiguration, entityCacheAdapter) {
22
21
  this.entityConfiguration = entityConfiguration;
23
22
  this.entityCacheAdapter = entityCacheAdapter;
24
- this.fieldTransformerMap = entityCacheAdapter.getFieldTransformerMap();
25
23
  }
26
24
  isFieldCacheable(fieldName) {
27
25
  return this.entityConfiguration.cacheableKeys.has(fieldName);
@@ -54,9 +52,7 @@ class ReadThroughEntityCache {
54
52
  const results = new Map();
55
53
  cacheLoadResults.forEach((cacheLoadResult, fieldValue) => {
56
54
  if (cacheLoadResult.status === CacheStatus.HIT) {
57
- results.set(fieldValue, [
58
- (0, EntityFieldTransformationUtils_1.transformCacheObjectToFields)(this.entityConfiguration, this.fieldTransformerMap, cacheLoadResult.item),
59
- ]);
55
+ results.set(fieldValue, [cacheLoadResult.item]);
60
56
  }
61
57
  });
62
58
  // fetch any misses from DB, add DB objects to results, cache DB results, inform cache of any missing DB results
@@ -77,7 +73,7 @@ class ReadThroughEntityCache {
77
73
  }
78
74
  const uniqueObject = objects[0];
79
75
  if (uniqueObject) {
80
- objectsToCache.set(fieldValue, (0, EntityFieldTransformationUtils_1.transformFieldsToCacheObject)(this.entityConfiguration, this.fieldTransformerMap, uniqueObject));
76
+ objectsToCache.set(fieldValue, uniqueObject);
81
77
  results.set(fieldValue, [uniqueObject]);
82
78
  }
83
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadThroughEntityCache.js","sourceRoot":"","sources":["../../src/internal/ReadThroughEntityCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadThroughEntityCache.js","sourceRoot":"","sources":["../../src/internal/ReadThroughEntityCache.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,6 @@ describe(ReadThroughEntityCache_1.default, () => {
51
51
  describe('readManyThroughAsync', () => {
52
52
  it('fetches from DB upon cache miss and caches the result', async () => {
53
53
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
54
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
55
54
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
56
55
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
57
56
  const fetcher = createIdFetcher(['wat', 'who']);
@@ -73,7 +72,6 @@ describe(ReadThroughEntityCache_1.default, () => {
73
72
  });
74
73
  it('does not fetch from the DB or cache results when all cache fetches are hits', async () => {
75
74
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
76
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
77
75
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
78
76
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
79
77
  const fetcher = createIdFetcher(['wat', 'who']);
@@ -95,7 +93,6 @@ describe(ReadThroughEntityCache_1.default, () => {
95
93
  });
96
94
  it('negatively caches db misses', async () => {
97
95
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
98
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
99
96
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
100
97
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
101
98
  // simulate db miss
@@ -109,7 +106,6 @@ describe(ReadThroughEntityCache_1.default, () => {
109
106
  });
110
107
  it('does not return or fetch negatively cached results from DB', async () => {
111
108
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
112
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
113
109
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
114
110
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
115
111
  const fetcher = createIdFetcher([]);
@@ -122,7 +118,6 @@ describe(ReadThroughEntityCache_1.default, () => {
122
118
  });
123
119
  it('does a mix and match of hit, miss, and negative', async () => {
124
120
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
125
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
126
121
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
127
122
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
128
123
  const fetcher = createIdFetcher(['wat', 'who', 'why']);
@@ -143,7 +138,6 @@ describe(ReadThroughEntityCache_1.default, () => {
143
138
  });
144
139
  it('does not call into cache for field that is not cacheable', async () => {
145
140
  const cacheAdapterMock = (0, ts_mockito_1.mock)();
146
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
147
141
  const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
148
142
  const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(false), cacheAdapter);
149
143
  const fetcher = createIdFetcher(['wat']);
@@ -151,32 +145,6 @@ describe(ReadThroughEntityCache_1.default, () => {
151
145
  (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.anything)())).never();
152
146
  expect(result).toEqual(new Map([['wat', [{ id: 'wat' }]]]));
153
147
  });
154
- it('transforms fields for cache storage', async () => {
155
- const cacheAdapterMock = (0, ts_mockito_1.mock)();
156
- (0, ts_mockito_1.when)(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map([
157
- [
158
- EntityFields_1.UUIDField.name,
159
- {
160
- read: (val) => val.split('-')[0],
161
- write: (val) => `${val}-in-cache`,
162
- },
163
- ],
164
- ]));
165
- const cacheAdapter = (0, ts_mockito_1.instance)(cacheAdapterMock);
166
- const entityCache = new ReadThroughEntityCache_1.default(makeEntityConfiguration(true), cacheAdapter);
167
- const fetcher = createIdFetcher(['wat', 'who']);
168
- (0, ts_mockito_1.when)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.deepEqual)(['wat', 'who']))).thenResolve(new Map([
169
- ['wat', { status: ReadThroughEntityCache_1.CacheStatus.MISS }],
170
- ['who', { status: ReadThroughEntityCache_1.CacheStatus.HIT, item: { id: 'who-in-cache' } }],
171
- ]));
172
- const result = await entityCache.readManyThroughAsync('id', ['wat', 'who'], fetcher);
173
- (0, ts_mockito_1.verify)(cacheAdapterMock.loadManyAsync('id', (0, ts_mockito_1.deepEqual)(['wat', 'who']))).once();
174
- (0, ts_mockito_1.verify)(cacheAdapterMock.cacheManyAsync('id', (0, ts_mockito_1.deepEqual)(new Map([['wat', { id: 'wat-in-cache' }]])))).once();
175
- expect(result).toEqual(new Map([
176
- ['wat', [{ id: 'wat' }]],
177
- ['who', [{ id: 'who' }]],
178
- ]));
179
- });
180
148
  });
181
149
  describe('invalidateManyAsync', () => {
182
150
  it('calls cache adapter invalidate', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ReadThroughEntityCache-test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/ReadThroughEntityCache-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadThroughEntityCache-test.js","sourceRoot":"","sources":["../../../src/internal/__tests__/ReadThroughEntityCache-test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  import EntityCacheAdapter from '../../EntityCacheAdapter';
2
2
  import EntityConfiguration from '../../EntityConfiguration';
3
3
  import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
4
- import { FieldTransformerMap } from '../../internal/EntityFieldTransformationUtils';
5
4
  import { CacheLoadResult } from '../../internal/ReadThroughEntityCache';
6
5
  export declare class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
7
6
  getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
8
7
  }
9
8
  export declare class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
10
- getFieldTransformerMap(): FieldTransformerMap;
11
- loadManyAsync<N extends keyof TFields>(_fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>>;
12
- cacheManyAsync<N extends keyof TFields>(_fieldName: N, _objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>): Promise<void>;
9
+ loadManyAsync<N extends keyof TFields>(_fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
10
+ cacheManyAsync<N extends keyof TFields>(_fieldName: N, _objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
13
11
  cacheDBMissesAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
14
12
  invalidateManyAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly TFields[N][]): Promise<void>;
15
13
  }
@@ -18,11 +16,10 @@ export declare class InMemoryFullCacheStubCacheAdapterProvider implements IEntit
18
16
  getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
19
17
  }
20
18
  export declare class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
21
- readonly cache: Map<string, Readonly<object>>;
22
- constructor(entityConfiguration: EntityConfiguration<TFields>, cache: Map<string, Readonly<object>>);
23
- getFieldTransformerMap(): FieldTransformerMap;
24
- loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>>;
25
- cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>): Promise<void>;
19
+ readonly cache: Map<string, Readonly<TFields>>;
20
+ constructor(entityConfiguration: EntityConfiguration<TFields>, cache: Map<string, Readonly<TFields>>);
21
+ loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
22
+ cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
26
23
  cacheDBMissesAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
27
24
  invalidateManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
28
25
  private createCacheKey;
@@ -14,9 +14,6 @@ class NoCacheStubCacheAdapterProvider {
14
14
  }
15
15
  exports.NoCacheStubCacheAdapterProvider = NoCacheStubCacheAdapterProvider;
16
16
  class NoCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
17
- getFieldTransformerMap() {
18
- return new Map();
19
- }
20
17
  async loadManyAsync(_fieldName, fieldValues) {
21
18
  return fieldValues.reduce((acc, v) => {
22
19
  acc.set(v, {
@@ -44,9 +41,6 @@ class InMemoryFullCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
44
41
  super(entityConfiguration);
45
42
  this.cache = cache;
46
43
  }
47
- getFieldTransformerMap() {
48
- return new Map();
49
- }
50
44
  async loadManyAsync(fieldName, fieldValues) {
51
45
  const results = new Map();
52
46
  fieldValues.forEach((fieldValue) => {
@@ -1 +1 @@
1
- {"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "A privacy-first data model",
5
5
  "files": [
6
6
  "build",
@@ -1,5 +1,4 @@
1
1
  import EntityConfiguration from './EntityConfiguration';
2
- import { FieldTransformerMap } from './internal/EntityFieldTransformationUtils';
3
2
  import { CacheLoadResult } from './internal/ReadThroughEntityCache';
4
3
 
5
4
  /**
@@ -9,13 +8,6 @@ import { CacheLoadResult } from './internal/ReadThroughEntityCache';
9
8
  export default abstract class EntityCacheAdapter<TFields> {
10
9
  constructor(protected readonly entityConfiguration: EntityConfiguration<TFields>) {}
11
10
 
12
- /**
13
- * Transformer definitions for field types. Used to modify values as they are read from or written to
14
- * the cache. Override in concrete subclasses to change transformation behavior.
15
- * If a field type is not present in the map, then fields of that type will not be transformed.
16
- */
17
- public abstract getFieldTransformerMap(): FieldTransformerMap;
18
-
19
11
  /**
20
12
  * Load many objects from cache.
21
13
  * @param fieldName - object field being queried
@@ -25,7 +17,7 @@ export default abstract class EntityCacheAdapter<TFields> {
25
17
  public abstract loadManyAsync<N extends keyof TFields>(
26
18
  fieldName: N,
27
19
  fieldValues: readonly NonNullable<TFields[N]>[]
28
- ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>>;
20
+ ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
29
21
 
30
22
  /**
31
23
  * Cache many objects fetched from the DB.
@@ -34,7 +26,7 @@ export default abstract class EntityCacheAdapter<TFields> {
34
26
  */
35
27
  public abstract cacheManyAsync<N extends keyof TFields>(
36
28
  fieldName: N,
37
- objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>
29
+ objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
38
30
  ): Promise<void>;
39
31
 
40
32
  /**
@@ -3,11 +3,6 @@ import invariant from 'invariant';
3
3
  import EntityCacheAdapter from '../EntityCacheAdapter';
4
4
  import EntityConfiguration from '../EntityConfiguration';
5
5
  import { filterMap } from '../utils/collections/maps';
6
- import {
7
- FieldTransformerMap,
8
- transformCacheObjectToFields,
9
- transformFieldsToCacheObject,
10
- } from './EntityFieldTransformationUtils';
11
6
 
12
7
  export enum CacheStatus {
13
8
  HIT,
@@ -15,10 +10,10 @@ export enum CacheStatus {
15
10
  NEGATIVE,
16
11
  }
17
12
 
18
- export type CacheLoadResult =
13
+ export type CacheLoadResult<TFields> =
19
14
  | {
20
15
  status: CacheStatus.HIT;
21
- item: Readonly<object>;
16
+ item: Readonly<TFields>;
22
17
  }
23
18
  | {
24
19
  status: CacheStatus.MISS;
@@ -32,14 +27,10 @@ export type CacheLoadResult =
32
27
  * {@link EntityCacheAdapter} within the {@link EntityDataManager}.
33
28
  */
34
29
  export default class ReadThroughEntityCache<TFields> {
35
- private readonly fieldTransformerMap: FieldTransformerMap;
36
-
37
30
  constructor(
38
31
  private readonly entityConfiguration: EntityConfiguration<TFields>,
39
32
  private readonly entityCacheAdapter: EntityCacheAdapter<TFields>
40
- ) {
41
- this.fieldTransformerMap = entityCacheAdapter.getFieldTransformerMap();
42
- }
33
+ ) {}
43
34
 
44
35
  private isFieldCacheable<N extends keyof TFields>(fieldName: N): boolean {
45
36
  return this.entityConfiguration.cacheableKeys.has(fieldName);
@@ -91,13 +82,7 @@ export default class ReadThroughEntityCache<TFields> {
91
82
  const results: Map<NonNullable<TFields[N]>, readonly Readonly<TFields>[]> = new Map();
92
83
  cacheLoadResults.forEach((cacheLoadResult, fieldValue) => {
93
84
  if (cacheLoadResult.status === CacheStatus.HIT) {
94
- results.set(fieldValue, [
95
- transformCacheObjectToFields(
96
- this.entityConfiguration,
97
- this.fieldTransformerMap,
98
- cacheLoadResult.item
99
- ),
100
- ]);
85
+ results.set(fieldValue, [cacheLoadResult.item]);
101
86
  }
102
87
  });
103
88
 
@@ -110,7 +95,7 @@ export default class ReadThroughEntityCache<TFields> {
110
95
  return !objectsFromFulfillerForFv || objectsFromFulfillerForFv.length === 0;
111
96
  });
112
97
 
113
- const objectsToCache: Map<NonNullable<TFields[N]>, object> = new Map();
98
+ const objectsToCache: Map<NonNullable<TFields[N]>, Readonly<TFields>> = new Map();
114
99
  for (const [fieldValue, objects] of dbFetchResults.entries()) {
115
100
  if (objects.length > 1) {
116
101
  // multiple objects received for what was supposed to be a unique query, don't add to return map nor cache
@@ -123,14 +108,7 @@ export default class ReadThroughEntityCache<TFields> {
123
108
  }
124
109
  const uniqueObject = objects[0];
125
110
  if (uniqueObject) {
126
- objectsToCache.set(
127
- fieldValue,
128
- transformFieldsToCacheObject(
129
- this.entityConfiguration,
130
- this.fieldTransformerMap,
131
- uniqueObject
132
- )
133
- );
111
+ objectsToCache.set(fieldValue, uniqueObject);
134
112
  results.set(fieldValue, [uniqueObject]);
135
113
  }
136
114
  }
@@ -40,7 +40,6 @@ describe(ReadThroughEntityCache, () => {
40
40
  describe('readManyThroughAsync', () => {
41
41
  it('fetches from DB upon cache miss and caches the result', async () => {
42
42
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
43
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
44
43
  const cacheAdapter = instance(cacheAdapterMock);
45
44
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
46
45
  const fetcher = createIdFetcher(['wat', 'who']);
@@ -77,7 +76,6 @@ describe(ReadThroughEntityCache, () => {
77
76
 
78
77
  it('does not fetch from the DB or cache results when all cache fetches are hits', async () => {
79
78
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
80
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
81
79
  const cacheAdapter = instance(cacheAdapterMock);
82
80
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
83
81
  const fetcher = createIdFetcher(['wat', 'who']);
@@ -114,7 +112,6 @@ describe(ReadThroughEntityCache, () => {
114
112
 
115
113
  it('negatively caches db misses', async () => {
116
114
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
117
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
118
115
  const cacheAdapter = instance(cacheAdapterMock);
119
116
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
120
117
 
@@ -135,7 +132,6 @@ describe(ReadThroughEntityCache, () => {
135
132
 
136
133
  it('does not return or fetch negatively cached results from DB', async () => {
137
134
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
138
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
139
135
  const cacheAdapter = instance(cacheAdapterMock);
140
136
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
141
137
  const fetcher = createIdFetcher([]);
@@ -153,7 +149,6 @@ describe(ReadThroughEntityCache, () => {
153
149
 
154
150
  it('does a mix and match of hit, miss, and negative', async () => {
155
151
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
156
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
157
152
  const cacheAdapter = instance(cacheAdapterMock);
158
153
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
159
154
  const fetcher = createIdFetcher(['wat', 'who', 'why']);
@@ -189,7 +184,6 @@ describe(ReadThroughEntityCache, () => {
189
184
 
190
185
  it('does not call into cache for field that is not cacheable', async () => {
191
186
  const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
192
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(new Map());
193
187
  const cacheAdapter = instance(cacheAdapterMock);
194
188
  const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(false), cacheAdapter);
195
189
  const fetcher = createIdFetcher(['wat']);
@@ -197,44 +191,6 @@ describe(ReadThroughEntityCache, () => {
197
191
  verify(cacheAdapterMock.loadManyAsync('id', anything())).never();
198
192
  expect(result).toEqual(new Map([['wat', [{ id: 'wat' }]]]));
199
193
  });
200
-
201
- it('transforms fields for cache storage', async () => {
202
- const cacheAdapterMock = mock<EntityCacheAdapter<BlahFields>>();
203
- when(cacheAdapterMock.getFieldTransformerMap()).thenReturn(
204
- new Map([
205
- [
206
- UUIDField.name,
207
- {
208
- read: (val) => val.split('-')[0],
209
- write: (val) => `${val}-in-cache`,
210
- },
211
- ],
212
- ])
213
- );
214
- const cacheAdapter = instance(cacheAdapterMock);
215
- const entityCache = new ReadThroughEntityCache(makeEntityConfiguration(true), cacheAdapter);
216
- const fetcher = createIdFetcher(['wat', 'who']);
217
-
218
- when(cacheAdapterMock.loadManyAsync('id', deepEqual(['wat', 'who']))).thenResolve(
219
- new Map([
220
- ['wat', { status: CacheStatus.MISS }],
221
- ['who', { status: CacheStatus.HIT, item: { id: 'who-in-cache' } }],
222
- ])
223
- );
224
-
225
- const result = await entityCache.readManyThroughAsync('id', ['wat', 'who'], fetcher);
226
-
227
- verify(cacheAdapterMock.loadManyAsync('id', deepEqual(['wat', 'who']))).once();
228
- verify(
229
- cacheAdapterMock.cacheManyAsync('id', deepEqual(new Map([['wat', { id: 'wat-in-cache' }]])))
230
- ).once();
231
- expect(result).toEqual(
232
- new Map([
233
- ['wat', [{ id: 'wat' }]],
234
- ['who', [{ id: 'who' }]],
235
- ])
236
- );
237
- });
238
194
  });
239
195
 
240
196
  describe('invalidateManyAsync', () => {
@@ -3,7 +3,6 @@ import invariant from 'invariant';
3
3
  import EntityCacheAdapter from '../../EntityCacheAdapter';
4
4
  import EntityConfiguration from '../../EntityConfiguration';
5
5
  import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
6
- import { FieldTransformerMap } from '../../internal/EntityFieldTransformationUtils';
7
6
  import { CacheStatus, CacheLoadResult } from '../../internal/ReadThroughEntityCache';
8
7
 
9
8
  export class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
@@ -15,15 +14,11 @@ export class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvi
15
14
  }
16
15
 
17
16
  export class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
18
- public getFieldTransformerMap(): FieldTransformerMap {
19
- return new Map();
20
- }
21
-
22
17
  public async loadManyAsync<N extends keyof TFields>(
23
18
  _fieldName: N,
24
19
  fieldValues: readonly NonNullable<TFields[N]>[]
25
- ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>> {
26
- return fieldValues.reduce((acc: Map<NonNullable<TFields[N]>, CacheLoadResult>, v) => {
20
+ ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>> {
21
+ return fieldValues.reduce((acc: Map<NonNullable<TFields[N]>, CacheLoadResult<TFields>>, v) => {
27
22
  acc.set(v, {
28
23
  status: CacheStatus.MISS,
29
24
  });
@@ -33,7 +28,7 @@ export class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields
33
28
 
34
29
  public async cacheManyAsync<N extends keyof TFields>(
35
30
  _fieldName: N,
36
- _objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>
31
+ _objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
37
32
  ): Promise<void> {}
38
33
 
39
34
  public async cacheDBMissesAsync<N extends keyof TFields>(
@@ -53,27 +48,26 @@ export class InMemoryFullCacheStubCacheAdapterProvider implements IEntityCacheAd
53
48
  getCacheAdapter<TFields>(
54
49
  entityConfiguration: EntityConfiguration<TFields>
55
50
  ): EntityCacheAdapter<TFields> {
56
- return new InMemoryFullCacheStubCacheAdapter(entityConfiguration, this.cache);
51
+ return new InMemoryFullCacheStubCacheAdapter(
52
+ entityConfiguration,
53
+ this.cache as Map<string, Readonly<TFields>>
54
+ );
57
55
  }
58
56
  }
59
57
 
60
58
  export class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
61
59
  constructor(
62
60
  entityConfiguration: EntityConfiguration<TFields>,
63
- readonly cache: Map<string, Readonly<object>>
61
+ readonly cache: Map<string, Readonly<TFields>>
64
62
  ) {
65
63
  super(entityConfiguration);
66
64
  }
67
65
 
68
- public getFieldTransformerMap(): FieldTransformerMap {
69
- return new Map();
70
- }
71
-
72
66
  public async loadManyAsync<N extends keyof TFields>(
73
67
  fieldName: N,
74
68
  fieldValues: readonly NonNullable<TFields[N]>[]
75
- ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult>> {
76
- const results = new Map<NonNullable<TFields[N]>, CacheLoadResult>();
69
+ ): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>> {
70
+ const results = new Map<NonNullable<TFields[N]>, CacheLoadResult<TFields>>();
77
71
  fieldValues.forEach((fieldValue) => {
78
72
  const cacheKey = this.createCacheKey(fieldName, fieldValue);
79
73
  if (!this.cache.has(cacheKey)) {
@@ -94,7 +88,7 @@ export class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapt
94
88
 
95
89
  public async cacheManyAsync<N extends keyof TFields>(
96
90
  fieldName: N,
97
- objectMap: ReadonlyMap<NonNullable<TFields[N]>, object>
91
+ objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>
98
92
  ): Promise<void> {
99
93
  objectMap.forEach((obj, fieldValue) => {
100
94
  const cacheKey = this.createCacheKey(fieldName, fieldValue);