Johannes Meyer
|
5849c06314
|
storage.js: Don't try and allow to register events for non-local backends
|
2019-07-30 08:17:29 +02:00 |
Eric Lippmann
|
a1a18feb04
|
js/storage: Allow to set the storage backend
|
2019-07-30 08:14:49 +02:00 |
Johannes Meyer
|
2179518904
|
storage.js: Properly check if we have any keys left before clearing the storage
|
2019-07-26 07:36:17 +02:00 |
Johannes Meyer
|
8893db0cbc
|
js: Drop a StorageAwareMap entirely from storage if all keys expired
|
2019-07-18 07:43:42 +02:00 |
Johannes Meyer
|
cfa3af51db
|
storage.js: Don't return in `StorageAwareMap.forEach`
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
c976eb48c9
|
storage.js: Properly handle invalid values
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
2280551484
|
storage.js: Use substring instead of startsWith on strings
IE11 doesn't support startsWith..
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
f11de266f4
|
storage.js: Avoid to call JSON.parse with an empty string
IE11 seems not to like this..
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
9561057b81
|
storage.js: Allow to subscribe with multiple handlers to the same key
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
2bf050f57d
|
storage.js: Don't use the native event mechanism but a simple callback handling
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
2fd7ba5aed
|
storage.js: Utilize a single event listener for all storage events
It doesn't make sense to register an event listener for every
created storage instance. They're all using entirely different
keys after all.
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
2ac848828a
|
storage.js: Prevent conflicts with other apps accessing the same storage
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
0f16e20d92
|
storage.js: Write `null` instead of `undefined` to the storage
`undefined` causes the key to be ignored by JSON.stringify
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
383895fd92
|
storage.js: Pass the value to event subscribers of StorageAwareMap
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
8937e11a09
|
storage.js: Properly handle if keys are entirely removed
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
363486277b
|
storage.js: Rename Storage.subscribe to onChange
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
c5beabf891
|
storage.js: Cleanup `StorageAwareMap` key corpses after 90 days
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
cbd1e1bb92
|
storage.js: Drop `StorageAwareSet` and replace it with `StorageAwareMap`
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
8377a2d096
|
storage.js: Don't use .bind() to define a callbacks context
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
03fc052749
|
storage.js: Directly use scope `window` to access `localStorage`
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
95dee43f5b
|
storage.js: Just use a factory to create behavior storages
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
3b7a1a5ab4
|
storage.js: Add method `on` to `StorageAwareSet`
|
2019-07-17 13:12:41 +02:00 |
Johannes Meyer
|
e2cddc2d46
|
js: Introduce storage.js, a localStorage abstraction layer
|
2019-07-17 13:12:41 +02:00 |