choo-persist
Synchronize choo state with localStorage
Usage
var persist = require('choo-persist')
var choo = require('choo')
var app = choo()
app.use(persist())
API
instance = persist([opts])
Create a new indexedDB
database instance, and call the callback with the
plugin when done. Can take an optional first argument of options:
- opts.name: default
'app'
; provide a name for the indexedDB database - opts.filter(state): modify the state that's about to be written to the
IndexedDB database. Useful to strip values that cannot be serialized to
IndexedDB.
var xtend = require('xtend')
var opts = {
filter: function (state) {
state = xtend(state)
delete state.sadArrayFilledWithFunctions
return state
}
}
Installation
$ npm install choo-persist
Should I use this while developing.
No; state is persisted between page reloads which might put your page in very
odd states, with a very annoying way to clear. Consider using hot reloading for
development instead.
How / when should I invalidate the database cache?
Ah, this is where good ol' data persistance comes into play - there's loads of
approaches on this, but yeah you should def find a way to migrate data between
incompatible models. Perhaps some day we'll have a good chapter on this in the
choo handbook. Until then: have fun I guess?
License
MIT