@@ -75,28 +75,36 @@ type ProjectNamespaceKeyFieldValue =
75
75
// Visible for testing.
76
76
export function openDatabase ( ) : Promise < IDBDatabase > {
77
77
return new Promise ( ( resolve , reject ) => {
78
- const request = indexedDB . open ( DB_NAME , DB_VERSION ) ;
79
- request . onerror = event => {
80
- reject ( toFirebaseError ( event , ErrorCode . STORAGE_OPEN ) ) ;
81
- } ;
82
- request . onsuccess = event => {
83
- resolve ( ( event . target as IDBOpenDBRequest ) . result ) ;
84
- } ;
85
- request . onupgradeneeded = event => {
86
- const db = ( event . target as IDBOpenDBRequest ) . result ;
78
+ try {
79
+ const request = indexedDB . open ( DB_NAME , DB_VERSION ) ;
80
+ request . onerror = event => {
81
+ reject ( toFirebaseError ( event , ErrorCode . STORAGE_OPEN ) ) ;
82
+ } ;
83
+ request . onsuccess = event => {
84
+ resolve ( ( event . target as IDBOpenDBRequest ) . result ) ;
85
+ } ;
86
+ request . onupgradeneeded = event => {
87
+ const db = ( event . target as IDBOpenDBRequest ) . result ;
87
88
88
- // We don't use 'break' in this switch statement, the fall-through
89
- // behavior is what we want, because if there are multiple versions between
90
- // the old version and the current version, we want ALL the migrations
91
- // that correspond to those versions to run, not only the last one.
92
- // eslint-disable-next-line default-case
93
- switch ( event . oldVersion ) {
94
- case 0 :
95
- db . createObjectStore ( APP_NAMESPACE_STORE , {
96
- keyPath : 'compositeKey'
97
- } ) ;
98
- }
99
- } ;
89
+ // We don't use 'break' in this switch statement, the fall-through
90
+ // behavior is what we want, because if there are multiple versions between
91
+ // the old version and the current version, we want ALL the migrations
92
+ // that correspond to those versions to run, not only the last one.
93
+ // eslint-disable-next-line default-case
94
+ switch ( event . oldVersion ) {
95
+ case 0 :
96
+ db . createObjectStore ( APP_NAMESPACE_STORE , {
97
+ keyPath : 'compositeKey'
98
+ } ) ;
99
+ }
100
+ } ;
101
+ } catch ( error ) {
102
+ reject (
103
+ ERROR_FACTORY . create ( ErrorCode . STORAGE_OPEN , {
104
+ originalErrorMessage : error
105
+ } )
106
+ ) ;
107
+ }
100
108
} ) ;
101
109
}
102
110
0 commit comments