{"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"dist-tags":{"latest":"0.5.3","prerelease":"0.6.0-alpha"},"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"description":"FSA-compliant promise middleware for Redux.","readme":"redux-promise\n=============\n\n[![build status](https://img.shields.io/travis/acdlite/redux-promise/master.svg?style=flat-square)](https://travis-ci.org/acdlite/redux-promise)\n[![npm version](https://img.shields.io/npm/v/redux-promise.svg?style=flat-square)](https://www.npmjs.com/package/redux-promise)\n\n[FSA](https://github.com/acdlite/flux-standard-action)-compliant promise [middleware](https://github.com/gaearon/redux/blob/master/docs/middleware.md) for Redux.\n\n```js\nnpm install --save redux-promise\n```\n\n## Usage\n\n```js\nimport promiseMiddleware from 'redux-promise';\n```\n\nThe default export is a middleware function. If it receives a promise, it will dispatch the resolved value of the promise. It will not dispatch anything if the promise rejects.\n\nIf it receives an Flux Standard Action whose `payload` is a promise, it will either\n\n- dispatch a copy of the action with the resolved value of the promise, and set `status` to `success`.\n- dispatch a copy of the action with the rejected value of the promise, and set `status` to `error`.\n\nThe middleware returns a promise to the caller so that it can wait for the operation to finish before continuing. This is especially useful for server-side rendering. If you find that a promise is not being returned, ensure that all middleware before it in the chain is also returning its `next()` call to the caller.\n\n## Using in combination with redux-actions\n\nBecause it supports FSA actions, you can use redux-promise in combination with [redux-actions](https://github.com/acdlite/redux-actions).\n\n### Example: Async action creators\n\nThis works just like in Flummox:\n\n```js\ncreateAction('FETCH_THING', async id => {\n  const result = await somePromise;\n  return result.someValue;\n});\n```\n\nUnlike Flummox, it will not perform a dispatch at the beginning of the operation, only at the end. We're still looking into the [best way to deal with optimistic updates](https://github.com/acdlite/flux-standard-action/issues/7). If you have a suggestion, let me know.\n\n\n### Example: Integrating with a web API module\n\nSay you have an API module that sends requests to a server. This is a common pattern in Flux apps. Assuming your module supports promises, it's really easy to create action creators that wrap around your API:\n\n```js\nimport { WebAPI } from '../utils/WebAPI';\n\nexport const getThing = createAction('GET_THING', WebAPI.getThing);\nexport const createThing = createAction('POST_THING', WebAPI.createThing);\nexport const updateThing = createAction('UPDATE_THING', WebAPI.updateThing);\nexport const deleteThing = createAction('DELETE_THING', WebAPI.deleteThing);\n```\n\n(You'll probably notice how this could be simplified this even further using something like lodash's `mapValues()`.)\n","repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"users":{"urbantumbleweed":true,"jlertle":true,"justdomepaul":true,"equimper":true,"dawsoju":true,"dmitryscaletta":true,"maurogestoso":true,"asm2hex":true,"aatrostle":true,"luisgamero":true,"jmsherry":true,"brainpoint":true,"fchienvuhoang":true,"mswanson1524":true,"fer0x":true,"leonardorb":true,"knoja4":true,"matiasherranz":true,"shakakira":true,"princetoad":true,"ablbol":true,"kaashin":true,"isenricho":true,"cblumer":true,"ayad":true,"serge-nikitin":true,"panlw":true,"learncode":true,"nisimjoseph":true},"bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"license":"MIT","versions":{"0.1.0":{"name":"redux-promise","version":"0.1.0","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"^0.1.0"},"gitHead":"6ab41f1b8cff82f0f03e049cf8290b3288ca5178","_id":"redux-promise@0.1.0","_shasum":"ff6655443871274fe187f1e1e09f1c37d4751cbc","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"opengov_dev","email":"services+npmjs-user@opengov.com"},"dist":{"shasum":"ff6655443871274fe187f1e1e09f1c37d4751cbc","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.1.0.tgz"},"maintainers":[{"name":"opengov_dev","email":"services+npmjs-user@opengov.com"}],"directories":{}},"0.1.1":{"name":"redux-promise","version":"0.1.1","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"^0.1.0"},"gitHead":"ac66eea8ab21da54848a3ebfa0da494477f98293","_id":"redux-promise@0.1.1","_shasum":"e83a753c702b6af6b2b8aa3ebf482fda5598fc17","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"e83a753c702b6af6b2b8aa3ebf482fda5598fc17","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.1.1.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.2.0":{"name":"redux-promise","version":"0.2.0","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"^0.1.0"},"gitHead":"58cc5b7b278721cb8189b5f6f2bc834a2b346ae0","_id":"redux-promise@0.2.0","_shasum":"497b364ba96e79430e78ab75ec7000b44cf2ed5e","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"497b364ba96e79430e78ab75ec7000b44cf2ed5e","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.2.0.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.3.0":{"name":"redux-promise","version":"0.3.0","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"0.4.0"},"gitHead":"ec6089f95a8086e74de51d05f3a8c8830bef423a","_id":"redux-promise@0.3.0","_shasum":"e0891bd55fb526f6e7637d5d0eff32bb7066b4de","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"e0891bd55fb526f6e7637d5d0eff32bb7066b4de","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.3.0.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.4.0":{"name":"redux-promise","version":"0.4.0","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"0.6.0"},"gitHead":"9fa94f755c3dec73a2e06c57b3316c0022783f68","_id":"redux-promise@0.4.0","_shasum":"ab92dd4ee484d7a83a4366b27771caa0dd8242a5","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"ab92dd4ee484d7a83a4366b27771caa0dd8242a5","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.4.0.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.5.0":{"name":"redux-promise","version":"0.5.0","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"homepage":"https://github.com/acdlite/redux-promise","keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"0.6.0"},"gitHead":"c818842774b5e05466786c090d6db8cd02f2a614","bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"_id":"redux-promise@0.5.0","_shasum":"94cafed718fea0eec5e9adeeb5a2c663835a371c","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"94cafed718fea0eec5e9adeeb5a2c663835a371c","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.5.0.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.6.0-alpha":{"name":"redux-promise","version":"0.6.0-alpha","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"homepage":"https://github.com/acdlite/redux-promise","keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"0.6.0","lodash":"^3.10.0"},"gitHead":"50240d6c783025ff075bd8bbe739396fa634e503","bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"_id":"redux-promise@0.6.0-alpha","_shasum":"39c711a714185498ddf408659ddef20a4b8738eb","_from":".","_npmVersion":"2.12.0","_nodeVersion":"2.2.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"39c711a714185498ddf408659ddef20a4b8738eb","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.6.0-alpha.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.5.1":{"name":"redux-promise","version":"0.5.1","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"homepage":"https://github.com/acdlite/redux-promise","keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^3.1.20","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"0.6.0"},"gitHead":"1fe2ef333cfe03886edfd72840582d8f2af446f8","bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"_id":"redux-promise@0.5.1","_shasum":"44a6e2a2abde1fe3f22c402e235b3e3ca6678a6d","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"44a6e2a2abde1fe3f22c402e235b3e3ca6678a6d","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.5.1.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"directories":{}},"0.5.2":{"name":"redux-promise","version":"0.5.2","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"homepage":"https://github.com/acdlite/redux-promise","keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^5.0.0","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"^0.6.1"},"gitHead":"22447a573d91d86787911852f8d7de5dc13a936e","bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"_id":"redux-promise@0.5.2","_shasum":"4b59e839369df291a008ef306d553ae6154bffa1","_from":".","_npmVersion":"3.8.0","_nodeVersion":"4.3.0","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"4b59e839369df291a008ef306d553ae6154bffa1","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.5.2.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-promise-0.5.2.tgz_1458069895885_0.4332901705056429"},"directories":{}},"0.5.3":{"name":"redux-promise","version":"0.5.3","description":"FSA-compliant promise middleware for Redux.","main":"lib/index.js","scripts":{"test":"make test","prepublish":"make clean build"},"repository":{"type":"git","url":"git+https://github.com/acdlite/redux-promise.git"},"homepage":"https://github.com/acdlite/redux-promise","keywords":["redux","promise","middleware","redux-middleware","fsa","flux"],"author":{"name":"Andrew Clark","email":"acdlite@me.com"},"license":"MIT","devDependencies":{"babel":"^5.6.14","babel-core":"^5.6.15","babel-eslint":"^5.0.0","chai":"^3.0.0","chai-as-promised":"^5.1.0","eslint":"^0.24.0","eslint-config-airbnb":"0.0.6","mocha":"^2.2.5","sinon":"^1.15.4"},"dependencies":{"flux-standard-action":"^0.6.1"},"gitHead":"d2338adac128436a623e3e40a6624074d8d01a52","bugs":{"url":"https://github.com/acdlite/redux-promise/issues"},"_id":"redux-promise@0.5.3","_shasum":"e97e6c9d3bf376eacb79babe6d906da20112d6d8","_from":".","_npmVersion":"3.6.0","_nodeVersion":"5.7.1","_npmUser":{"name":"acdlite","email":"acdlite@me.com"},"dist":{"shasum":"e97e6c9d3bf376eacb79babe6d906da20112d6d8","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/redux-promise/-/redux-promise-0.5.3.tgz"},"maintainers":[{"name":"acdlite","email":"acdlite@me.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-promise-0.5.3.tgz_1458072064524_0.03246037848293781"},"directories":{}}},"name":"redux-promise","time":{"modified":"2017-04-22T18:23:52.347Z","created":"2015-07-02T02:00:49.570Z","0.1.0":"2015-07-02T02:00:49.570Z","0.1.1":"2015-07-02T05:23:36.767Z","0.2.0":"2015-07-02T06:36:14.729Z","0.3.0":"2015-07-02T19:39:19.958Z","0.4.0":"2015-07-03T18:35:19.331Z","0.5.0":"2015-07-15T20:50:08.683Z","0.6.0-alpha":"2015-07-16T22:22:35.187Z","0.5.1":"2016-01-19T19:58:09.233Z","0.5.2":"2016-03-15T19:24:56.367Z","0.5.3":"2016-03-15T20:01:05.135Z"},"readmeFilename":"README.md","homepage":"https://github.com/acdlite/redux-promise"}