Skip to content

Commit 37803dd

Browse files
committed
code cleanup
1 parent 9482f20 commit 37803dd

File tree

3 files changed

+39
-35
lines changed

3 files changed

+39
-35
lines changed

packages/firestore/src/core/firestore_client.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -235,17 +235,18 @@ export async function setOfflineComponentProvider(
235235
let error: FirestoreError | null;
236236

237237
if (event.type === 'ClearSiteDataDatabaseDeletedEvent') {
238-
const message =
239-
`Terminating Firestore in response to "${event.type}" event ` +
240-
`to prevent potential IndexedDB database corruption. ` +
241-
`This situation could be caused by clicking the ` +
242-
`"Clear Site Data" button in a web browser. ` +
243-
`Try reloading the web page to re-initialize the ` +
244-
`IndexedDB database.`;
245238
// Throw FirestoreError rather than just Error so that the error will
246239
// be treated as "non-retryable".
247-
error = new FirestoreError('failed-precondition', message);
248-
logWarn(message, event.data);
240+
error = new FirestoreError(
241+
'failed-precondition',
242+
`Terminating Firestore in response to "${event.type}" event ` +
243+
`to prevent potential IndexedDB database corruption. ` +
244+
`This situation could be caused by clicking the ` +
245+
`"Clear Site Data" button in a web browser. ` +
246+
`Try reloading the web page to re-initialize the ` +
247+
`IndexedDB database.`
248+
);
249+
logWarn(error.message, event.data);
249250
} else {
250251
error = null;
251252
logWarn(

packages/firestore/src/local/persistence.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ export class VersionChangeDatabaseDeletedEvent {
113113
readonly data: {
114114
/**
115115
* The value of the "newVersion" property of the "versionchange" event
116-
* that triggered this event. Its value is _always_ `null`, but is kept here
117-
* for posterity.
116+
* that triggered this event. Its value is _always_ `null`, but is kept
117+
* here for posterity.
118118
*/
119119
eventNewVersion: null;
120120
}

packages/firestore/src/local/simple_db.ts

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -304,31 +304,32 @@ export class SimpleDb {
304304
const request = indexedDB.open(this.name, this.version);
305305

306306
// Store information about "Clear Site Data" being detected in the
307-
// "onupgradeneeded" event and check it in the "onsuccess" event
308-
// rather than throwing directly from the "onupgradeneeded" event
309-
// since throwing directly from the listener results in a generic
310-
// exception that cannot be distinguished from other errors.
311-
const clearSiteDataEvent = {
312-
event: null as ClearSiteDataDatabaseDeletedEvent | null
313-
};
307+
// "onupgradeneeded" event listener and handle it in the "onsuccess"
308+
// event listener, as opposed to throwing directly from the
309+
// "onupgradeneeded" event listener. Do this because throwing from the
310+
// "onupgradeneeded" event listener results in a generic error being
311+
// reported to the "onerror" event listener that cannot be distinguished
312+
// from other errors.
313+
const clearSiteDataEvent: ClearSiteDataDatabaseDeletedEvent[] = [];
314314

315315
request.onsuccess = (event: Event) => {
316-
const db = (event.target as IDBOpenDBRequest).result;
317-
318-
if (clearSiteDataEvent.event) {
316+
let error: unknown;
317+
if (clearSiteDataEvent[0]) {
319318
try {
320-
this.databaseDeletedListener?.(clearSiteDataEvent.event);
319+
this.databaseDeletedListener?.(clearSiteDataEvent[0]);
321320
} catch (e) {
322-
try {
323-
db.close();
324-
} finally {
325-
reject(e);
326-
}
327-
return;
321+
error = e;
328322
}
329323
}
330324

331-
resolve(db);
325+
const db = (event.target as IDBOpenDBRequest).result;
326+
327+
if (error) {
328+
reject(error);
329+
db.close();
330+
} else {
331+
resolve(db);
332+
}
332333
};
333334

334335
request.onblocked = () => {
@@ -380,12 +381,14 @@ export class SimpleDb {
380381
this.lastClosedDbVersion !== null &&
381382
this.lastClosedDbVersion !== event.oldVersion
382383
) {
383-
clearSiteDataEvent.event = new ClearSiteDataDatabaseDeletedEvent({
384-
lastClosedVersion: this.lastClosedDbVersion,
385-
eventOldVersion: event.oldVersion,
386-
eventNewVersion: event.newVersion,
387-
dbVersion: db.version
388-
});
384+
clearSiteDataEvent.push(
385+
new ClearSiteDataDatabaseDeletedEvent({
386+
lastClosedVersion: this.lastClosedDbVersion,
387+
eventOldVersion: event.oldVersion,
388+
eventNewVersion: event.newVersion,
389+
dbVersion: db.version
390+
})
391+
);
389392
}
390393
this.schemaConverter
391394
.createOrUpgrade(

0 commit comments

Comments
 (0)