wxt
wxt copied to clipboard
Single watcher for multiple keys
Feature Request
This snippet allows for watching a single item: https://github.com/wxt-dev/wxt/blob/c0aa12089e24c9f0cb01fb3f8546f17096b21341/packages/wxt/src/storage.ts#L434-L447
I also wish to have a watcher setup like this:
const unwatch = storage.watch({
"local:item1"((newValue, oldValue) => {...}),
"local:item2"((newValue, oldValue) => {...})
});
unwatch();
Is your feature request related to a bug?
N/A
What are the alternatives?
storage.watch("local:item1", (newValue, oldValue) => {...});
storage.watch("local:item2", (newValue, oldValue) => {...});
Additional context
This functionality is available in Plasmo
We can add something like that!
But for most cases, I would recommend just calling watch multiple times. Seems like a classic case of premature optimization.
In my case it's not for the sake of premature optimization but rather increased readability and maintainability, having all of the watchers in one place
Since I have a PR open about some storage changes, I'll take this and add that to the watch
@aklinker1 Looks like this has been resolved in #990
@krisalcordo What snippet lets me assign a single watcher on multiple items?
@Timeraa can correct me but from looking at the watch function it looks like you can do this?
watch({
key1: (newValue, oldValue) => console.log('key1 changed:', oldValue, '→', newValue),
key2: (newValue, oldValue) => console.log('key2 changed:', oldValue, '→', newValue),
});
Let me know if that works @avi12, I'll work on getting the docs updated too.