mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-16 17:31: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/priority-queue.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/commonUtils.js?v=1.89.29"></script>
|
||||
|
|
|
|||
|
|
@ -2,44 +2,40 @@ let db;
|
|||
|
||||
const DATABASE_NAME = "d2";
|
||||
const STORE_NAME = "s";
|
||||
const KEY_PATH = "key";
|
||||
|
||||
const openDatabase = () => {
|
||||
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();
|
||||
} 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;
|
||||
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 = {
|
||||
get: key => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!window.indexedDB) return reject("indexedDB not supported");
|
||||
|
||||
openDatabase().then(() => {
|
||||
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 objectStore = transaction.objectStore(STORE_NAME);
|
||||
|
|
@ -53,14 +49,12 @@ const ldb = {
|
|||
});
|
||||
},
|
||||
|
||||
set: (key, value) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!window.indexedDB) return reject("indexedDB not supported");
|
||||
|
||||
set: (keyName, value) => {
|
||||
return new Promise(resolve => {
|
||||
openDatabase().then(() => {
|
||||
const transaction = db.transaction(STORE_NAME, "readwrite");
|
||||
const objectStore = transaction.objectStore(STORE_NAME);
|
||||
const putRequest = objectStore.put({key, value});
|
||||
const objectStore = transaction.objectStore([STORE_NAME]);
|
||||
const putRequest = objectStore.put({key: keyName, value});
|
||||
|
||||
putRequest.onsuccess = () => {
|
||||
resolve();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
// 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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue