js-store

utilities for simple javascript stores
install
npm install --save js-store
usage
Simple Store
var jsStore = require('js-store');
var myStore = jsStore.createStore({foo: 'bar'});
myStore.setState({baz: 'qux'});
myStore.getState();
var cb = function() {
}
myStore.addChangeListener(cb);
myStore.setState({other: 'value'});
myStore.removeChangeListener(cb);
myStore.setState({other: 'another value'});
Store Collections
var jsStore = require('js-store');
var TeamsStore = jsStore.createCollectionStore('teams');
TeamsStore.getState();
TeamsStore.setState({teams: [
{id: 1, name: 'a'},
{id: 2, name: 'b'},
{id: 3, name: 'c'}
]});
TeamsStore.findById(2);
Store collections have a few helper methods to make it easier to work with the collection:
TeamStore.findById(2)
TeamStore.findIndex(obj)
TeamStore.add(item)
TeamStore.replace(item)
TeamStore.upsert(item)
TeamStore.destory(id)
Stores that sync with localStorage
var jsStore = require('js-store');
var TeamsStore = jsStore.createCollectionStore('teams', true);
Syncing with local storage is also available for simple stores. To do so pass along a string key to the createStore
method.
var jsStore = require('js-store');
var myStore = jsStore.createStore({}, 'myStore');
To make singleton stores for your client side app, simply export a creaetd store from a module
var jsStore = require('js-store');
var UserStore = jsStore.createStore({}, 'user');
module.exports = UserStore;