Files
traveling-around-the-world/client/src/lib/browserStorage.ts

25 lines
750 B
TypeScript

const isBrowser = typeof window !== 'undefined';
export const safeLocalStorage: Storage | undefined = isBrowser ? window.localStorage : undefined;
export function loadFromStorage<T>(key: string, fallback: T): T {
if (!safeLocalStorage) return fallback;
try {
const raw = safeLocalStorage.getItem(key);
if (!raw) return fallback;
return JSON.parse(raw) as T;
} catch (error) {
console.warn(`Failed to load ${key} from localStorage`, error);
return fallback;
}
}
export function saveToStorage<T>(key: string, value: T): void {
if (!safeLocalStorage) return;
try {
safeLocalStorage.setItem(key, JSON.stringify(value));
} catch (error) {
console.warn(`Failed to persist ${key} to localStorage`, error);
}
}