solidjs-community/solid-primitives

multiplexStorage source of truth

Open

#799 opened on Jun 27, 2025

 (7 comments) (0 reactions) (1 assignee)TypeScript (153 forks)auto 404
enhancementhelp wanted

Repository metrics

Stars
 (1,541 stars)
PR merge metrics
 (PR metrics pending)

Description

Describe the bug

The docs for multiplexStorage state

For the getItem operation, the first storage that returns a valid value will be the source of truth.

But I am able to reproduce a scenario where the first storage has no value, the second storage has a value, but the value from the second storage is not used as the source of truth.

Steps to repro:

  1. Navigate to https://playground.solidjs.com/anonymous/f998757e-6b08-4054-9e7a-87a0b20902a7
  2. Verify that the counter button is set to 1
  3. Click the counter button once, incrementing it to 2
  4. Verify that the count in localStorage has been set to 2Image
  5. Verify that the count in indexedDB/localForage has been set to 2Image
  6. Refresh the page
  7. Verify that the counter button is still correctly set to 2
  8. Delete the localStorage record for count
  9. Refresh the page
  10. Verify that the counter button is incorrectly set back to 1
  11. Verify that the count in indexedDB/localForage is still set to 2

This seems to show that the localForage storage option is not being used, despite being the only storage option returning a valid value.

Minimal Reproduction Link

https://playground.solidjs.com/anonymous/f998757e-6b08-4054-9e7a-87a0b20902a7

Contributor guide