Skip to content

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

License

Notifications You must be signed in to change notification settings

claudiorodriguez/redux-saga-event-iterator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published