redux-saga-event-iterator

1.1.0 • Public • Published

redux-saga-event-iterator

Build Status Coverage Status

An easy way of consuming an EventEmitter (e.g. socket.io) in redux-saga

Installation

Install using npm:

$ npm install --save redux-saga-event-iterator

Example

import {call} from 'redux-saga/effects';
import eventIterator from 'redux-saga-event-iterator';
import io from 'socket.io-client';
 
const socketClient = io('localhost:12345');
 
const listenerSaga = function * (eventName) {
  const {nextEvent, removeListener} = yield call(eventIterator, socketClient, eventName);
 
  while (true) {
    const payload = yield call(nextEvent);
 
    // Do something with payload
  }
 
  // Optionally remove listener, further calls to nextEvent will throw an error
  yield call(removeListener);
};

Testing

To run the tests:

$ npm test

Contributing

Feel free to create a pull request. Make sure to lint and test:

$ npm run lint && npm run test

License

MIT - see LICENSE

Package Sidebar

Install

npm i redux-saga-event-iterator

Weekly Downloads

3

Version

1.1.0

License

MIT

Last publish

Collaborators

  • claudiorodriguez