45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
// 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);
|
|
}
|