@@ -19,6 +19,12 @@ const DATA_TYPE = {
19
19
const isIOS = / i P ( h o n e | ( o | a ) d ) ; / . test ( window . navigator . userAgent ) ;
20
20
21
21
export default class IDBCache {
22
+ public static ERROR = {
23
+ INVALID_ARGUMENT : 1 ,
24
+ CANNOT_OPEN : 2 ,
25
+ REQUEST_FAILED : 3 ,
26
+ GET_EMPTY : 4 ,
27
+ }
22
28
private _indexedDB : IDBFactory ;
23
29
private _dbName : string ;
24
30
private _maxSize : number = 52428800 ; // 50MB
@@ -57,7 +63,7 @@ export default class IDBCache {
57
63
return new Promise ( ( resolve :Function , reject :Function ) => {
58
64
this . _serializeData ( value , ( data , meta ) => {
59
65
if ( meta . size === 0 ) {
60
- reject ( ) ;
66
+ reject ( IDBCache . ERROR . INVALID_ARGUMENT ) ;
61
67
return ;
62
68
}
63
69
this . _open ( ( db ) => {
@@ -89,14 +95,14 @@ export default class IDBCache {
89
95
transaction . oncomplete = null ;
90
96
transaction . onerror = null ;
91
97
transaction . onabort = null ;
92
- reject ( ) ;
98
+ reject ( IDBCache . ERROR . REQUEST_FAILED ) ;
93
99
} ;
94
100
95
101
transaction . onabort = ( ) => {
96
102
transaction . oncomplete = null ;
97
103
transaction . onerror = null ;
98
104
transaction . onabort = null ;
99
- reject ( ) ;
105
+ reject ( IDBCache . ERROR . REQUEST_FAILED ) ;
100
106
}
101
107
102
108
try {
@@ -108,7 +114,7 @@ export default class IDBCache {
108
114
}
109
115
} , ( ) => {
110
116
// Open error
111
- reject ( ) ;
117
+ reject ( IDBCache . ERROR . CANNOT_OPEN ) ;
112
118
} ) ;
113
119
} )
114
120
} ) ;
@@ -134,19 +140,20 @@ export default class IDBCache {
134
140
resolve ( data ) ;
135
141
} ) ;
136
142
} else {
137
- reject ( ) ;
143
+ // Can not find or expired
144
+ reject ( IDBCache . ERROR . GET_EMPTY ) ;
138
145
}
139
146
} ;
140
147
141
148
request . onerror = ( ) => {
142
149
request . onsuccess = null ;
143
150
request . onerror = null ;
144
- reject ( ) ;
151
+ reject ( IDBCache . ERROR . REQUEST_FAILED ) ;
145
152
} ;
146
153
} ,
147
154
( ) => {
148
155
// Open error
149
- reject ( ) ;
156
+ reject ( IDBCache . ERROR . CANNOT_OPEN ) ;
150
157
} ) ;
151
158
} ) ;
152
159
}
@@ -178,14 +185,14 @@ export default class IDBCache {
178
185
transaction . oncomplete = null ;
179
186
transaction . onerror = null ;
180
187
transaction . onabort = null ;
181
- reject ( ) ;
188
+ reject ( IDBCache . ERROR . REQUEST_FAILED ) ;
182
189
} ;
183
190
184
191
transaction . onabort = ( ) => {
185
192
transaction . oncomplete = null ;
186
193
transaction . onerror = null ;
187
194
transaction . onabort = null ;
188
- reject ( ) ;
195
+ reject ( IDBCache . ERROR . REQUEST_FAILED ) ;
189
196
}
190
197
191
198
try {
@@ -198,7 +205,7 @@ export default class IDBCache {
198
205
} ,
199
206
( ) => {
200
207
// Open error
201
- reject ( ) ;
208
+ reject ( IDBCache . ERROR . CANNOT_OPEN ) ;
202
209
} ) ;
203
210
} ) ;
204
211
}
0 commit comments