You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi there, thanks for this library!
My application uses some string keys in its state map, which plato currently doesn't support. I started working on adding support for strings, but I figured it would be worth generalizing it further to support any type for a key, plus adding a couple features. Thought I'd run this by you before I get too deep into it:
The keys in local storage would be in this format:
{base-key}[{separator}{type-of-key}:{value-of-key}, ...]": value
So for this map: {:foo {"bar" {{:qux "baz"} ['a 'b 'c]}}}, a separator _, and the base key "base-key", we'd get something like this in local storage:
{ "base-key_kw:foo_str:bar_hm:{:qux "baz"}": "[a b c]" }
Tangentially related features:
ability to control depth of paths that go into Local Storage keys. So we could, for instance, choose a depth of 2 and have a map like {:foo {:bar {:baz 3}}} and end up with this in local storage:
{ "base-key_kw:foo_kw:bar": "{:baz 3}" }
ability to control whether to put vectors into local storage keys or just serialize the whole thing. Something like {:foo [1 2 3]} could be:
Thanks for the input! I didn't even considered supporting anything but keywords since that is all I use, but you're very correct in that this could be generalized. However, adding only support for strings would leave the same situation, except that it now supports two types rather than just one.
Perhaps there should be a way of encoding any type as key. Perhaps by allowing the user of the library to extend a protocol. Some reflection needs to be done.
Hi there, thanks for this library!
My application uses some string keys in its state map, which plato currently doesn't support. I started working on adding support for strings, but I figured it would be worth generalizing it further to support any type for a key, plus adding a couple features. Thought I'd run this by you before I get too deep into it:
The keys in local storage would be in this format:
So for this map:
{:foo {"bar" {{:qux "baz"} ['a 'b 'c]}}}
, a separator_
, and the base key "base-key", we'd get something like this in local storage:Tangentially related features:
{:foo {:bar {:baz 3}}}
and end up with this in local storage:{:foo [1 2 3]}
could be:or
The text was updated successfully, but these errors were encountered: