TypeScript FSA utilities for redux-saga
npm install typescript-fsa-redux-saga```
npm install --save typescript-fsa-redux-saga
Creates higher-order-saga that wraps target saga with async actions.
Resulting saga dispatches started action once started and done/failed
upon finish.
#### Options
* skipStartedAction: Set to true if you want to use started action as atakeLatest
trigger instead of an event. This is useful when using
/takeEvery and you want to avoid having to manually dispatch anstarted
extra trigger action. This way, you only have to manually dispatch an
action, and saga will dispatch done/failed upon finish.
Example:
`ts
// actions.ts
import actionCreatorFactory from 'typescript-fsa';
const actionCreator = actionCreatorFactory();
// specify parameters and result shapes as generic type arguments
export const doSomething =
actionCreator.async<{foo: string}, // parameter type
{bar: number} // result type
>('DO_SOMETHING');
// saga.ts
import {SagaIterator} from 'redux-saga';
import {call} from 'redux-saga/effects';
import {doSomething} from './actions';
const doSomethingWorker = bindAsyncAction(doSomething)(
function* (params): SagaIterator {
// params type is {foo: string}
const bar = yield call(fetchSomething, params.foo);
return {bar};
},
);
function* mySaga(): SagaIterator {
yield call(doSomethingWorker, {foo: 'lol'});
}
``
[npm-image]: https://badge.fury.io/js/typescript-fsa-redux-saga.svg
[npm-url]: https://badge.fury.io/js/typescript-fsa-redux-saga
[travis-image]: https://travis-ci.org/aikoven/typescript-fsa-redux-saga.svg?branch=master
[travis-url]: https://travis-ci.org/aikoven/typescript-fsa-redux-saga