UNPKG

piral-debug-utils

Version:

Utilities for debugging Piral instances.

78 lines 3.07 kB
export const settingsKeys = { viewState: 'dbg:view-state', loadPilets: 'dbg:load-pilets', hardRefresh: 'dbg:hard-refresh', viewOrigins: 'dbg:view-origins', extensionCatalogue: 'dbg:extension-catalogue', clearConsole: 'dbg:clear-console', persistSettings: 'dbg:persist-settings-data', errorOverlay: 'dbg:error-overlay', }; const persistKey = settingsKeys.persistSettings; const persistSettings = !!localStorage.getItem(persistKey); const defaultSetter = (name, value) => { sessionStorage.setItem(name, value); }; const persistentSetter = (name, value) => { defaultSetter(name, value); const data = JSON.parse(localStorage.getItem(persistKey)); data[name] = value; localStorage.setItem(persistKey, JSON.stringify(data)); }; function getValue(key, defaultValue, fallbackValue) { const value = sessionStorage.getItem(key); const actualValue = value === 'on'; if (['on', 'off'].includes(value)) { return actualValue; } const currentValue = typeof defaultValue === 'boolean' ? defaultValue : fallbackValue; if (actualValue !== currentValue) { sessionStorage.setItem(key, currentValue ? 'on' : 'off'); } return currentValue; } if (persistSettings) { try { const settings = JSON.parse(localStorage.getItem(persistKey)); Object.keys(settings).forEach((name) => { const value = settings[name]; sessionStorage.setItem(name, value); }); } catch { // invalid data localStorage.setItem(persistKey, '{}'); } } export function enablePersistance() { const data = {}; const validKeys = Object.keys(settingsKeys).map((m) => settingsKeys[m]); for (let i = 0; i < sessionStorage.length; i++) { const name = sessionStorage.key(i); if (validKeys.includes(name)) { const value = sessionStorage.getItem(name); data[name] = value; } } localStorage.setItem(persistKey, JSON.stringify(data)); return persistentSetter; } export function disablePersistance() { localStorage.removeItem(persistKey); return defaultSetter; } export const initialSetter = persistSettings ? persistentSetter : defaultSetter; export function getInitialSettings(defaultValues) { return { viewState: getValue(settingsKeys.viewState, defaultValues.viewState, true), loadPilets: getValue(settingsKeys.loadPilets, defaultValues.loadPilets, false), hardRefresh: getValue(settingsKeys.hardRefresh, defaultValues.hardRefresh, false), viewOrigins: getValue(settingsKeys.viewOrigins, defaultValues.viewOrigins, false), extensionCatalogue: getValue(settingsKeys.extensionCatalogue, defaultValues.extensionCatalogue, true), clearConsole: getValue(settingsKeys.clearConsole, defaultValues.clearConsole, false), errorOverlay: getValue(settingsKeys.errorOverlay, defaultValues.errorOverlay, true), persistSettings, cataloguePath: '/$debug-extension-catalogue', }; } //# sourceMappingURL=state.js.map