@@ -40,13 +40,13 @@ export function createStore(name: string): IndexedDBStore {
4040 } ;
4141 upgradeRequest . onsuccess = ( ) =>
4242 resolve ( upgradeRequest . result ) ;
43- upgradeRequest . onerror = ( ) =>
44- reject ( upgradeRequest . error ) ;
43+ upgradeRequest . onerror = ( ) =>
44+ reject ( upgradeRequest . error ?? new Error ( "IndexedDB upgrade failed" ) ) ;
4545 return ;
4646 }
4747 resolve ( db ) ;
4848 } ;
49- request . onerror = ( ) => reject ( request . error ) ;
49+ request . onerror = ( ) => reject ( request . error ?? new Error ( "IndexedDB open failed" ) ) ;
5050 } ) ;
5151 return dbPromise ;
5252 }
@@ -61,14 +61,14 @@ export function createStore(name: string): IndexedDBStore {
6161 function wrap < T > ( request : IDBRequest < T > ) : Promise < T > {
6262 return new Promise ( ( resolve , reject ) => {
6363 request . onsuccess = ( ) => resolve ( request . result ) ;
64- request . onerror = ( ) => reject ( request . error ) ;
64+ request . onerror = ( ) => reject ( request . error ?? new Error ( "IndexedDB request failed" ) ) ;
6565 } ) ;
6666 }
6767
6868 return {
6969 async getItem < T > ( key : string ) : Promise < T | null > {
7070 const store = await tx ( "readonly" ) ;
71- const result = await wrap ( store . get ( key ) ) ;
71+ const result : unknown = await wrap ( store . get ( key ) ) ;
7272 return ( result as T ) ?? null ;
7373 } ,
7474 async setItem < T > ( key : string , value : T ) : Promise < void > {
@@ -93,13 +93,14 @@ export function createStore(name: string): IndexedDBStore {
9393 request . onsuccess = ( ) => {
9494 const cursor = request . result ;
9595 if ( cursor ) {
96- callback ( cursor . value as T , String ( cursor . key ) ) ;
96+ const key = typeof cursor . key === "string" ? cursor . key : JSON . stringify ( cursor . key ) ;
97+ callback ( cursor . value as T , key ) ;
9798 cursor . continue ( ) ;
9899 } else {
99100 resolve ( ) ;
100101 }
101102 } ;
102- request . onerror = ( ) => reject ( request . error ) ;
103+ request . onerror = ( ) => reject ( request . error ?? new Error ( "IndexedDB cursor failed" ) ) ;
103104 } ) ;
104105 } ,
105106 } ;
0 commit comments