( key: string, parse: (raw: unknown) => T | undefined )
| 240 | // ---- localStorage persistence ---------------------------------------------- |
| 241 | |
| 242 | const safeReadJSON = <T>( |
| 243 | key: string, |
| 244 | parse: (raw: unknown) => T | undefined |
| 245 | ): T | undefined => { |
| 246 | if (typeof window === "undefined") return undefined; |
| 247 | try { |
| 248 | const raw = window.localStorage.getItem(key); |
| 249 | if (raw === null) return undefined; |
| 250 | return parse(JSON.parse(raw)); |
| 251 | } catch { |
| 252 | return undefined; |
| 253 | } |
| 254 | }; |
| 255 | |
| 256 | const safeWriteJSON = (key: string, value: unknown) => { |
| 257 | if (typeof window === "undefined") return; |
no test coverage detected