@libs-ui/utils 0.2.51 → 0.2.53

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.
@@ -241,11 +241,13 @@ const set = (obj, path, value) => {
241
241
  key = key.replace(/\[(\d+)]/g, '$1');
242
242
  current[key] = /\[(\d+)]/g.test(nextKey) ? [] : {};
243
243
  }
244
- lastIsSignal = isSignal(current[key]);
245
- current = lastIsSignal ? current[key]() : current[key];
244
+ current = key ? current[key] : current;
245
+ lastIsSignal = isSignal(current);
246
+ current = lastIsSignal ? current() : current;
246
247
  return;
247
248
  }
248
249
  // Gán giá trị ở cuối đường dẫn
250
+ key = key.replace(/\[(\d+)]/g, '$1');
249
251
  if (lastIsSignal) {
250
252
  current.update((data) => {
251
253
  data[key] = value;
@@ -968,8 +970,8 @@ class UtilsCache {
968
970
  if (config.typeKeyClearLocalStorage) {
969
971
  UtilsCache.typeKeyClearLocalStorage = config.typeKeyClearLocalStorage;
970
972
  }
971
- if (config.listKeyKeepWhenClearALll) {
972
- UtilsCache.listKeyKeepWhenClearALll = config.listKeyKeepWhenClearALll;
973
+ if (config.listKeyKeepWhenClearAll) {
974
+ UtilsCache.listKeyKeepWhenClearALll = config.listKeyKeepWhenClearAll;
973
975
  }
974
976
  if (config.languageKeyCache) {
975
977
  UtilsCache.languageKeyCache = config.languageKeyCache;
@@ -991,7 +993,7 @@ class UtilsCache {
991
993
  request.onupgradeneeded = (event) => {
992
994
  const db = event.target.result;
993
995
  if (!db.objectStoreNames.contains(UtilsCache.dbName)) {
994
- const objectStore = db.createObjectStore(UtilsCache.dbName, { keyPath: 'id', autoIncrement: true });
996
+ const objectStore = db.createObjectStore(UtilsCache.dbName, { keyPath: UtilsCache.itemIndexByKey, autoIncrement: true });
995
997
  objectStore.createIndex(UtilsCache.itemIndexByKey, UtilsCache.itemIndexByKey, { unique: true });
996
998
  }
997
999
  };
@@ -1087,8 +1089,7 @@ class UtilsCache {
1087
1089
  if (!objectStore) {
1088
1090
  return resolve(default_value);
1089
1091
  }
1090
- const index = objectStore.index(UtilsCache.itemIndexByKey);
1091
- const request = index.get(key);
1092
+ const request = objectStore.get(key);
1092
1093
  request.onsuccess = () => {
1093
1094
  if (!request.result) {
1094
1095
  return resolve(default_value);
@@ -1136,41 +1137,25 @@ class UtilsCache {
1136
1137
  return default_value;
1137
1138
  }
1138
1139
  static async SetAsync(key, value, expireTimeBySecond = UtilsCache.CACHE_EXPIRE_TIME_DEFAULT, isKeyMD5 = false) {
1139
- return new Promise(async (resolve, reject) => {
1140
- let objectStore = await UtilsCache.getObjectStore();
1140
+ return new Promise(async (resolve) => {
1141
+ const objectStore = await UtilsCache.getObjectStore();
1141
1142
  key = isKeyMD5 ? key : md5(key);
1142
1143
  try {
1143
1144
  const currentMillisecond = expireTimeBySecond === UtilsCache.CACHE_EXPIRE_NONE ? UtilsCache.CACHE_EXPIRE_NONE : (new Date().valueOf() / 1000) + expireTimeBySecond;
1144
1145
  const data = {
1145
- key: key,
1146
1146
  value: encrypt(JSON.stringify({ json: value, expire: currentMillisecond })),
1147
1147
  };
1148
+ data[UtilsCache.itemIndexByKey] = key;
1148
1149
  if (!objectStore) {
1149
1150
  return resolve(-1);
1150
1151
  }
1151
- const index = objectStore.index(UtilsCache.itemIndexByKey);
1152
- const getIndexKeyRequest = index.get(key);
1153
- getIndexKeyRequest.onsuccess = async () => {
1154
- const item = getIndexKeyRequest.result;
1155
- if (item) {
1156
- await UtilsCache.ClearAsync(key, true);
1157
- objectStore = await UtilsCache.getObjectStore();
1158
- }
1159
- if (!objectStore) {
1160
- return resolve(-1);
1161
- }
1162
- const request = objectStore.add(data);
1163
- request.onsuccess = () => {
1164
- resolve(request.result);
1165
- };
1166
- request.onerror = () => {
1167
- console.log(request.error);
1168
- return resolve(-1);
1169
- };
1152
+ const request = objectStore?.put(data);
1153
+ request.onsuccess = () => {
1154
+ resolve(request.result);
1170
1155
  };
1171
- getIndexKeyRequest.onerror = (event) => {
1172
- console.error('Error fetching item by name:', event.target.error);
1173
- reject(event.target.error);
1156
+ request.onerror = () => {
1157
+ console.log(request.error);
1158
+ return resolve(-1);
1174
1159
  };
1175
1160
  }
1176
1161
  catch (error) {
@@ -1201,23 +1186,11 @@ class UtilsCache {
1201
1186
  if (!objectStore) {
1202
1187
  return resolve({});
1203
1188
  }
1204
- const index = objectStore.index(UtilsCache.itemIndexByKey);
1205
- const getRequest = index.get(isMD5 ? key : md5(key));
1206
- getRequest.onsuccess = () => {
1207
- const result = getRequest.result;
1208
- if (result) {
1209
- const deleteRequest = objectStore.delete(result.id); // Xóa theo id của item tìm được
1210
- deleteRequest.onsuccess = () => {
1211
- resolve({});
1212
- };
1213
- deleteRequest.onerror = () => {
1214
- resolve({});
1215
- };
1216
- return;
1217
- }
1189
+ const request = objectStore.delete(isMD5 ? key : md5(key));
1190
+ request.onsuccess = () => {
1218
1191
  resolve({});
1219
1192
  };
1220
- getRequest.onerror = () => {
1193
+ request.onerror = () => {
1221
1194
  resolve({});
1222
1195
  };
1223
1196
  });
@@ -1229,8 +1202,12 @@ class UtilsCache {
1229
1202
  this.LocalStorage.removeItem(key);
1230
1203
  }
1231
1204
  static ClearAllAsync() {
1232
- return new Promise((resolve, reject) => {
1233
- const request = indexedDB.deleteDatabase(this.dbName);
1205
+ return new Promise(async (resolve, reject) => {
1206
+ const objectStore = await UtilsCache.getObjectStore();
1207
+ if (!objectStore) {
1208
+ return resolve({});
1209
+ }
1210
+ const request = objectStore.clear();
1234
1211
  request.onsuccess = () => {
1235
1212
  console.log('Database deleted successfully');
1236
1213
  resolve(true);
@@ -1239,9 +1216,6 @@ class UtilsCache {
1239
1216
  console.error('Error deleting database:', event.target.error);
1240
1217
  reject(event.target.error);
1241
1218
  };
1242
- request.onblocked = () => {
1243
- console.warn('Delete request is blocked');
1244
- };
1245
1219
  });
1246
1220
  }
1247
1221
  static ClearAll() {
@@ -1293,18 +1267,18 @@ class UtilsCache {
1293
1267
  if (!objectStore) {
1294
1268
  return resolve({});
1295
1269
  }
1296
- const index = objectStore.index(UtilsCache.itemIndexByKey);
1297
1270
  // Lấy tất cả các keys từ index
1298
- const request = index.getAll();
1271
+ const request = objectStore.getAll();
1299
1272
  keyCacheStartWith = isKeyMD5 ? keyCacheStartWith : md5(keyCacheStartWith);
1300
1273
  request.onsuccess = (e) => {
1301
1274
  const data = e.target.result;
1275
+ console.log(data);
1302
1276
  if (!Array.isArray(data)) {
1303
1277
  return resolve({});
1304
1278
  }
1305
1279
  data.forEach(obj => {
1306
- if (obj.key.startsWith(keyCacheStartWith)) {
1307
- UtilsCache.ClearAsync(obj.key, true);
1280
+ if (obj[UtilsCache.itemIndexByKey].startsWith(keyCacheStartWith)) {
1281
+ UtilsCache.ClearAsync(obj[UtilsCache.itemIndexByKey], true);
1308
1282
  }
1309
1283
  });
1310
1284
  return resolve({});
@@ -1326,6 +1300,22 @@ class UtilsCache {
1326
1300
  }
1327
1301
  });
1328
1302
  }
1303
+ static DeleteDatabaseIndexDB(dbName) {
1304
+ return new Promise((resolve, reject) => {
1305
+ const request = indexedDB.deleteDatabase(dbName);
1306
+ request.onsuccess = () => {
1307
+ console.log('Database deleted successfully');
1308
+ resolve(true);
1309
+ };
1310
+ request.onerror = (event) => {
1311
+ console.error('Error deleting database:', event.target.error);
1312
+ reject(event.target.error);
1313
+ };
1314
+ request.onblocked = () => {
1315
+ console.warn('Delete request is blocked');
1316
+ };
1317
+ });
1318
+ }
1329
1319
  }
1330
1320
 
1331
1321
  const formatNumber = (value) => {