A simple event bus inspired by redux-saga. Framework agnostic.
$ npm i -S saga-lite
First, create an instance of the saga in your app root:
//saga.js
import {createSaga} from 'saga-lite';
export default createSaga();
Now you may import your saga.js module, and handle/dispatch actions:
import saga from './saga.js';
saga.handle('MY_ACTION_TYPE', action => {
console.log('handling', action);
});
import saga from './saga.js';
saga.dispatch({
type: 'MY_ACTION_TYPE',
myActionParam: 'foo'
});
You may wait for an action dispatch by using "take":
import saga from './saga.js';
saga.handle('MY_ACTION_TYPE', async action => {
const action2 = await saga.take('MY_ACTION_TYPE_2');
});