const defaults = { apiBase: `${window.location.origin}/api/v1`, gatewayBase: `${location.protocol === "https:" ? "wss" : "ws"}://${location.host}/gateway`, doAnimations: true, token: "", "loggingSink:Gateway": false, "loggingSink:Store": false }; const store = new Map(Object.entries(defaults)); const persistentProvider = localStorage; export function setItem(key, value) { store.set(key, value); if (persistentProvider) { persistentProvider.setItem(key, typeof value === "string" ? value : JSON.stringify(value)); } } export function getItem(key) { return store.get(key); } export function removeItem(key) { store.delete(key); if (persistentProvider) { persistentProvider.removeItem(key); } } export function init() { if (!persistentProvider) return; store.forEach((defaultValue, key) => { const override = persistentProvider.getItem(key); if (override !== null) { try { store.set(key, typeof defaultValue === "string" ? override : JSON.parse(override)); } catch (o_O) { console.warn("[Storage]", `init(): An exception was thrown while parsing the value of key "${key}" from _persistentProvider`, o_O); } } }); } export function apiRoute(fragment) { return `${getItem("apiBase")}/${fragment}` }