Rolling Storage
Rolling storage provides an API to localStorage and sessionStorage (or anything that implements the storage interface) that provides expiration and a maximum size.
Basic Usage
var rollingStorage = ; var storedItems = // setstoredItems; // accessstoredItems; // truestoredItems; // 'hello!' // removestoredItems; // now it's gonestoredItems; // falsestoredItems; // undefined
Creating an Instance
Each instance of rollingStorage has a namspace, a ttl, a maximum size, and must be provided with a storage strategy.
namespace
- This keeps instances of rollingStorage separate. Can be any string.ttl
- The expiration time of values in milliseconds.maxSize
- The max size of this namespace. Old elements will be removed when this limit is exceeded.storage
- Probably localStorage or sessionStorage, but can be anything that implements the Storage API.
Using an Instace
Instance methods:
instance.set(key, value)
- sets a value. Value can be any type that can be run through JSON.stringify.instance.get(key)
- gets a value from storage or undefined if the key doesn't exist.instance.has(key)
- returns true if this key exists, false otherwise.instance.remove(key)
- removes a key from storage.instance.flush()
- removes all values from this instance.
Running The Tests
The tests were written with Jasmine and Testem.
npm install -g testem
testem
- Open http://localhost:7357