From 87cb73a6af924460cb43fdc3d2c03e6d8e6114f3 Mon Sep 17 00:00:00 2001 From: Natasha Osborne Date: Fri, 6 Oct 2017 17:53:16 -0600 Subject: [PATCH 1/3] Fix Circle CI badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 373315f..bc49eec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # redux-middleware-workers -![CircleCI](https://circleci.com/gh/Natasha08/redux-middleware-workers/tree/master.svg?style=shield&circle-token=:circle-token) +[![CircleCI](https://circleci.com/gh/Natasha08/redux-middleware-workers.svg?style=shield)](https://circleci.com/gh/Natasha08/redux-middleware-workers) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![7.10.0](https://badge.fury.io/js/npm.svg)](https://badge.fury.io/js/npm) From 83dd177277e7f3b03830cba903b5cd4e5445b6e0 Mon Sep 17 00:00:00 2001 From: Natasha Osborne Date: Fri, 6 Oct 2017 17:54:48 -0600 Subject: [PATCH 2/3] Give npm badge correct version series --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc49eec..587e785 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CircleCI](https://circleci.com/gh/Natasha08/redux-middleware-workers.svg?style=shield)](https://circleci.com/gh/Natasha08/redux-middleware-workers) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -[![7.10.0](https://badge.fury.io/js/npm.svg)](https://badge.fury.io/js/npm) +![7.10.0](https://img.shields.io/npm/v/@cycle/core.svg) ## Recommended Technologies [webpack](https://github.com/webpack/webpack) From fcf209bf0394c46f7e7f5c98504173e28bca881e Mon Sep 17 00:00:00 2001 From: Natasha Osborne Date: Mon, 16 Oct 2017 10:12:01 -0600 Subject: [PATCH 3/3] WIP - added a middleware and store example in the README. --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/README.md b/README.md index 587e785..b57c853 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,55 @@ [webpack](https://github.com/webpack/webpack) [worker-loader](https://github.com/webpack-contrib/worker-loader) +### Install package `npm i -save redux-middleware-workers` `yarn add redux-middleware-workers` +### Example + +``` +// middleware.js + +// worker loader is a webpack package that loads the worker for you. + +import firstWorker from 'worker-loader?inline!./first_worker.js'; +import secondWorker from 'worker-loader?inline!./second_worker.js'; +import newWorkerMiddleware from 'redux-middleware-workers'; + +const injectObjects = (action, getState) => { + const objects = _.get(getState(), 'objects', []); + return { ...action, objects }; +}; + +const injectStore = (action, getState) => { + const store = getState(); + return { ...action, store }; +}; + +const firstWorkerMiddleware = newWorkerMiddleware(new firstWorker(), 'FIRST_WORKER', injectObjects); +const secondWorkerMiddleware = newWorkerMiddleware(new appStorage(), 'SECOND_WORKER', injectStore); + +export default [firstWorkerMiddleware, secondWorkerMiddleware]; +``` + +``` +// store.js + +import { createStore, applyMiddleware } from 'redux'; +import workerMiddleware from './workers/middleware'; +import rootReducer from './reducers/index'; + +const store = createStore( + rootReducer, + undefined, + applyMiddleware(...workerMiddleware) +); + +export default store; +``` + +[Here](https://github.com/Natasha08/redux-middleware-workers-example) is a working example using multiple webworkers. + ## Testing `yarn test` `npm test`