Which Web Storage to wrap ('local' or 'session')
A SafeStorage wrapper that never throws
import { createSafeStorage } from '@consumidor-positivo/ts-utils';
const storage = createSafeStorage('local');
// Never throws, even inside a WebView where localStorage is unavailable
storage.setItem('token', 'abc123');
const token = storage.getItem('token'); // 'abc123' or null
storage.removeItem('token');
Creates a SafeStorage wrapper around
localStorageorsessionStoragewhose methods never throw.Direct access to Web Storage can crash in environments where it is unavailable or restricted (embedded WebViews, private browsing, disabled storage, SSR). This wrapper degrades gracefully instead: reads return null and writes/removes become no-ops.