import type { PlayerCharacter } from "@initiative/domain"; import { rehydratePlayerCharacter } from "@initiative/domain"; const STORAGE_KEY = "initiative:player-characters"; export function savePlayerCharacters(characters: PlayerCharacter[]): void { try { localStorage.setItem(STORAGE_KEY, JSON.stringify(characters)); } catch { // Silently swallow errors (quota exceeded, storage unavailable) } } export function loadPlayerCharacters(): PlayerCharacter[] { try { const raw = localStorage.getItem(STORAGE_KEY); if (raw === null) return []; const parsed: unknown = JSON.parse(raw); if (!Array.isArray(parsed)) return []; const characters: PlayerCharacter[] = []; for (const item of parsed) { const pc = rehydratePlayerCharacter(item); if (pc !== null) { characters.push(pc); } } return characters; } catch { return []; } }