Home

Awesome

choo-promise Build Status

A plugin for choo (or barracks) that allows you to return promises to end effects and subscriptions. The send function passed to effects and subscriptions is also promisified.

Installing

npm install choo-promise

Example usage

var choo = require('choo')
var chooPromise = require('choo-promise')
var Bluebird = require('bluebird')

var app = choo()
// You can optionally provide your own promise implementation
app.use(chooPromise({ Promise: Bluebird }))

app.model({
  state: { value: null }
  effects: {
    updateValue: async (state, data, send) => {
      var value = await fetchSomeData(data)
      return send('setValue', { value })
    }
  },
  subscriptions: {
    initValue: (send) => {
      var value = await fetchSomeData(data)
      return send('setValue', { value })
    }
  }
})

Isn't there another package that does this?

Yup! There's barracks-promisify-plugin, which does pretty much exactly the same thing. The only differences (at the time of writing) are: