# ⚡ spark-html-persist Persist a [spark-html](https://www.npmjs.com/package/spark-html) store across reloads — **one line**. Hydrates from storage on boot, saves on every change. Built on `store()` + `subscribe()`, one dependency. ```js import { persist } from 'spark-html-persist'; // a normal store(), but it survives reloads: persist('settings', { theme: 'dark', fontSize: 14 }); ``` ```html ``` Change `s.theme`, reload the page — it's still there. ## Install ```bash npm install spark-html-persist ``` ## API ```js persist(name, initial?, options?) ``` Returns the same store as `store(name)` — `useStore(name)` reads it everywhere. Saved values layer **on top of** `initial`, so adding a new default key works even for users with an older saved blob. | Option | Default | Meaning | |--------|---------|---------| | `key` | `spark:` | Storage key. | | `storage` | `localStorage` | Any `Storage` — pass `sessionStorage` for per-tab state. | | `include` | all keys | Persist only these keys. | | `exclude` | — | Persist everything except these keys. | ```js persist('user', { name: '', token: '', draft: '' }, { storage: sessionStorage, exclude: ['token'], // keep secrets out of storage }); ``` Writes are coalesced to one `setItem` per tick, and storage errors (quota, private mode, corrupt JSON) fall back silently to the defaults — never throws.