import { db } from './dataStorage.js'; import { getDefaultLanguage } from './languages.js'; const subscribers = []; const defaultSettings = { language: getDefaultLanguage(), profile: "db", products: { 'nationalExpress': true, 'national': true, 'regionalExpress': true, 'regional': true, 'suburban': true, 'bus': true, 'ferry': true, 'subway': true, 'tram': true, 'taxi': true }, accessibility: 'none', walkingSpeed: 'normal', bikeFriendly: false, loyaltyCard: 'NONE', ageGroup: 'E', journeysViewMode: 'canvas', combineDateTime: false, showPrices: true, showDS100: true, showVia: false, }; export let settings; export const subscribeSettings = cb => subscribers.push(cb); export const initSettings = async () => { settings = (await db.getSettings()) || defaultSettings; for (const cb of subscribers) await cb(); }; export const modifySettings = async callback => { const newSettings = await db.modifySettings(JSON.parse(JSON.stringify(settings)), callback); Object.freeze(newSettings); settings = newSettings; for (const cb of subscribers) await cb(); };