mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2026-02-04 17:41:23 +01:00
* chore: add npm + vite for progressive enhancement * fix: update Dockerfile to copy only the dist folder contents * fix: update Dockerfile to use multi-stage build for optimized production image * fix: correct nginx config file copy command in Dockerfile * chore: add netlify configuration for build and redirects * fix: add NODE_VERSION to environment in Netlify configuration * remove wrong dist folder * Update package.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: split public and src * migrating all util files from js to ts * feat: Implement HeightmapGenerator and Voronoi module - Added HeightmapGenerator class for generating heightmaps with various tools (Hill, Pit, Range, Trough, Strait, etc.). - Introduced Voronoi class for creating Voronoi diagrams using Delaunator. - Updated index.html to include new modules. - Created index.ts to manage module imports. - Enhanced arrayUtils and graphUtils with type definitions and improved functionality. - Added utility functions for generating grids and calculating Voronoi cells. * chore: add GitHub Actions workflow for deploying to GitHub Pages * fix: update branch name in GitHub Actions workflow from 'main' to 'master' * chore: update package.json to specify Node.js engine version and remove unused launch.json * Initial plan * Update copilot guidelines to reflect NPM/Vite/TypeScript migration Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com> * Update src/modules/heightmap-generator.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/utils/graphUtils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/modules/heightmap-generator.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: Add TIME and ERROR variables to global scope in HeightmapGenerator * fix: Update base path in vite.config.ts for Netlify deployment * fix: Update Node.js version in Dockerfile to 24-alpine --------- Co-authored-by: Marc Emmanuel <marc.emmanuel@tado.com> Co-authored-by: Marc Emmanuel <marcwissler@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
let db;
|
|
|
|
const DATABASE_NAME = "d2";
|
|
const STORE_NAME = "s";
|
|
|
|
const openDatabase = () => {
|
|
return new Promise((resolve, reject) => {
|
|
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();
|
|
};
|
|
|
|
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;
|
|
};
|
|
};
|
|
});
|
|
};
|
|
|
|
const ldb = {
|
|
get: key => {
|
|
return new Promise((resolve, reject) => {
|
|
openDatabase().then(() => {
|
|
const hasStore = Array.from(db.objectStoreNames).includes(STORE_NAME);
|
|
if (!hasStore) return reject("IndexedDB: no store found");
|
|
|
|
const transaction = db.transaction(STORE_NAME, "readonly");
|
|
const objectStore = transaction.objectStore(STORE_NAME);
|
|
const getRequest = objectStore.get(key);
|
|
|
|
getRequest.onsuccess = event => {
|
|
const result = event.target.result?.value || null;
|
|
resolve(result);
|
|
};
|
|
});
|
|
});
|
|
},
|
|
|
|
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: keyName, value});
|
|
|
|
putRequest.onsuccess = () => {
|
|
resolve();
|
|
};
|
|
});
|
|
});
|
|
}
|
|
};
|