Skip to content

[@xstate/store] Add event persistence#5479

Merged
davidkpiano merged 5 commits intomainfrom
davidkpiano/xstate-store-persist-events
Mar 14, 2026
Merged

[@xstate/store] Add event persistence#5479
davidkpiano merged 5 commits intomainfrom
davidkpiano/xstate-store-persist-events

Conversation

@davidkpiano
Copy link
Member

Add strategy: 'event' option to the persist extension. Instead of persisting context snapshots, this persists the event log and replays events on rehydration to reconstruct state.

Also adds isHydrated(store) helper to check hydration status.

const store = createStore({
  context: { count: 0 },
  on: { inc: (ctx) => ({ count: ctx.count + 1 }) }
}).with(
  persist({
    name: 'my-store',
    strategy: 'event',
    maxEvents: 100
  })
);

@changeset-bot
Copy link

changeset-bot bot commented Mar 10, 2026

🦋 Changeset detected

Latest commit: f646b47

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@xstate/store Minor
@xstate/store-angular Patch
@xstate/store-preact Patch
@xstate/store-react Patch
@xstate/store-solid Patch
@xstate/store-svelte Patch
@xstate/store-vue Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@davidkpiano davidkpiano merged commit 3b8c68e into main Mar 14, 2026
1 check passed
@davidkpiano davidkpiano deleted the davidkpiano/xstate-store-persist-events branch March 14, 2026 13:53
@github-actions github-actions bot mentioned this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant