@whitesev/utils 2.1.2 → 2.1.4
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 +131 -98
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +131 -98
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +131 -98
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +131 -98
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +131 -98
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +131 -98
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/indexedDB.d.ts +47 -3
- package/package.json +1 -1
- package/src/indexedDB.ts +189 -116
|
@@ -23,27 +23,54 @@ declare class indexedDB {
|
|
|
23
23
|
* @param value 数据值
|
|
24
24
|
*/
|
|
25
25
|
save<T extends any>(key: string, value: T): Promise<{
|
|
26
|
+
/** 本操作是否成功 */
|
|
26
27
|
success: boolean;
|
|
28
|
+
/** 状态码 */
|
|
27
29
|
code: number;
|
|
30
|
+
/** 状态码对应的消息 */
|
|
28
31
|
msg: string;
|
|
32
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
29
33
|
event?: {
|
|
30
34
|
srcElement: IDBRequest<T>;
|
|
31
35
|
target: IDBRequest<T>;
|
|
32
36
|
} & Event;
|
|
33
37
|
}>;
|
|
38
|
+
/**
|
|
39
|
+
* 判断是否存在该数据
|
|
40
|
+
* @param key 数据key
|
|
41
|
+
*/
|
|
42
|
+
has(key: string): Promise<{
|
|
43
|
+
/** 本操作是否成功 */
|
|
44
|
+
success: boolean;
|
|
45
|
+
/** 状态码 */
|
|
46
|
+
code: number;
|
|
47
|
+
/** 状态码对应的消息 */
|
|
48
|
+
msg: string;
|
|
49
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
50
|
+
event?: {
|
|
51
|
+
srcElement: IDBRequest;
|
|
52
|
+
target: IDBRequest;
|
|
53
|
+
} & Event;
|
|
54
|
+
}>;
|
|
34
55
|
/**
|
|
35
56
|
* 根据key获取值
|
|
36
57
|
* @param key 数据key
|
|
37
58
|
*/
|
|
38
59
|
get<T extends any>(key: string): Promise<{
|
|
60
|
+
/** 本操作是否成功 */
|
|
39
61
|
success: boolean;
|
|
62
|
+
/** 状态码 */
|
|
40
63
|
code: number;
|
|
64
|
+
/** 状态码对应的消息 */
|
|
41
65
|
msg: string;
|
|
66
|
+
/** 获取的数据 */
|
|
42
67
|
data: T;
|
|
68
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
43
69
|
event?: {
|
|
44
70
|
srcElement: IDBRequest<T>;
|
|
45
71
|
target: IDBRequest<T>;
|
|
46
72
|
} & Event;
|
|
73
|
+
/** 获取的结果,里面的数据提取为data */
|
|
47
74
|
result?: {
|
|
48
75
|
key: string;
|
|
49
76
|
value: T;
|
|
@@ -51,13 +78,18 @@ declare class indexedDB {
|
|
|
51
78
|
}>;
|
|
52
79
|
/**
|
|
53
80
|
* 正则获取数据
|
|
54
|
-
* @param key
|
|
81
|
+
* @param key 数据key,可以是正则
|
|
55
82
|
*/
|
|
56
|
-
regexpGet<T extends any>(key: string): Promise<{
|
|
83
|
+
regexpGet<T extends any>(key: string | RegExp): Promise<{
|
|
84
|
+
/** 本操作是否成功 */
|
|
57
85
|
success: boolean;
|
|
86
|
+
/** 状态码 */
|
|
58
87
|
code: number;
|
|
88
|
+
/** 状态码对应的消息 */
|
|
59
89
|
msg: string;
|
|
90
|
+
/** 获取到的数据列表 */
|
|
60
91
|
data: T[];
|
|
92
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
61
93
|
event?: {
|
|
62
94
|
srcElement: IDBRequest<T>;
|
|
63
95
|
target: IDBRequest<T>;
|
|
@@ -65,12 +97,16 @@ declare class indexedDB {
|
|
|
65
97
|
}>;
|
|
66
98
|
/**
|
|
67
99
|
* 删除数据
|
|
68
|
-
* @param
|
|
100
|
+
* @param key 数据key
|
|
69
101
|
*/
|
|
70
102
|
delete(key: string): Promise<{
|
|
103
|
+
/** 本操作是否成功 */
|
|
71
104
|
success: boolean;
|
|
105
|
+
/** 状态码 */
|
|
72
106
|
code: number;
|
|
107
|
+
/** 状态码对应的消息 */
|
|
73
108
|
msg: string;
|
|
109
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
74
110
|
event?: {
|
|
75
111
|
srcElement: IDBRequest;
|
|
76
112
|
target: IDBRequest;
|
|
@@ -80,9 +116,17 @@ declare class indexedDB {
|
|
|
80
116
|
* 删除所有数据
|
|
81
117
|
*/
|
|
82
118
|
deleteAll(): Promise<{
|
|
119
|
+
/** 本操作是否成功 */
|
|
83
120
|
success: boolean;
|
|
121
|
+
/** 状态码 */
|
|
84
122
|
code: number;
|
|
123
|
+
/** 状态码对应的消息 */
|
|
85
124
|
msg: string;
|
|
125
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
126
|
+
event?: {
|
|
127
|
+
srcElement: IDBRequest;
|
|
128
|
+
target: IDBRequest;
|
|
129
|
+
} & Event;
|
|
86
130
|
}>;
|
|
87
131
|
}
|
|
88
132
|
export { indexedDB };
|
package/package.json
CHANGED
package/src/indexedDB.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
declare interface UtilsIDBOpenErrorResult {
|
|
2
2
|
code: number;
|
|
3
3
|
msg: string;
|
|
4
|
-
event:
|
|
4
|
+
event: {
|
|
5
|
+
srcElement: IDBRequest;
|
|
6
|
+
target: IDBRequest;
|
|
7
|
+
} & Event;
|
|
5
8
|
}
|
|
6
9
|
class indexedDB {
|
|
7
10
|
#dbName: string;
|
|
@@ -22,22 +25,22 @@ class indexedDB {
|
|
|
22
25
|
} = {};
|
|
23
26
|
// @ts-ignore
|
|
24
27
|
#store: IDBObjectStore = null as any;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
/** 状态码 */
|
|
29
|
+
#statusCode = {
|
|
30
|
+
operationSuccess: {
|
|
28
31
|
code: 200,
|
|
29
32
|
msg: "操作成功",
|
|
30
33
|
},
|
|
31
|
-
|
|
34
|
+
operationFailed: {
|
|
32
35
|
code: 401,
|
|
33
36
|
msg: "操作失败",
|
|
34
37
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
openFailed: { code: 91001, msg: "打开数据库失败" },
|
|
39
|
+
saveFailed: { code: 91002, msg: "保存数据失败" },
|
|
40
|
+
getFailed: { code: 91003, msg: "获取数据失败" },
|
|
41
|
+
deleteFailed: { code: 91004, msg: "删除数据失败" },
|
|
42
|
+
deleteAllFailed: { code: 91005, msg: "清空数据库失败" },
|
|
43
|
+
regexpGetFailed: { code: 91006, msg: "正则获取数据失败" },
|
|
41
44
|
};
|
|
42
45
|
/**
|
|
43
46
|
* @param dbName 数据存储名,默认为:default_db
|
|
@@ -55,7 +58,6 @@ class indexedDB {
|
|
|
55
58
|
if (!this.#indexedDB) {
|
|
56
59
|
alert("很抱歉,您的浏览器不支持indexedDB");
|
|
57
60
|
throw new TypeError("很抱歉,您的浏览器不支持indexedDB");
|
|
58
|
-
return;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
@@ -80,8 +82,9 @@ class indexedDB {
|
|
|
80
82
|
*/
|
|
81
83
|
private open(
|
|
82
84
|
callback: (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
/** 数据库实例 */
|
|
86
|
+
idbStore: IDBObjectStore | null,
|
|
87
|
+
error?: UtilsIDBOpenErrorResult
|
|
85
88
|
) => void,
|
|
86
89
|
dbName: string
|
|
87
90
|
) {
|
|
@@ -91,15 +94,12 @@ class indexedDB {
|
|
|
91
94
|
if (!that.#db[dbName]) {
|
|
92
95
|
/* 如果缓存中没有,则进行数据库的创建或打开,提高效率 */
|
|
93
96
|
let request = that.#indexedDB.open(dbName, that.#dbVersion);
|
|
94
|
-
request.onerror = function (event:
|
|
95
|
-
callback(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
false
|
|
102
|
-
);
|
|
97
|
+
request.onerror = function (event: any) {
|
|
98
|
+
callback(null, {
|
|
99
|
+
code: that.#statusCode.openFailed.code,
|
|
100
|
+
msg: that.#statusCode.openFailed.msg,
|
|
101
|
+
event: event,
|
|
102
|
+
});
|
|
103
103
|
};
|
|
104
104
|
request.onsuccess = function (event: Event) {
|
|
105
105
|
if (!that.#db[dbName]) {
|
|
@@ -107,7 +107,7 @@ class indexedDB {
|
|
|
107
107
|
that.#db[dbName] = target.result;
|
|
108
108
|
}
|
|
109
109
|
let store = that.createStore(dbName);
|
|
110
|
-
callback(store
|
|
110
|
+
callback(store);
|
|
111
111
|
};
|
|
112
112
|
request.onupgradeneeded = function (event: Event) {
|
|
113
113
|
let target = event.target as IDBRequest;
|
|
@@ -116,13 +116,13 @@ class indexedDB {
|
|
|
116
116
|
keyPath: "key",
|
|
117
117
|
});
|
|
118
118
|
store.transaction.oncomplete = function (event: Event) {
|
|
119
|
-
callback(store
|
|
119
|
+
callback(store);
|
|
120
120
|
};
|
|
121
121
|
};
|
|
122
122
|
} else {
|
|
123
123
|
/* 如果缓存中已经打开了数据库,就直接使用 */
|
|
124
|
-
let store =
|
|
125
|
-
callback(store
|
|
124
|
+
let store = this.createStore(dbName);
|
|
125
|
+
callback(store);
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
@@ -134,10 +134,13 @@ class indexedDB {
|
|
|
134
134
|
key: string,
|
|
135
135
|
value: T
|
|
136
136
|
): Promise<{
|
|
137
|
+
/** 本操作是否成功 */
|
|
137
138
|
success: boolean;
|
|
139
|
+
/** 状态码 */
|
|
138
140
|
code: number;
|
|
141
|
+
/** 状态码对应的消息 */
|
|
139
142
|
msg: string;
|
|
140
|
-
|
|
143
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
141
144
|
event?: {
|
|
142
145
|
srcElement: IDBRequest<T>;
|
|
143
146
|
target: IDBRequest<T>;
|
|
@@ -145,37 +148,34 @@ class indexedDB {
|
|
|
145
148
|
}> {
|
|
146
149
|
let that = this;
|
|
147
150
|
return new Promise((resolve) => {
|
|
148
|
-
let dbName =
|
|
151
|
+
let dbName = this.#dbName;
|
|
149
152
|
let inData = {
|
|
150
153
|
key: key,
|
|
151
154
|
value: value,
|
|
152
155
|
};
|
|
153
|
-
|
|
154
|
-
if (
|
|
156
|
+
this.open(function (idbStore) {
|
|
157
|
+
if (idbStore == null) {
|
|
155
158
|
resolve({
|
|
156
159
|
success: false,
|
|
157
|
-
code: that.#
|
|
158
|
-
msg: that.#
|
|
160
|
+
code: that.#statusCode.saveFailed.code,
|
|
161
|
+
msg: that.#statusCode.saveFailed.msg,
|
|
159
162
|
});
|
|
160
163
|
} else {
|
|
161
|
-
idbStore = idbStore as IDBObjectStore;
|
|
162
164
|
let request = idbStore.put(inData);
|
|
163
165
|
request.onsuccess = function (event: any) {
|
|
164
166
|
/* 保存成功有success 字段 */
|
|
165
167
|
resolve({
|
|
166
168
|
success: true,
|
|
167
|
-
code: that.#
|
|
168
|
-
msg: that.#
|
|
169
|
-
|
|
169
|
+
code: that.#statusCode.operationSuccess.code,
|
|
170
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
170
171
|
event: event,
|
|
171
172
|
});
|
|
172
173
|
};
|
|
173
174
|
request.onerror = function (event: any) {
|
|
174
175
|
resolve({
|
|
175
176
|
success: false,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
msg: that.#errorCode.save.msg,
|
|
177
|
+
code: that.#statusCode.saveFailed.code,
|
|
178
|
+
msg: that.#statusCode.saveFailed.msg,
|
|
179
179
|
event: event,
|
|
180
180
|
});
|
|
181
181
|
};
|
|
@@ -184,6 +184,58 @@ class indexedDB {
|
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
+
/**
|
|
188
|
+
* 判断是否存在该数据
|
|
189
|
+
* @param key 数据key
|
|
190
|
+
*/
|
|
191
|
+
async has(key: string): Promise<{
|
|
192
|
+
/** 本操作是否成功 */
|
|
193
|
+
success: boolean;
|
|
194
|
+
/** 状态码 */
|
|
195
|
+
code: number;
|
|
196
|
+
/** 状态码对应的消息 */
|
|
197
|
+
msg: string;
|
|
198
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
199
|
+
event?: {
|
|
200
|
+
srcElement: IDBRequest;
|
|
201
|
+
target: IDBRequest;
|
|
202
|
+
} & Event;
|
|
203
|
+
}> {
|
|
204
|
+
let that = this;
|
|
205
|
+
return new Promise((resolve) => {
|
|
206
|
+
let dbName = this.#dbName;
|
|
207
|
+
this.open(function (idbStore) {
|
|
208
|
+
/* 判断返回的数据中是否有error字段 */
|
|
209
|
+
if (idbStore == null) {
|
|
210
|
+
resolve({
|
|
211
|
+
success: false,
|
|
212
|
+
code: that.#statusCode.getFailed.code,
|
|
213
|
+
msg: that.#statusCode.getFailed.msg,
|
|
214
|
+
});
|
|
215
|
+
} else {
|
|
216
|
+
let request = idbStore.get(key);
|
|
217
|
+
request.onsuccess = function (event: any) {
|
|
218
|
+
/* result 返回的是 {key: string, value: any} */
|
|
219
|
+
/* 键值对存储 */
|
|
220
|
+
resolve({
|
|
221
|
+
success: true,
|
|
222
|
+
code: that.#statusCode.operationSuccess.code,
|
|
223
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
224
|
+
event: event,
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
request.onerror = function (event: any) {
|
|
228
|
+
resolve({
|
|
229
|
+
success: false,
|
|
230
|
+
code: that.#statusCode.getFailed.code,
|
|
231
|
+
msg: that.#statusCode.getFailed.msg,
|
|
232
|
+
event: event,
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}, dbName);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
187
239
|
/**
|
|
188
240
|
* 根据key获取值
|
|
189
241
|
* @param key 数据key
|
|
@@ -191,15 +243,20 @@ class indexedDB {
|
|
|
191
243
|
async get<T extends any>(
|
|
192
244
|
key: string
|
|
193
245
|
): Promise<{
|
|
246
|
+
/** 本操作是否成功 */
|
|
194
247
|
success: boolean;
|
|
248
|
+
/** 状态码 */
|
|
195
249
|
code: number;
|
|
250
|
+
/** 状态码对应的消息 */
|
|
196
251
|
msg: string;
|
|
252
|
+
/** 获取的数据 */
|
|
197
253
|
data: T;
|
|
198
|
-
|
|
254
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
199
255
|
event?: {
|
|
200
256
|
srcElement: IDBRequest<T>;
|
|
201
257
|
target: IDBRequest<T>;
|
|
202
258
|
} & Event;
|
|
259
|
+
/** 获取的结果,里面的数据提取为data */
|
|
203
260
|
result?: {
|
|
204
261
|
key: string;
|
|
205
262
|
value: T;
|
|
@@ -208,29 +265,33 @@ class indexedDB {
|
|
|
208
265
|
let that = this;
|
|
209
266
|
return new Promise((resolve) => {
|
|
210
267
|
let dbName = this.#dbName;
|
|
211
|
-
this.open(function (idbStore
|
|
268
|
+
this.open(function (idbStore) {
|
|
212
269
|
/* 判断返回的数据中是否有error字段 */
|
|
213
|
-
if (
|
|
270
|
+
if (idbStore == null) {
|
|
214
271
|
resolve({
|
|
215
272
|
success: false,
|
|
216
|
-
code: that.#
|
|
217
|
-
msg: that.#
|
|
273
|
+
code: that.#statusCode.getFailed.code,
|
|
274
|
+
msg: that.#statusCode.getFailed.msg,
|
|
218
275
|
data: void 0 as any,
|
|
219
276
|
});
|
|
220
277
|
} else {
|
|
221
|
-
idbStore = idbStore as IDBObjectStore;
|
|
222
278
|
let request = idbStore.get(key);
|
|
223
279
|
request.onsuccess = function (event: any) {
|
|
224
280
|
let target = event.target as IDBRequest;
|
|
225
|
-
let result = target.result
|
|
281
|
+
let result = target.result as
|
|
282
|
+
| {
|
|
283
|
+
key: string;
|
|
284
|
+
value: T;
|
|
285
|
+
}
|
|
286
|
+
| undefined;
|
|
226
287
|
/* result 返回的是 {key: string, value: any} */
|
|
227
288
|
/* 键值对存储 */
|
|
228
|
-
let data
|
|
289
|
+
let data = result ? result.value : void 0;
|
|
229
290
|
if (data) {
|
|
230
291
|
resolve({
|
|
231
292
|
success: true,
|
|
232
|
-
code: that.#
|
|
233
|
-
msg: that.#
|
|
293
|
+
code: that.#statusCode.operationSuccess.code,
|
|
294
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
234
295
|
data: data,
|
|
235
296
|
|
|
236
297
|
event: event,
|
|
@@ -239,8 +300,8 @@ class indexedDB {
|
|
|
239
300
|
} else {
|
|
240
301
|
resolve({
|
|
241
302
|
success: false,
|
|
242
|
-
code: that.#
|
|
243
|
-
msg: that.#
|
|
303
|
+
code: that.#statusCode.operationFailed.code,
|
|
304
|
+
msg: that.#statusCode.operationFailed.msg,
|
|
244
305
|
data: void 0 as any,
|
|
245
306
|
|
|
246
307
|
event: event,
|
|
@@ -249,12 +310,10 @@ class indexedDB {
|
|
|
249
310
|
}
|
|
250
311
|
};
|
|
251
312
|
request.onerror = function (event: any) {
|
|
252
|
-
// @ts-ignore
|
|
253
|
-
let target = event.target as IDBRequest;
|
|
254
313
|
resolve({
|
|
255
314
|
success: false,
|
|
256
|
-
code: that.#
|
|
257
|
-
msg: that.#
|
|
315
|
+
code: that.#statusCode.getFailed.code,
|
|
316
|
+
msg: that.#statusCode.getFailed.msg,
|
|
258
317
|
data: void 0 as any,
|
|
259
318
|
|
|
260
319
|
event: event,
|
|
@@ -267,16 +326,21 @@ class indexedDB {
|
|
|
267
326
|
|
|
268
327
|
/**
|
|
269
328
|
* 正则获取数据
|
|
270
|
-
* @param key
|
|
329
|
+
* @param key 数据key,可以是正则
|
|
271
330
|
*/
|
|
272
331
|
async regexpGet<T extends any>(
|
|
273
|
-
key: string
|
|
332
|
+
key: string | RegExp
|
|
274
333
|
): Promise<{
|
|
334
|
+
/** 本操作是否成功 */
|
|
275
335
|
success: boolean;
|
|
336
|
+
/** 状态码 */
|
|
276
337
|
code: number;
|
|
338
|
+
/** 状态码对应的消息 */
|
|
277
339
|
msg: string;
|
|
340
|
+
/** 获取到的数据列表 */
|
|
278
341
|
data: T[];
|
|
279
342
|
|
|
343
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
280
344
|
event?: {
|
|
281
345
|
srcElement: IDBRequest<T>;
|
|
282
346
|
target: IDBRequest<T>;
|
|
@@ -287,46 +351,47 @@ class indexedDB {
|
|
|
287
351
|
return new Promise((resolve) => {
|
|
288
352
|
/* 正则查询 */
|
|
289
353
|
let dbName = that.#dbName;
|
|
290
|
-
|
|
354
|
+
this.open(function (idbStore) {
|
|
291
355
|
/* 判断返回的数据中是否有error字段 */
|
|
292
|
-
if (
|
|
356
|
+
if (idbStore == null) {
|
|
293
357
|
resolve({
|
|
294
358
|
success: false,
|
|
295
|
-
code: that.#
|
|
296
|
-
msg: that.#
|
|
359
|
+
code: that.#statusCode.regexpGetFailed.code,
|
|
360
|
+
msg: that.#statusCode.regexpGetFailed.msg,
|
|
297
361
|
data: [],
|
|
298
362
|
});
|
|
299
363
|
} else {
|
|
300
|
-
idbStore = idbStore as IDBObjectStore;
|
|
301
364
|
let request = idbStore.getAll();
|
|
302
365
|
request.onsuccess = function (event: any) {
|
|
303
|
-
let target = event.target as IDBRequest
|
|
366
|
+
let target = event.target as IDBRequest<
|
|
367
|
+
{ key: string; value: T }[]
|
|
368
|
+
>;
|
|
304
369
|
let result = target.result;
|
|
305
370
|
if (result.length !== 0) {
|
|
306
|
-
result.forEach((
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
371
|
+
result.forEach((dataItem, index) => {
|
|
372
|
+
// 当前项的key
|
|
373
|
+
let __key = dataItem["key"];
|
|
374
|
+
// 当前项的value
|
|
375
|
+
let __value = dataItem["value"];
|
|
376
|
+
if (__key.match(key)) {
|
|
377
|
+
list = list.concat(__value);
|
|
311
378
|
}
|
|
312
379
|
});
|
|
313
380
|
}
|
|
314
381
|
resolve({
|
|
315
382
|
success: true,
|
|
316
|
-
code: that.#
|
|
317
|
-
msg: that.#
|
|
383
|
+
code: that.#statusCode.operationSuccess.code,
|
|
384
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
318
385
|
data: list,
|
|
319
386
|
|
|
320
387
|
event: event,
|
|
321
388
|
});
|
|
322
389
|
};
|
|
323
390
|
request.onerror = function (event: any) {
|
|
324
|
-
// @ts-ignore
|
|
325
|
-
let target = event.target as IDBRequest;
|
|
326
391
|
resolve({
|
|
327
392
|
success: false,
|
|
328
|
-
code: that.#
|
|
329
|
-
msg: that.#
|
|
393
|
+
code: that.#statusCode.getFailed.code,
|
|
394
|
+
msg: that.#statusCode.getFailed.msg,
|
|
330
395
|
data: [],
|
|
331
396
|
|
|
332
397
|
event: event,
|
|
@@ -339,13 +404,16 @@ class indexedDB {
|
|
|
339
404
|
|
|
340
405
|
/**
|
|
341
406
|
* 删除数据
|
|
342
|
-
* @param
|
|
407
|
+
* @param key 数据key
|
|
343
408
|
*/
|
|
344
409
|
async delete(key: string): Promise<{
|
|
410
|
+
/** 本操作是否成功 */
|
|
345
411
|
success: boolean;
|
|
412
|
+
/** 状态码 */
|
|
346
413
|
code: number;
|
|
414
|
+
/** 状态码对应的消息 */
|
|
347
415
|
msg: string;
|
|
348
|
-
|
|
416
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
349
417
|
event?: {
|
|
350
418
|
srcElement: IDBRequest;
|
|
351
419
|
target: IDBRequest;
|
|
@@ -355,43 +423,29 @@ class indexedDB {
|
|
|
355
423
|
return new Promise((resolve) => {
|
|
356
424
|
/* 根据key删除某条数据 */
|
|
357
425
|
let dbName = that.#dbName;
|
|
358
|
-
|
|
359
|
-
if (
|
|
426
|
+
this.open(function (idbStore) {
|
|
427
|
+
if (idbStore == null) {
|
|
360
428
|
resolve({
|
|
361
429
|
success: false,
|
|
362
|
-
code: that.#
|
|
363
|
-
msg: that.#
|
|
430
|
+
code: that.#statusCode.deleteFailed.code,
|
|
431
|
+
msg: that.#statusCode.deleteFailed.msg,
|
|
364
432
|
});
|
|
365
433
|
} else {
|
|
366
|
-
|
|
367
|
-
let request = idbStore.
|
|
434
|
+
// 删除键
|
|
435
|
+
let request = idbStore.delete(key);
|
|
368
436
|
request.onsuccess = function (event: any) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
success: true,
|
|
376
|
-
code: that.#errorCode.success.code,
|
|
377
|
-
msg: that.#errorCode.success.msg,
|
|
378
|
-
});
|
|
379
|
-
} else {
|
|
380
|
-
resolve({
|
|
381
|
-
success: false,
|
|
382
|
-
code: that.#errorCode.error.code,
|
|
383
|
-
msg: that.#errorCode.error.msg,
|
|
384
|
-
});
|
|
385
|
-
}
|
|
437
|
+
resolve({
|
|
438
|
+
success: true,
|
|
439
|
+
code: that.#statusCode.operationSuccess.code,
|
|
440
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
441
|
+
event: event,
|
|
442
|
+
});
|
|
386
443
|
};
|
|
387
444
|
request.onerror = function (event: any) {
|
|
388
|
-
// @ts-ignore
|
|
389
|
-
let target = event.target as IDBRequest;
|
|
390
445
|
resolve({
|
|
391
446
|
success: false,
|
|
392
|
-
code: that.#
|
|
393
|
-
msg: that.#
|
|
394
|
-
|
|
447
|
+
code: that.#statusCode.deleteFailed.code,
|
|
448
|
+
msg: that.#statusCode.deleteFailed.msg,
|
|
395
449
|
event: event,
|
|
396
450
|
});
|
|
397
451
|
};
|
|
@@ -404,29 +458,48 @@ class indexedDB {
|
|
|
404
458
|
* 删除所有数据
|
|
405
459
|
*/
|
|
406
460
|
async deleteAll(): Promise<{
|
|
461
|
+
/** 本操作是否成功 */
|
|
407
462
|
success: boolean;
|
|
463
|
+
/** 状态码 */
|
|
408
464
|
code: number;
|
|
465
|
+
/** 状态码对应的消息 */
|
|
409
466
|
msg: string;
|
|
467
|
+
/** 执行操作触发的事件,如果是在open阶段失败的话该值为空 */
|
|
468
|
+
event?: {
|
|
469
|
+
srcElement: IDBRequest;
|
|
470
|
+
target: IDBRequest;
|
|
471
|
+
} & Event;
|
|
410
472
|
}> {
|
|
411
473
|
let that = this;
|
|
412
474
|
return new Promise((resolve) => {
|
|
413
475
|
/* 清空数据库 */
|
|
414
476
|
let dbName = that.#dbName;
|
|
415
|
-
|
|
416
|
-
if (
|
|
477
|
+
this.open(function (idbStore) {
|
|
478
|
+
if (idbStore == null) {
|
|
417
479
|
resolve({
|
|
418
480
|
success: false,
|
|
419
|
-
code: that.#
|
|
420
|
-
msg: that.#
|
|
481
|
+
code: that.#statusCode.deleteAllFailed.code,
|
|
482
|
+
msg: that.#statusCode.deleteAllFailed.msg,
|
|
421
483
|
});
|
|
422
484
|
} else {
|
|
423
|
-
|
|
424
|
-
idbStore.clear();
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
485
|
+
// 清空
|
|
486
|
+
let operateResult = idbStore.clear();
|
|
487
|
+
operateResult.onsuccess = function (event: any) {
|
|
488
|
+
resolve({
|
|
489
|
+
success: true,
|
|
490
|
+
code: that.#statusCode.operationSuccess.code,
|
|
491
|
+
msg: that.#statusCode.operationSuccess.msg,
|
|
492
|
+
event: event,
|
|
493
|
+
});
|
|
494
|
+
};
|
|
495
|
+
operateResult.onerror = function (event: any) {
|
|
496
|
+
resolve({
|
|
497
|
+
success: false,
|
|
498
|
+
code: that.#statusCode.deleteAllFailed.code,
|
|
499
|
+
msg: that.#statusCode.deleteAllFailed.msg,
|
|
500
|
+
event: event,
|
|
501
|
+
});
|
|
502
|
+
};
|
|
430
503
|
}
|
|
431
504
|
}, dbName);
|
|
432
505
|
});
|