Storage wrapper with support for namespacing, timeouts and multi get/set and remove.
This module is a small wrapper around the local and session storage.
Install the package locally within you project folder with your package manager:
With npm
:
npm install stoor
With yarn
:
yarn add stoor
With pnpm
:
pnpm add stoor
var things = new Stoor({ namespace: 'things' }) // Namespaced to things and uses local storage var otherThings = new Stoor({ namespace: 'otherThings', storage: 'session' }) // Namespaced to other things and uses Session storage things.set('foo', 1) things.set('bar', 2) things.set('baz', { foo: 4, baz: 4 }) console.log(things.get('baz')) // {foo: 4, baz: 4} console.log(otherThings.get('baz')) // null console.log(things.get(['foo', 'bar'])) // [1, 2] things.remove(['foo', 'bar']) console.log(things.get(['foo', 'bar'])) // [null, null] otherThings.set([['bar', 5], ['foo', 6]]) // Array of key value pairs to multi set console.log(otherThings.get(['foo', 'bar'])) // [6, 5] otherThings.set('nana', 1, 5000) // Will expire within 5000 ms. otherThings.get('nana', 3) // Returns default value if expired. things.clear()
You can configure any module that conforms to the the localStorage/sessionStorage API to be the fallback or main method of storage.
For example using cookie-session-storage:
new Stoor({fallback: cookieSessionStorage}) new Stoor({storage: cookieSessionStorage})
For all configuration options, please see the API docs.
Got an idea for a new feature? Found a bug? Contributions are welcome! Please open up an issue or make a pull request.