55function openDB ( config ) {
66 if ( config . cache && typeof window !== 'undefined' ) {
77 const request = window . indexedDB . open ( "pokeapi-js-wrapper" , 1 ) ;
8-
9- request . onerror = ( event ) => {
10- log ( 'IndexedDB not available' )
11- }
12- request . onupgradeneeded = ( event ) => {
13- db = event . target . result ;
14- log ( 'db opened and cache created' )
15- db . createObjectStore ( "cache" , { autoIncrement : false } ) ;
16- }
17- request . onsuccess = ( event ) => {
18- log ( 'db opened' )
19- db = event . target . result ;
20- }
21- request . onversionchange = ( event ) => {
22- db . close ( )
23- }
8+ return new Promise ( ( resolve , reject ) => {
9+ request . onerror = ( event ) => {
10+ log ( 'IndexedDB not available' )
11+ reject ( )
12+ }
13+ request . onupgradeneeded = ( event ) => {
14+ db = event . target . result ;
15+ log ( 'db opened and cache created' )
16+ db . createObjectStore ( "cache" , { autoIncrement : false } ) ;
17+ resolve ( db )
18+ }
19+ request . onsuccess = ( event ) => {
20+ log ( 'db opened' )
21+ db = event . target . result ;
22+ resolve ( db )
23+ }
24+ request . onversionchange = ( event ) => {
25+ db . close ( )
26+ reject ( )
27+ }
28+ request . onblocked = ( event ) => {
29+ db . close ( )
30+ reject ( )
31+ }
32+ } ) ;
2433 }
2534}
2635
@@ -37,7 +46,6 @@ async function loadResource(config, url) {
3746 url = url . replace ( / ^ \/ / , '' ) ;
3847 url = `${ config . protocol } ://${ config . hostName } /${ url } `
3948 }
40-
4149 if ( canUseCache ( config , db ) ) {
4250 const transaction = db . transaction ( "cache" , "readonly" ) ;
4351 const objectStore = transaction . objectStore ( "cache" ) ;
0 commit comments