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:
"base-key_kw:foo": "[1 2 3]"
or
"base-key_kw:foo": [],
"base-key_kw:foo_0": 1,
"base-key_kw:foo_1": 2,
"base-key_kw:foo_2": 3
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