Skip to content

Commit 2f701bd

Browse files
Simplify
1 parent 12ff025 commit 2f701bd

File tree

3 files changed

+16
-37
lines changed

3 files changed

+16
-37
lines changed

packages/firestore/src/local/indexeddb_persistence.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ import {
5050
} from './indexeddb_schema';
5151
import {
5252
documentTargetStore,
53-
getHighestListenSequenceNumber,
5453
IndexedDbTargetCache
5554
} from './indexeddb_target_cache';
5655
import { LocalSerializer } from './local_serializer';
@@ -308,10 +307,7 @@ export class IndexedDbPersistence implements Persistence {
308307
return this.runTransaction(
309308
'getHighestListenSequenceNumber',
310309
'readonly',
311-
txn =>
312-
getHighestListenSequenceNumber(
313-
(txn as IndexedDbTransaction).simpleDbTransaction
314-
)
310+
txn => this.targetCache.getHighestSequenceNumber(txn)
315311
);
316312
})
317313
.then(highestListenSequenceNumber => {

packages/firestore/src/local/indexeddb_schema.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import {
2828
EncodedResourcePath
2929
} from './encoded_resource_path';
3030
import { removeMutationBatch } from './indexeddb_mutation_queue';
31-
import { getHighestListenSequenceNumber } from './indexeddb_target_cache';
3231
import { dbDocumentSize } from './indexeddb_remote_document_cache';
3332
import { LocalSerializer } from './local_serializer';
3433
import { MemoryCollectionParentIndex } from './memory_index_manager';
@@ -231,16 +230,19 @@ export class SchemaConverter implements SimpleDbSchemaConverter {
231230
const documentsStore = txn.store<DbRemoteDocumentKey, DbRemoteDocument>(
232231
DbRemoteDocument.store
233232
);
233+
const globalTargetStore = txn.store<DbTargetGlobalKey, DbTargetGlobal>(
234+
DbTargetGlobal.store
235+
);
234236

235-
return getHighestListenSequenceNumber(txn).next(currentSequenceNumber => {
237+
return globalTargetStore.get(DbTargetGlobal.key).next(metadata => {
236238
const writeSentinelKey = (
237239
path: ResourcePath
238240
): PersistencePromise<void> => {
239241
return documentTargetStore.put(
240242
new DbTargetDocument(
241243
0,
242244
encodeResourcePath(path),
243-
currentSequenceNumber
245+
metadata!.highestListenSequenceNumber!
244246
)
245247
);
246248
};

packages/firestore/src/local/indexeddb_target_cache.ts

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ import {
2929
} from './encoded_resource_path';
3030
import {
3131
IndexedDbLruDelegate,
32-
IndexedDbPersistence,
33-
IndexedDbTransaction
32+
IndexedDbPersistence
3433
} from './indexeddb_persistence';
3534
import {
3635
DbTarget,
@@ -46,7 +45,7 @@ import { PersistenceTransaction } from './persistence';
4645
import { PersistencePromise } from './persistence_promise';
4746
import { TargetCache } from './target_cache';
4847
import { TargetData } from './target_data';
49-
import { SimpleDb, SimpleDbStore, SimpleDbTransaction } from './simple_db';
48+
import { SimpleDbStore } from './simple_db';
5049
import { Target } from '../core/target';
5150

5251
export class IndexedDbTargetCache implements TargetCache {
@@ -90,8 +89,8 @@ export class IndexedDbTargetCache implements TargetCache {
9089
getHighestSequenceNumber(
9190
transaction: PersistenceTransaction
9291
): PersistencePromise<ListenSequenceNumber> {
93-
return getHighestListenSequenceNumber(
94-
(transaction as IndexedDbTransaction).simpleDbTransaction
92+
return this.retrieveMetadata(transaction).next(
93+
targetGlobal => targetGlobal.highestListenSequenceNumber
9594
);
9695
}
9796

@@ -192,9 +191,12 @@ export class IndexedDbTargetCache implements TargetCache {
192191
private retrieveMetadata(
193192
transaction: PersistenceTransaction
194193
): PersistencePromise<DbTargetGlobal> {
195-
return retrieveMetadata(
196-
(transaction as IndexedDbTransaction).simpleDbTransaction
197-
);
194+
return globalTargetStore(transaction)
195+
.get(DbTargetGlobal.key)
196+
.next(metadata => {
197+
hardAssert(metadata !== null, 'Missing metadata row.');
198+
return metadata;
199+
});
198200
}
199201

200202
private saveMetadata(
@@ -422,27 +424,6 @@ function globalTargetStore(
422424
);
423425
}
424426

425-
function retrieveMetadata(
426-
txn: SimpleDbTransaction
427-
): PersistencePromise<DbTargetGlobal> {
428-
const globalStore = SimpleDb.getStore<DbTargetGlobalKey, DbTargetGlobal>(
429-
txn,
430-
DbTargetGlobal.store
431-
);
432-
return globalStore.get(DbTargetGlobal.key).next(metadata => {
433-
hardAssert(metadata !== null, 'Missing metadata row.');
434-
return metadata;
435-
});
436-
}
437-
438-
export function getHighestListenSequenceNumber(
439-
txn: SimpleDbTransaction
440-
): PersistencePromise<ListenSequenceNumber> {
441-
return retrieveMetadata(txn).next(
442-
targetGlobal => targetGlobal.highestListenSequenceNumber
443-
);
444-
}
445-
446427
/**
447428
* Helper to get a typed SimpleDbStore for the document target object store.
448429
*/

0 commit comments

Comments
 (0)