File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -400,7 +400,7 @@ class IndexedDB extends CachingLayer {
400400 DEFAULT_DB = db ;
401401 // TODO Use specific type
402402 ( db as any ) . onerror = evt => {
403- remoteStorage . _emit ( 'error' , new Error ( `database error: ${ evt ?. type } ` ) ) ;
403+ remoteStorage . _emit ( 'error' , IndexedDB . eventToError ( evt ) ) ;
404404 } ;
405405 resolve ( ) ;
406406 }
@@ -474,6 +474,20 @@ class IndexedDB extends CachingLayer {
474474 } ) ;
475475 }
476476
477+ static eventToError ( evt : Event ) : Error {
478+ const transaction = ( evt ?. target as IDBTransaction ) ;
479+ let error = transaction ?. error ;
480+ if ( error ) {
481+ return error ;
482+ } else {
483+ if ( transaction ?. db ?. name ) {
484+ return new Error ( `error in store(s) “${ transaction . objectStoreNames } ” in database “${ transaction . db . name } ”` ) ;
485+ } else {
486+ return new Error ( 'unknown IndexedDB error' )
487+ }
488+ }
489+ }
490+
477491 diffHandler ( ) {
478492 // empty
479493 }
You can’t perform that action at this time.
0 commit comments