Skip to content

Commit bddc340

Browse files
Factor out Multi-Tab
1 parent 437c404 commit bddc340

29 files changed

+960
-898
lines changed

packages/firestore/index.memory.ts

Lines changed: 2 additions & 2 deletions
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 3 additions & 3 deletions
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

Lines changed: 3 additions & 3 deletions
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

Lines changed: 14 additions & 15 deletions
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';
@@ -279,7 +281,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
279281
// underscore to discourage their use.
280282
readonly _databaseId: DatabaseId;
281283
private readonly _persistenceKey: string;
282-
private readonly _persistenceProvider: PersistenceProvider;
284+
private readonly _componentProvider: ComponentProvider;
283285
private _credentials: CredentialsProvider;
284286
private readonly _firebaseApp: FirebaseApp | null = null;
285287
private _settings: FirestoreSettings;
@@ -298,13 +300,13 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
298300

299301
readonly _dataReader: UserDataReader;
300302

301-
// Note: We are using `MemoryPersistenceProvider` as a default
302-
// PersistenceProvider to ensure backwards compatibility with the format
303+
// Note: We are using `MemoryComponentProvider` as a default
304+
// ComponentProvider to ensure backwards compatibility with the format
303305
// expected by the console build.
304306
constructor(
305307
databaseIdOrApp: FirestoreDatabase | FirebaseApp,
306308
authProvider: Provider<FirebaseAuthInternalName>,
307-
persistenceProvider: PersistenceProvider = new MemoryPersistenceProvider()
309+
persistenceProvider: ComponentProvider = new MemoryComponentProvider()
308310
) {
309311
if (typeof (databaseIdOrApp as FirebaseApp).options === 'object') {
310312
// This is very likely a Firebase app object
@@ -329,7 +331,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
329331
this._credentials = new EmptyCredentialsProvider();
330332
}
331333

332-
this._persistenceProvider = persistenceProvider;
334+
this._componentProvider = persistenceProvider;
333335
this._settings = new FirestoreSettings({});
334336
this._dataReader = this.createDataReader(this._databaseId);
335337
}
@@ -399,7 +401,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
399401
DEFAULT_SYNCHRONIZE_TABS;
400402
}
401403

402-
return this.configureClient(this._persistenceProvider, {
404+
return this.configureClient(this._componentProvider, {
403405
durable: true,
404406
cacheSizeBytes: this._settings.cacheSizeBytes,
405407
synchronizeTabs
@@ -421,7 +423,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
421423
this._queue.enqueueAndForgetEvenAfterShutdown(async () => {
422424
try {
423425
const databaseInfo = this.makeDatabaseInfo();
424-
await this._persistenceProvider.clearPersistence(databaseInfo);
426+
await this._componentProvider.clearPersistence(databaseInfo);
425427
deferred.resolve();
426428
} catch (e) {
427429
deferred.reject(e);
@@ -486,7 +488,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
486488
if (!this._firestoreClient) {
487489
// Kick off starting the client but don't actually wait for it.
488490
// eslint-disable-next-line @typescript-eslint/no-floating-promises
489-
this.configureClient(new MemoryPersistenceProvider(), {
491+
this.configureClient(new MemoryComponentProvider(), {
490492
durable: false
491493
});
492494
}
@@ -504,7 +506,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
504506
}
505507

506508
private configureClient(
507-
persistenceProvider: PersistenceProvider,
509+
componentProvider: ComponentProvider,
508510
persistenceSettings: PersistenceSettings
509511
): Promise<void> {
510512
assert(!!this._settings.host, 'FirestoreSettings.host is not set');
@@ -520,10 +522,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
520522
this._queue
521523
);
522524

523-
return this._firestoreClient.start(
524-
persistenceProvider,
525-
persistenceSettings
526-
);
525+
return this._firestoreClient.start(componentProvider, persistenceSettings);
527526
}
528527

529528
private createDataReader(databaseId: DatabaseId): UserDataReader {

0 commit comments

Comments
 (0)