Skip to content

Commit 6a4c00f

Browse files
Add ComponentProvider (#2828)
1 parent 705e9f9 commit 6a4c00f

16 files changed

+490
-465
lines changed

packages/firestore/index.memory.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import firebase from '@firebase/app';
1919
import { FirebaseNamespace } from '@firebase/app-types';
2020

2121
import { Firestore } from './src/api/database';
22-
import { MemoryPersistenceProvider } from './src/local/memory_persistence';
22+
import { MemoryComponentProvider } from './src/core/component_provider';
2323
import { configureForFirebase } from './src/platform/config';
2424

2525
import './register-module';
@@ -33,7 +33,7 @@ import { name, version } from './package.json';
3333
export function registerFirestore(instance: FirebaseNamespace): void {
3434
configureForFirebase(
3535
instance,
36-
(app, auth) => new Firestore(app, auth, new MemoryPersistenceProvider())
36+
(app, auth) => new Firestore(app, auth, new MemoryComponentProvider())
3737
);
3838
instance.registerVersion(name, version);
3939
}

packages/firestore/index.node.memory.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import firebase from '@firebase/app';
1919
import { FirebaseNamespace } from '@firebase/app-types';
2020

2121
import { Firestore } from './src/api/database';
22-
import { MemoryPersistenceProvider } from './src/local/memory_persistence';
22+
import { MemoryComponentProvider } from './src/core/component_provider';
2323
import { configureForFirebase } from './src/platform/config';
2424
import './register-module';
2525
import './src/platform_node/node_init';
@@ -33,7 +33,7 @@ import { name, version } from './package.json';
3333
export function registerFirestore(instance: FirebaseNamespace): void {
3434
configureForFirebase(
3535
instance,
36-
(app, auth) => new Firestore(app, auth, new MemoryPersistenceProvider())
36+
(app, auth) => new Firestore(app, auth, new MemoryComponentProvider())
3737
);
3838
instance.registerVersion(name, version);
3939
}

packages/firestore/index.node.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @license
3-
* Copyright 2017 Google Inc.
3+
* Copyright 2017 Google LLC
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
66
* you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@ import firebase from '@firebase/app';
1818
import { FirebaseNamespace } from '@firebase/app-types';
1919

2020
import { Firestore } from './src/api/database';
21-
import { IndexedDbPersistenceProvider } from './src/local/indexeddb_persistence';
21+
import { IndexedDbComponentProvider } from './src/core/component_provider';
2222
import { configureForFirebase } from './src/platform/config';
2323

2424
import './register-module';
@@ -33,7 +33,7 @@ import { name, version } from './package.json';
3333
export function registerFirestore(instance: FirebaseNamespace): void {
3434
configureForFirebase(
3535
instance,
36-
(app, auth) => new Firestore(app, auth, new IndexedDbPersistenceProvider())
36+
(app, auth) => new Firestore(app, auth, new IndexedDbComponentProvider())
3737
);
3838
instance.registerVersion(name, version, 'node');
3939
}

packages/firestore/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @license
3-
* Copyright 2017 Google Inc.
3+
* Copyright 2017 Google LLC
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
66
* you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ import firebase from '@firebase/app';
1919
import { FirebaseNamespace } from '@firebase/app-types';
2020

2121
import { Firestore } from './src/api/database';
22-
import { IndexedDbPersistenceProvider } from './src/local/indexeddb_persistence';
22+
import { IndexedDbComponentProvider } from './src/core/component_provider';
2323
import { configureForFirebase } from './src/platform/config';
2424
import { name, version } from './package.json';
2525

@@ -33,7 +33,7 @@ import './src/platform_browser/browser_init';
3333
export function registerFirestore(instance: FirebaseNamespace): void {
3434
configureForFirebase(
3535
instance,
36-
(app, auth) => new Firestore(app, auth, new IndexedDbPersistenceProvider())
36+
(app, auth) => new Firestore(app, auth, new IndexedDbComponentProvider())
3737
);
3838
instance.registerVersion(name, version);
3939
}

packages/firestore/src/api/database.ts

+14-15
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ import { FirebaseApp } from '@firebase/app-types';
2323
import { _FirebaseApp, FirebaseService } from '@firebase/app-types/private';
2424
import { DatabaseId, DatabaseInfo } from '../core/database_info';
2525
import { ListenOptions } from '../core/event_manager';
26+
import {
27+
ComponentProvider,
28+
MemoryComponentProvider
29+
} from '../core/component_provider';
2630
import { FirestoreClient, PersistenceSettings } from '../core/firestore_client';
2731
import {
2832
Bound,
@@ -36,8 +40,6 @@ import {
3640
import { Transaction as InternalTransaction } from '../core/transaction';
3741
import { ChangeType, ViewSnapshot } from '../core/view_snapshot';
3842
import { LruParams } from '../local/lru_garbage_collector';
39-
import { MemoryPersistenceProvider } from '../local/memory_persistence';
40-
import { PersistenceProvider } from '../local/persistence';
4143
import { Document, MaybeDocument, NoDocument } from '../model/document';
4244
import { DocumentKey } from '../model/document_key';
4345
import { DeleteMutation, Mutation, Precondition } from '../model/mutation';
@@ -262,7 +264,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
262264
// underscore to discourage their use.
263265
readonly _databaseId: DatabaseId;
264266
private readonly _persistenceKey: string;
265-
private readonly _persistenceProvider: PersistenceProvider;
267+
private readonly _componentProvider: ComponentProvider;
266268
private _credentials: CredentialsProvider;
267269
private readonly _firebaseApp: FirebaseApp | null = null;
268270
private _settings: FirestoreSettings;
@@ -281,13 +283,13 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
281283

282284
readonly _dataReader: UserDataReader;
283285

284-
// Note: We are using `MemoryPersistenceProvider` as a default
285-
// PersistenceProvider to ensure backwards compatibility with the format
286+
// Note: We are using `MemoryComponentProvider` as a default
287+
// ComponentProvider to ensure backwards compatibility with the format
286288
// expected by the console build.
287289
constructor(
288290
databaseIdOrApp: FirestoreDatabase | FirebaseApp,
289291
authProvider: Provider<FirebaseAuthInternalName>,
290-
persistenceProvider: PersistenceProvider = new MemoryPersistenceProvider()
292+
persistenceProvider: ComponentProvider = new MemoryComponentProvider()
291293
) {
292294
if (typeof (databaseIdOrApp as FirebaseApp).options === 'object') {
293295
// This is very likely a Firebase app object
@@ -312,7 +314,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
312314
this._credentials = new EmptyCredentialsProvider();
313315
}
314316

315-
this._persistenceProvider = persistenceProvider;
317+
this._componentProvider = persistenceProvider;
316318
this._settings = new FirestoreSettings({});
317319
this._dataReader = this.createDataReader(this._databaseId);
318320
}
@@ -371,7 +373,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
371373
DEFAULT_SYNCHRONIZE_TABS;
372374
}
373375

374-
return this.configureClient(this._persistenceProvider, {
376+
return this.configureClient(this._componentProvider, {
375377
durable: true,
376378
cacheSizeBytes: this._settings.cacheSizeBytes,
377379
synchronizeTabs
@@ -393,7 +395,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
393395
this._queue.enqueueAndForgetEvenAfterShutdown(async () => {
394396
try {
395397
const databaseInfo = this.makeDatabaseInfo();
396-
await this._persistenceProvider.clearPersistence(databaseInfo);
398+
await this._componentProvider.clearPersistence(databaseInfo);
397399
deferred.resolve();
398400
} catch (e) {
399401
deferred.reject(e);
@@ -458,7 +460,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
458460
if (!this._firestoreClient) {
459461
// Kick off starting the client but don't actually wait for it.
460462
// eslint-disable-next-line @typescript-eslint/no-floating-promises
461-
this.configureClient(new MemoryPersistenceProvider(), {
463+
this.configureClient(new MemoryComponentProvider(), {
462464
durable: false
463465
});
464466
}
@@ -476,7 +478,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
476478
}
477479

478480
private configureClient(
479-
persistenceProvider: PersistenceProvider,
481+
componentProvider: ComponentProvider,
480482
persistenceSettings: PersistenceSettings
481483
): Promise<void> {
482484
assert(!!this._settings.host, 'FirestoreSettings.host is not set');
@@ -492,10 +494,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
492494
this._queue
493495
);
494496

495-
return this._firestoreClient.start(
496-
persistenceProvider,
497-
persistenceSettings
498-
);
497+
return this._firestoreClient.start(componentProvider, persistenceSettings);
499498
}
500499

501500
private createDataReader(databaseId: DatabaseId): UserDataReader {

0 commit comments

Comments
 (0)