@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.
@@ -22,11 +22,27 @@ declare class indexedDB {
22
22
  * @param key 数据key
23
23
  * @param value 数据值
24
24
  */
25
- save(key: string, value: any): Promise<{
25
+ save<T extends any>(key: string, value: T): Promise<{
26
26
  success: boolean;
27
27
  code: number;
28
28
  msg: string;
29
- event?: 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?: Event;
41
- result?: any;
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?: Event;
74
+ event?: {
75
+ srcElement: IDBRequest<T>;
76
+ target: IDBRequest<T>;
77
+ } & Event;
53
78
  }>;
54
79
  /**
55
80
  * 删除数据
56
- * @param {string} key 数据键
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?: Event;
87
+ event?: {
88
+ srcElement: IDBRequest;
89
+ target: IDBRequest;
90
+ } & Event;
63
91
  }>;
64
92
  /**
65
93
  * 删除所有数据
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
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: any
135
+ value: T
136
136
  ): Promise<{
137
137
  success: boolean;
138
138
  code: number;
139
139
  msg: string;
140
140
 
141
- event?: 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: 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: 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?: Event;
201
- result?: any;
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 = that.#dbName;
206
- that.open(function (idbStore, success) {
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: T = result ? result.value : void 0;
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?: 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((item: any, index: any) => {
299
- if (item["key"].match(key)) {
300
- let concatList = item["value"];
301
- concatList["key"] = item["key"];
302
- list = [...list, concatList];
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 {string} key 数据键
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?: Event;
407
+ event?: {
408
+ srcElement: IDBRequest;
409
+ target: IDBRequest;
410
+ } & Event;
342
411
  }> {
343
412
  let that = this;
344
413
  return new Promise((resolve) => {