Awesome
choo-offline
offline first support for choo apps
Installation
npm install --save choo-offline
Usage
const choo = require('choo')
const offline = require('choo-offline')
const app = choo()
offline(offline => {
app.use(offline)
const tree = app.start()
document.body.appendChild(tree)
})
API
offline([opts], fn())
Function that wraps the choo start
and use
methods, only needed for this plugin, other plugins can be registered before.
It can take two parameters.
opts
Type: Object
Optional configuration object for the plugin, can take the following options:
serviceWorker
(String): A string with the relative path to a service worker file, if not provided, it will not install a service worker. Defaults:''
.dbConfig
(Object): An object with localforage config.
fn
Type: Function
Required function that get as the only argument, the offline plugin object. The object use the following hooks:
-
onStateChange
: To update the app state locally with localforage. -
onAction
: To check if the app is offline and, if it is, use a backup action. Use the backup function when you have actions that depend on network availability, just define a_backup
option in yoursend()
data, the_backup
option must be a string calling an effect or reducer from your model. For examplesend('xhrEffect', { foo: bar, _backup: 'nonXhrBackup' })
The above statement will call
xhrEffect
normally, but when offline, it will call thenonXhrBackup
effect|reducer, passing the same data, excluding the _backup strings. -
wrapInitialState
: To get the initial local state.
License
MIT
Crafted with <3 by YerkoPalma .
This package was initially generated with yeoman and the p generator.