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.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.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