Skip to content

Commit acbc8c4

Browse files
authored
Merge pull request #2 from Natasha08/readme-and-process
Readme and process
2 parents 35b6f12 + 3bafa82 commit acbc8c4

File tree

1 file changed

+48
-2
lines changed

1 file changed

+48
-2
lines changed

README.md

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,62 @@
11
# redux-middleware-workers
22

3-
![CircleCI](https://circleci.com/gh/Natasha08/redux-middleware-workers/tree/master.svg?style=shield&circle-token=:circle-token)
3+
[![CircleCI](https://circleci.com/gh/Natasha08/redux-middleware-workers.svg?style=shield)](https://circleci.com/gh/Natasha08/redux-middleware-workers)
44
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5-
[![7.10.0](https://badge.fury.io/js/npm.svg)](https://badge.fury.io/js/npm)
5+
![7.10.0](https://img.shields.io/npm/v/@cycle/core.svg)
66

77
## Recommended Technologies
88
[webpack](https://github.com/webpack/webpack)
99
[worker-loader](https://github.com/webpack-contrib/worker-loader)
1010

11+
### Install package
1112
`npm i -save redux-middleware-workers`
1213
`yarn add redux-middleware-workers`
1314

15+
### Example
16+
17+
```
18+
// middleware.js
19+
20+
// worker loader is a webpack package that loads the worker for you.
21+
22+
import firstWorker from 'worker-loader?inline!./first_worker.js';
23+
import secondWorker from 'worker-loader?inline!./second_worker.js';
24+
import newWorkerMiddleware from 'redux-middleware-workers';
25+
26+
const injectObjects = (action, getState) => {
27+
const objects = _.get(getState(), 'objects', []);
28+
return { ...action, objects };
29+
};
30+
31+
const injectStore = (action, getState) => {
32+
const store = getState();
33+
return { ...action, store };
34+
};
35+
36+
const firstWorkerMiddleware = newWorkerMiddleware(new firstWorker(), 'FIRST_WORKER', injectObjects);
37+
const secondWorkerMiddleware = newWorkerMiddleware(new appStorage(), 'SECOND_WORKER', injectStore);
38+
39+
export default [firstWorkerMiddleware, secondWorkerMiddleware];
40+
```
41+
42+
```
43+
// store.js
44+
45+
import { createStore, applyMiddleware } from 'redux';
46+
import workerMiddleware from './workers/middleware';
47+
import rootReducer from './reducers/index';
48+
49+
const store = createStore(
50+
rootReducer,
51+
undefined,
52+
applyMiddleware(...workerMiddleware)
53+
);
54+
55+
export default store;
56+
```
57+
58+
[Here](https://github.com/Natasha08/redux-middleware-workers-example) is a working example using multiple webworkers.
59+
1460
## Testing
1561
`yarn test`
1662
`npm test`

0 commit comments

Comments
 (0)