开发者社区> 镜像站> NPM> choo-offline
choo-offline
offline first support for choo apps
Last updated 4 years ago by yerkopalma .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install choo-offline 
SYNC missed versions from official npm registry.

choo-offline Build Status js-standard-style

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 your send() data, the _backup option must be a string calling an effect or reducer from your model. For example

       send('xhrEffect', { foo: bar, _backup: 'nonXhrBackup' })
    

    The above statement will call xhrEffect normally, but when offline, it will call the nonXhrBackup 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.

Current Tags

  • 0.1.3                                ...           latest (4 years ago)

4 Versions

  • 0.1.3                                ...           4 years ago
  • 0.1.2                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (4)
Dev Dependencies (5)
Dependents (0)
None