Files
AtreidesAssetsFree/client/app-settings.js
T

44 lines
1.2 KiB
JavaScript
Raw Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:06a40e9a9b07fffcb17863260da0fc8eb04737e1ff80b20eaa9403c734f9d87d
import { PREFERENCES } from '../shared/config.js';
import { getPref, getSettings, setPref } from './data/preferences.js';
let app = null;
const timers = new Map();
export async function loadAppSettings() {
app = await getSettings();
for (const key of Object.keys(PREFERENCES.timers)) timers.set(key, await getPref('timers', key));
return app;
}
function geladen() {
if (app === null) {
throw new Error('app-settings: not loaded yet. loadAppSettings() belongs to the boot, before the first render.');
}
return app;
}
export function appSetting(key) {
const s = geladen();
if (!Object.hasOwn(PREFERENCES.app, key)) throw new Error(`Unknown app preference: ${key}.`);
return s[key];
}
export function baseCurrency() { return geladen().baseCurrency; }
export function appSettings() { return { ...geladen() }; }
export function timerSetting(key) {
geladen();
return timers.get(key);
}
export async function setAppSetting(key, value) {
await setPref('app', key, value);
if (app) app[key] = value;
}
export async function setTimerSetting(key, value) {
await setPref('timers', key, value);
timers.set(key, value);
}