@whitesev/utils 2.1.1 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.amd.js +53 -13
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +53 -13
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +53 -13
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +53 -13
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +53 -13
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +53 -13
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/indexedDB.d.ts +37 -9
- package/package.json +1 -1
- package/src/indexedDB.ts +95 -26
|
@@ -22,11 +22,27 @@ declare class indexedDB {
|
|
|
22
22
|
* @param key 数据key
|
|
23
23
|
* @param value 数据值
|
|
24
24
|
*/
|
|
25
|
-
save(key: string, value:
|
|
25
|
+
save<T extends any>(key: string, value: T): Promise<{
|
|
26
26
|
success: boolean;
|
|
27
27
|
code: number;
|
|
28
28
|
msg: string;
|
|
29
|
-
event?:
|
|
29
|
+
event?: {
|
|
30
|
+
srcElement: IDBRequest<T>;
|
|
31
|
+
target: IDBRequest<T>;
|
|
32
|
+
} & Event;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* 判断是否存在该数据
|
|
36
|
+
* @param key 数据key
|
|
37
|
+
*/
|
|
38
|
+
has(key: string): Promise<{
|
|
39
|
+
success: boolean;
|
|
40
|
+
code: number;
|
|
41
|
+
msg: string;
|
|
42
|
+
event?: {
|
|
43
|
+
srcElement: IDBRequest;
|
|
44
|
+
target: IDBRequest;
|
|
45
|
+
} & Event;
|
|
30
46
|
}>;
|
|
31
47
|
/**
|
|
32
48
|
* 根据key获取值
|
|
@@ -37,29 +53,41 @@ declare class indexedDB {
|
|
|
37
53
|
code: number;
|
|
38
54
|
msg: string;
|
|
39
55
|
data: T;
|
|
40
|
-
event?:
|
|
41
|
-
|
|
56
|
+
event?: {
|
|
57
|
+
srcElement: IDBRequest<T>;
|
|
58
|
+
target: IDBRequest<T>;
|
|
59
|
+
} & Event;
|
|
60
|
+
result?: {
|
|
61
|
+
key: string;
|
|
62
|
+
value: T;
|
|
63
|
+
};
|
|
42
64
|
}>;
|
|
43
65
|
/**
|
|
44
66
|
* 正则获取数据
|
|
45
|
-
* @param key
|
|
67
|
+
* @param key 数据key,可以是正则
|
|
46
68
|
*/
|
|
47
|
-
regexpGet<T extends any>(key: string): Promise<{
|
|
69
|
+
regexpGet<T extends any>(key: string | RegExp): Promise<{
|
|
48
70
|
success: boolean;
|
|
49
71
|
code: number;
|
|
50
72
|
msg: string;
|
|
51
73
|
data: T[];
|
|
52
|
-
event?:
|
|
74
|
+
event?: {
|
|
75
|
+
srcElement: IDBRequest<T>;
|
|
76
|
+
target: IDBRequest<T>;
|
|
77
|
+
} & Event;
|
|
53
78
|
}>;
|
|
54
79
|
/**
|
|
55
80
|
* 删除数据
|
|
56
|
-
* @param
|
|
81
|
+
* @param key 数据key
|
|
57
82
|
*/
|
|
58
83
|
delete(key: string): Promise<{
|
|
59
84
|
success: boolean;
|
|
60
85
|
code: number;
|
|
61
86
|
msg: string;
|
|
62
|
-
event?:
|
|
87
|
+
event?: {
|
|
88
|
+
srcElement: IDBRequest;
|
|
89
|
+
target: IDBRequest;
|
|
90
|
+
} & Event;
|
|
63
91
|
}>;
|
|
64
92
|
/**
|
|
65
93
|
* 删除所有数据
|
package/package.json
CHANGED
package/src/indexedDB.ts
CHANGED
|
@@ -130,15 +130,18 @@ class indexedDB {
|
|
|
130
130
|
* @param key 数据key
|
|
131
131
|
* @param value 数据值
|
|
132
132
|
*/
|
|
133
|
-
async save(
|
|
133
|
+
async save<T extends any>(
|
|
134
134
|
key: string,
|
|
135
|
-
value:
|
|
135
|
+
value: T
|
|
136
136
|
): Promise<{
|
|
137
137
|
success: boolean;
|
|
138
138
|
code: number;
|
|
139
139
|
msg: string;
|
|
140
140
|
|
|
141
|
-
event?:
|
|
141
|
+
event?: {
|
|
142
|
+
srcElement: IDBRequest<T>;
|
|
143
|
+
target: IDBRequest<T>;
|
|
144
|
+
} & Event;
|
|
142
145
|
}> {
|
|
143
146
|
let that = this;
|
|
144
147
|
return new Promise((resolve) => {
|
|
@@ -157,10 +160,8 @@ class indexedDB {
|
|
|
157
160
|
} else {
|
|
158
161
|
idbStore = idbStore as IDBObjectStore;
|
|
159
162
|
let request = idbStore.put(inData);
|
|
160
|
-
request.onsuccess = function (event:
|
|
163
|
+
request.onsuccess = function (event: any) {
|
|
161
164
|
/* 保存成功有success 字段 */
|
|
162
|
-
// @ts-ignore
|
|
163
|
-
let target = event.target as IDBRequest;
|
|
164
165
|
resolve({
|
|
165
166
|
success: true,
|
|
166
167
|
code: that.#errorCode.success.code,
|
|
@@ -169,9 +170,7 @@ class indexedDB {
|
|
|
169
170
|
event: event,
|
|
170
171
|
});
|
|
171
172
|
};
|
|
172
|
-
request.onerror = function (event:
|
|
173
|
-
// @ts-ignore
|
|
174
|
-
let target = event.target as IDBRequest;
|
|
173
|
+
request.onerror = function (event: any) {
|
|
175
174
|
resolve({
|
|
176
175
|
success: false,
|
|
177
176
|
|
|
@@ -185,6 +184,55 @@ class indexedDB {
|
|
|
185
184
|
});
|
|
186
185
|
}
|
|
187
186
|
|
|
187
|
+
/**
|
|
188
|
+
* 判断是否存在该数据
|
|
189
|
+
* @param key 数据key
|
|
190
|
+
*/
|
|
191
|
+
async has(key: string): Promise<{
|
|
192
|
+
success: boolean;
|
|
193
|
+
code: number;
|
|
194
|
+
msg: string;
|
|
195
|
+
event?: {
|
|
196
|
+
srcElement: IDBRequest;
|
|
197
|
+
target: IDBRequest;
|
|
198
|
+
} & Event;
|
|
199
|
+
}> {
|
|
200
|
+
let that = this;
|
|
201
|
+
return new Promise((resolve) => {
|
|
202
|
+
let dbName = this.#dbName;
|
|
203
|
+
this.open(function (idbStore, success) {
|
|
204
|
+
/* 判断返回的数据中是否有error字段 */
|
|
205
|
+
if (!success) {
|
|
206
|
+
resolve({
|
|
207
|
+
success: false,
|
|
208
|
+
code: that.#errorCode.get.code,
|
|
209
|
+
msg: that.#errorCode.get.msg,
|
|
210
|
+
});
|
|
211
|
+
} else {
|
|
212
|
+
idbStore = idbStore as IDBObjectStore;
|
|
213
|
+
let request = idbStore.get(key);
|
|
214
|
+
request.onsuccess = function (event: any) {
|
|
215
|
+
/* result 返回的是 {key: string, value: any} */
|
|
216
|
+
/* 键值对存储 */
|
|
217
|
+
resolve({
|
|
218
|
+
success: true,
|
|
219
|
+
code: that.#errorCode.success.code,
|
|
220
|
+
msg: that.#errorCode.success.msg,
|
|
221
|
+
event: event,
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
request.onerror = function (event: any) {
|
|
225
|
+
resolve({
|
|
226
|
+
success: false,
|
|
227
|
+
code: that.#errorCode.get.code,
|
|
228
|
+
msg: that.#errorCode.get.msg,
|
|
229
|
+
event: event,
|
|
230
|
+
});
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
}, dbName);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
188
236
|
/**
|
|
189
237
|
* 根据key获取值
|
|
190
238
|
* @param key 数据key
|
|
@@ -197,13 +245,19 @@ class indexedDB {
|
|
|
197
245
|
msg: string;
|
|
198
246
|
data: T;
|
|
199
247
|
|
|
200
|
-
event?:
|
|
201
|
-
|
|
248
|
+
event?: {
|
|
249
|
+
srcElement: IDBRequest<T>;
|
|
250
|
+
target: IDBRequest<T>;
|
|
251
|
+
} & Event;
|
|
252
|
+
result?: {
|
|
253
|
+
key: string;
|
|
254
|
+
value: T;
|
|
255
|
+
};
|
|
202
256
|
}> {
|
|
203
257
|
let that = this;
|
|
204
258
|
return new Promise((resolve) => {
|
|
205
|
-
let dbName =
|
|
206
|
-
|
|
259
|
+
let dbName = this.#dbName;
|
|
260
|
+
this.open(function (idbStore, success) {
|
|
207
261
|
/* 判断返回的数据中是否有error字段 */
|
|
208
262
|
if (!success) {
|
|
209
263
|
resolve({
|
|
@@ -217,10 +271,15 @@ class indexedDB {
|
|
|
217
271
|
let request = idbStore.get(key);
|
|
218
272
|
request.onsuccess = function (event: any) {
|
|
219
273
|
let target = event.target as IDBRequest;
|
|
220
|
-
let result = target.result
|
|
274
|
+
let result = target.result as
|
|
275
|
+
| {
|
|
276
|
+
key: string;
|
|
277
|
+
value: T;
|
|
278
|
+
}
|
|
279
|
+
| undefined;
|
|
221
280
|
/* result 返回的是 {key: string, value: any} */
|
|
222
281
|
/* 键值对存储 */
|
|
223
|
-
let data
|
|
282
|
+
let data = result ? result.value : void 0;
|
|
224
283
|
if (data) {
|
|
225
284
|
resolve({
|
|
226
285
|
success: true,
|
|
@@ -262,17 +321,20 @@ class indexedDB {
|
|
|
262
321
|
|
|
263
322
|
/**
|
|
264
323
|
* 正则获取数据
|
|
265
|
-
* @param key
|
|
324
|
+
* @param key 数据key,可以是正则
|
|
266
325
|
*/
|
|
267
326
|
async regexpGet<T extends any>(
|
|
268
|
-
key: string
|
|
327
|
+
key: string | RegExp
|
|
269
328
|
): Promise<{
|
|
270
329
|
success: boolean;
|
|
271
330
|
code: number;
|
|
272
331
|
msg: string;
|
|
273
332
|
data: T[];
|
|
274
333
|
|
|
275
|
-
event?:
|
|
334
|
+
event?: {
|
|
335
|
+
srcElement: IDBRequest<T>;
|
|
336
|
+
target: IDBRequest<T>;
|
|
337
|
+
} & Event;
|
|
276
338
|
}> {
|
|
277
339
|
let list: T[] = [];
|
|
278
340
|
let that = this;
|
|
@@ -292,14 +354,18 @@ class indexedDB {
|
|
|
292
354
|
idbStore = idbStore as IDBObjectStore;
|
|
293
355
|
let request = idbStore.getAll();
|
|
294
356
|
request.onsuccess = function (event: any) {
|
|
295
|
-
let target = event.target as IDBRequest
|
|
357
|
+
let target = event.target as IDBRequest<
|
|
358
|
+
{ key: string; value: T }[]
|
|
359
|
+
>;
|
|
296
360
|
let result = target.result;
|
|
297
361
|
if (result.length !== 0) {
|
|
298
|
-
result.forEach((
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
362
|
+
result.forEach((dataItem, index) => {
|
|
363
|
+
// 当前项的key
|
|
364
|
+
let __key = dataItem["key"];
|
|
365
|
+
// 当前项的value
|
|
366
|
+
let __value = dataItem["value"];
|
|
367
|
+
if (__key.match(key)) {
|
|
368
|
+
list = list.concat(__value);
|
|
303
369
|
}
|
|
304
370
|
});
|
|
305
371
|
}
|
|
@@ -331,14 +397,17 @@ class indexedDB {
|
|
|
331
397
|
|
|
332
398
|
/**
|
|
333
399
|
* 删除数据
|
|
334
|
-
* @param
|
|
400
|
+
* @param key 数据key
|
|
335
401
|
*/
|
|
336
402
|
async delete(key: string): Promise<{
|
|
337
403
|
success: boolean;
|
|
338
404
|
code: number;
|
|
339
405
|
msg: string;
|
|
340
406
|
|
|
341
|
-
event?:
|
|
407
|
+
event?: {
|
|
408
|
+
srcElement: IDBRequest;
|
|
409
|
+
target: IDBRequest;
|
|
410
|
+
} & Event;
|
|
342
411
|
}> {
|
|
343
412
|
let that = this;
|
|
344
413
|
return new Promise((resolve) => {
|