joshnuss / svelte-persisted-store

A Svelte store that persists to localStorage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add Storage Key name to errors thrown by serializer

Holf opened this issue · comments

I have a bit of an edge case and wondered what your thoughts might be, @joshnuss.

This is where the serializer does its stuff when retrieving data from storage:
https://github.com/joshnuss/svelte-local-storage-store/blob/34b1994bd22180d704d7629938e9b27936aa375e/index.ts#L52

Any parsing errors that might occur when the storage event fires are unhandled. I wondered if it might be worth catching such errors and adding the key name to the error message before rethrowing?

As I say, this is quite an edge case; parsing errors should only happen if the value in storage is corrupted in some way, and given the same serializer will have been used to put the data there in the first place, this is unlikely.

But, I'm thinking of a situation where users tamper with storage (on their heads be it!) or if some other (unrelated) code manipulates storage in some way.

I am logging JavaScript errors centrally and, if corruption does occur, it would be useful to know which storage entry is causing the issue. Having the key name in the error message would help with this.

Hi @Holf,

Yes, that makes sense, I'd be open to a PR.