mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 01:41:22 +01:00
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
function getValue(key) {
|
|
return new Promise(function (resolve) {
|
|
if (db) {
|
|
var transaction = db.transaction("store", "readonly");
|
|
var objectStore = transaction.objectStore("store");
|
|
var getRequest = objectStore.get(key);
|
|
getRequest.onsuccess = function (event) {
|
|
var result = event.target.result ? event.target.result.value : null;
|
|
resolve(result);
|
|
};
|
|
} else {
|
|
setTimeout(function () {
|
|
getValue(key).then(resolve);
|
|
}, 100);
|
|
}
|
|
});
|
|
}
|
|
|
|
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
|
|
if (!indexedDB) console.error("indexedDB not supported");
|
|
|
|
var db;
|
|
var request = indexedDB.open("myDatabase", 1);
|
|
|
|
request.onsuccess = function (event) {
|
|
db = event.target.result;
|
|
};
|
|
|
|
request.onerror = function (event) {
|
|
console.error("indexedDB request error");
|
|
console.log(event);
|
|
};
|
|
|
|
request.onupgradeneeded = function (event) {
|
|
db = null;
|
|
var dbRequest = event.target.result;
|
|
var objectStore = dbRequest.createObjectStore("store", {keyPath: "key"});
|
|
objectStore.transaction.oncomplete = function () {
|
|
db = dbRequest;
|
|
};
|
|
};
|
|
|
|
window.ldb = {
|
|
get: getValue,
|
|
set: function (key, value) {
|
|
var transaction = db.transaction("store", "readwrite");
|
|
var objectStore = transaction.objectStore("store");
|
|
objectStore.put({key: key, value: value});
|
|
}
|
|
};
|