Update apx.
This commit is contained in:
		
							
								
								
									
										110
									
								
								wco/apx/apx.js
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								wco/apx/apx.js
									
									
									
									
									
								
							| @@ -511,3 +511,113 @@ apx.update = async () => { | ||||
|   apx.save(); //store in local the modification | ||||
| }; | ||||
| apx.ready(apx.update); //2nd param optional=> true mean does not wait same if apx.lock is set | ||||
|  | ||||
| apx.indexedDB = apx.indexedDB || {}; | ||||
|  | ||||
| apx.indexedDB.set = async (db, storeName, keyPath, key, value) => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         const request = indexedDB.open(db, 1); | ||||
|  | ||||
|         request.onupgradeneeded = (event) => { | ||||
|             const db = event.target.result; | ||||
|  | ||||
|             if (window.threadsObj) { | ||||
|                 for (const threadId of Object.keys(window.threadsObj)) { | ||||
|                     if (!db.objectStoreNames.contains(threadId)) { | ||||
|                         db.createObjectStore(threadId, { keyPath: keyPath }); | ||||
|                     }; | ||||
|                 }; | ||||
|             }; | ||||
|         }; | ||||
|  | ||||
|         request.onsuccess = (event) => { | ||||
|             const db = event.target.result; | ||||
|  | ||||
|             if (!db.objectStoreNames.contains(storeName)) { | ||||
|                 return resolve(); | ||||
|             }; | ||||
|  | ||||
|             const transaction = db.transaction(storeName, "readwrite"); | ||||
|             const store = transaction.objectStore(storeName); | ||||
|              | ||||
|             const putRequest = store.put({ timestamp: key, value: value }); | ||||
|             putRequest.onsuccess = () => resolve(); | ||||
|             putRequest.onerror = (error) => reject(error); | ||||
|         }; | ||||
|  | ||||
|         request.onerror = (error) => reject(error); | ||||
|     }); | ||||
| }; | ||||
|  | ||||
| apx.indexedDB.get =  async (db, storeName, keyPath, key) => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         const request = indexedDB.open(db, 1); | ||||
|  | ||||
|         request.onupgradeneeded = (event) => { | ||||
|             const db = event.target.result; | ||||
|              | ||||
|             if (window.threadsObj) { | ||||
|                 for (const threadId of Object.keys(window.threadsObj)) { | ||||
|                     if (!db.objectStoreNames.contains(threadId)) { | ||||
|                         db.createObjectStore(threadId, { keyPath: keyPath }); | ||||
|                     }; | ||||
|                 }; | ||||
|             }; | ||||
|         }; | ||||
|  | ||||
|         request.onsuccess = (event) => { | ||||
|             const db = event.target.result; | ||||
|  | ||||
|             if (!db.objectStoreNames.contains(storeName)) { | ||||
|                 return resolve(null); | ||||
|             }; | ||||
|  | ||||
|             const transaction = db.transaction(storeName, "readonly"); | ||||
|             const store = transaction.objectStore(storeName); | ||||
|             const getRequest = store.get(key); | ||||
|  | ||||
|             getRequest.onsuccess = () => { | ||||
|                 resolve(getRequest.result ? getRequest.result.value : null); | ||||
|             }; | ||||
|  | ||||
|             getRequest.onerror = () => resolve(null); | ||||
|         }; | ||||
|  | ||||
|         request.onerror = (error) => reject(error); | ||||
|     }); | ||||
| }; | ||||
|  | ||||
| apx.indexedDB.del = async (db, storeName, keyPath, key) => { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         const request = indexedDB.open(db, 1); | ||||
|  | ||||
|         request.onupgradeneeded = (event) => { | ||||
|             const db = event.target.result; | ||||
|  | ||||
|             if (window.threadsObj) { | ||||
|                 for (const threadId of Object.keys(window.threadsObj)) { | ||||
|                     if (!db.objectStoreNames.contains(threadId)) { | ||||
|                         db.createObjectStore(threadId, { keyPath: keyPath }); | ||||
|                     }; | ||||
|                 }; | ||||
|             }; | ||||
|         }; | ||||
|  | ||||
|         request.onsuccess = (event) => { | ||||
|             const db = event.target.result; | ||||
|  | ||||
|             if (!db.objectStoreNames.contains(storeName)) { | ||||
|                 return resolve(); | ||||
|             }; | ||||
|  | ||||
|             const transaction = db.transaction(storeName, "readwrite"); | ||||
|             const store = transaction.objectStore(storeName); | ||||
|  | ||||
|             const deleteRequest = store.delete(key); | ||||
|             deleteRequest.onsuccess = () => resolve(); | ||||
|             deleteRequest.onerror = (error) => reject(error); | ||||
|         }; | ||||
|  | ||||
|         request.onerror = (error) => reject(error); | ||||
|     }); | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user