mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 09:41:24 +01:00
fix: indexedDB saving map
This commit is contained in:
parent
1d921c18af
commit
1847270482
3 changed files with 25 additions and 31 deletions
|
|
@ -7921,7 +7921,7 @@
|
||||||
<script src="libs/d3.min.js"></script>
|
<script src="libs/d3.min.js"></script>
|
||||||
<script src="libs/priority-queue.min.js"></script>
|
<script src="libs/priority-queue.min.js"></script>
|
||||||
<script src="libs/delaunator.min.js"></script>
|
<script src="libs/delaunator.min.js"></script>
|
||||||
<script src="libs/indexedDB.js?v=1.89.32"></script>
|
<script src="libs/indexedDB.js?v=1.91.01"></script>
|
||||||
|
|
||||||
<script src="utils/shorthands.js"></script>
|
<script src="utils/shorthands.js"></script>
|
||||||
<script src="utils/commonUtils.js?v=1.89.29"></script>
|
<script src="utils/commonUtils.js?v=1.89.29"></script>
|
||||||
|
|
|
||||||
|
|
@ -2,44 +2,40 @@ let db;
|
||||||
|
|
||||||
const DATABASE_NAME = "d2";
|
const DATABASE_NAME = "d2";
|
||||||
const STORE_NAME = "s";
|
const STORE_NAME = "s";
|
||||||
const KEY_PATH = "key";
|
|
||||||
|
|
||||||
const openDatabase = () => {
|
const openDatabase = () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (db) {
|
if (db) resolve();
|
||||||
|
|
||||||
|
if (!window.indexedDB) return reject("IndexedDB is not supported");
|
||||||
|
const request = window.indexedDB.open(DATABASE_NAME);
|
||||||
|
|
||||||
|
request.onsuccess = event => {
|
||||||
|
db = event.target.result;
|
||||||
resolve();
|
resolve();
|
||||||
} else {
|
};
|
||||||
const request = window.indexedDB.open(DATABASE_NAME, 1);
|
|
||||||
|
|
||||||
request.onsuccess = event => {
|
request.onerror = event => {
|
||||||
|
console.error("IndexedDB request error");
|
||||||
|
reject();
|
||||||
|
};
|
||||||
|
|
||||||
|
request.onupgradeneeded = event => {
|
||||||
|
db = event.target.result;
|
||||||
|
const objectStore = db.createObjectStore(STORE_NAME, {keyPath: "key"});
|
||||||
|
objectStore.transaction.oncomplete = () => {
|
||||||
db = event.target.result;
|
db = event.target.result;
|
||||||
resolve();
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
request.onerror = event => {
|
|
||||||
console.error("indexedDB request error");
|
|
||||||
reject();
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onupgradeneeded = event => {
|
|
||||||
db = event.target.result;
|
|
||||||
const objectStore = db.createObjectStore(STORE_NAME, {keyPath: KEY_PATH});
|
|
||||||
objectStore.transaction.oncomplete = () => {
|
|
||||||
db = event.target.result;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const ldb = {
|
const ldb = {
|
||||||
get: key => {
|
get: key => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!window.indexedDB) return reject("indexedDB not supported");
|
|
||||||
|
|
||||||
openDatabase().then(() => {
|
openDatabase().then(() => {
|
||||||
const hasStore = Array.from(db.objectStoreNames).includes(STORE_NAME);
|
const hasStore = Array.from(db.objectStoreNames).includes(STORE_NAME);
|
||||||
if (!hasStore) return reject("no store found");
|
if (!hasStore) return reject("IndexedDB: no store found");
|
||||||
|
|
||||||
const transaction = db.transaction(STORE_NAME, "readonly");
|
const transaction = db.transaction(STORE_NAME, "readonly");
|
||||||
const objectStore = transaction.objectStore(STORE_NAME);
|
const objectStore = transaction.objectStore(STORE_NAME);
|
||||||
|
|
@ -53,14 +49,12 @@ const ldb = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
set: (key, value) => {
|
set: (keyName, value) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise(resolve => {
|
||||||
if (!window.indexedDB) return reject("indexedDB not supported");
|
|
||||||
|
|
||||||
openDatabase().then(() => {
|
openDatabase().then(() => {
|
||||||
const transaction = db.transaction(STORE_NAME, "readwrite");
|
const transaction = db.transaction(STORE_NAME, "readwrite");
|
||||||
const objectStore = transaction.objectStore(STORE_NAME);
|
const objectStore = transaction.objectStore([STORE_NAME]);
|
||||||
const putRequest = objectStore.put({key, value});
|
const putRequest = objectStore.put({key: keyName, value});
|
||||||
|
|
||||||
putRequest.onsuccess = () => {
|
putRequest.onsuccess = () => {
|
||||||
resolve();
|
resolve();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// version and caching control
|
// version and caching control
|
||||||
const version = "1.91.00"; // generator version, update each time
|
const version = "1.91.01"; // generator version, update each time
|
||||||
|
|
||||||
{
|
{
|
||||||
document.title += " v" + version;
|
document.title += " v" + version;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue