Skip to content

Commit a5b8fe6

Browse files
committed
WIP
1 parent c83b140 commit a5b8fe6

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

packages/data-connect/src/api/DataConnect.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ import {
3030
updateEmulatorBanner
3131
} from '@firebase/util';
3232

33-
import { CacheSettings, DataConnectCache, InMemoryCacheProvider } from '../cache/Cache';
33+
import { DataConnectCache, InMemoryCacheProvider } from '../cache/Cache';
34+
import { CacheProvider } from '../cache/CacheProvider';
35+
import { IndexedDBCacheProvider } from '../cache/IndexedDBCacheProvider';
3436
import { AppCheckTokenProvider } from '../core/AppCheckTokenProvider';
3537
import { Code, DataConnectError } from '../core/error';
3638
import {
@@ -49,8 +51,6 @@ import { RESTTransport } from '../network/transport/rest';
4951
import { PROD_HOST } from '../util/url';
5052

5153
import { MutationManager } from './Mutation';
52-
import { IndexedDBCacheProvider } from '../cache/IndexedDBCacheProvider';
53-
import { CacheProvider } from '../cache/CacheProvider';
5454

5555
/**
5656
* Connector Config for calling Data Connect backend.
@@ -268,7 +268,7 @@ export function connectDataConnectEmulator(
268268

269269
export type CacheProviderImpl = PublicIndexedDbProvider | PublicEphemeralDbProvider;
270270

271-
class PublicIndexedDbProvider {
271+
export class PublicIndexedDbProvider {
272272

273273
/**
274274
* @internal
@@ -278,7 +278,7 @@ class PublicIndexedDbProvider {
278278
}
279279
}
280280

281-
class PublicEphemeralDbProvider {
281+
export class PublicEphemeralDbProvider {
282282
/**
283283
* @internal
284284
*/

packages/data-connect/src/cache/Cache.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { isIndexedDBAvailable, generateSHA256HashBrowser, Deferred } from '@firebase/util';
22

3-
import { type ConnectorConfig } from '../api/DataConnect';
3+
import { CacheProviderImpl, PublicIndexedDbProvider, type ConnectorConfig } from '../api/DataConnect';
44
import { DataConnectError } from '../core/error';
55
import { type AuthTokenProvider } from '../core/FirebaseAuthProvider';
66
import { logDebug } from '../logger';
@@ -21,7 +21,7 @@ export type DataConnectStorage = typeof Memory | typeof Persistent;
2121
* CacheSettings
2222
*/
2323
export interface CacheSettings {
24-
storage: DataConnectStorage;
24+
storage: CacheProviderImpl;
2525
maxSizeBytes: number;
2626
}
2727

@@ -57,7 +57,7 @@ export class DataConnectCache {
5757
}
5858

5959
async getIdentifier(uid: string): Promise<string> {
60-
const identifier = `${this.cacheSettings?.storage === Persistent ? 'persistent' : 'memory'}-${this.projectId}-${this.connectorConfig.service}-${this.connectorConfig.connector}-${this.connectorConfig.location}-${uid}-${this.host}`;
60+
const identifier = `${this.cacheSettings?.storage instanceof InMemoryCacheProvider ? 'persistent' : 'memory'}-${this.projectId}-${this.connectorConfig.service}-${this.connectorConfig.connector}-${this.connectorConfig.location}-${uid}-${this.host}`;
6161
const sha256 = await generateSHA256HashBrowser(identifier);
6262
return sha256;
6363
}
@@ -77,7 +77,7 @@ export class DataConnectCache {
7777
await this.cacheProvider?.close();
7878
let cacheProvider: CacheProvider;
7979
const identifier = await this.getIdentifier(this.uid);
80-
const isPersistenceEnabled = this.cacheSettings?.storage === Persistent;
80+
const isPersistenceEnabled = this.cacheSettings?.storage instanceof PublicIndexedDbProvider;
8181
if (this.cacheSettings) {
8282
cacheProvider = isPersistenceEnabled ? new IndexedDBCacheProvider(identifier) : new InMemoryCacheProvider(identifier);
8383
} else if (!isIndexedDBAvailable()) {

packages/data-connect/src/cache/IndexedDBCacheProvider.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export class IndexedDBCacheProvider implements CacheProvider {
88
private bdos = new Map<string, EntityDataObject>();
99
private resultTrees = new Map<string, ResultTree>();
1010
private idbManager: IndexedDbManager;
11-
private readFromDb = false;
1211
private initialized = false;
1312
isIdbAvailable(): boolean {
1413
return typeof window !== 'undefined' && 'indexedDB' in window;

0 commit comments

Comments
 (0)