TypeScript FSA utilities for redux-saga
![Build Status](https://camo.githubusercontent.com/0273d2f4321bc7b62cd05c4a048bb4d18e0740bbd73e918ae0d32fb7d4d867df/68747470733a2f2f7472617669732d63692e6f72672f61696b6f76656e2f747970657363726970742d6673612d72656475782d736167612e7376673f6272616e63683d6d6173746572)
Installation
npm install --save typescript-fsa-redux-saga
API
bindAsyncAction(actionCreators: AsyncActionCreators): HigherOrderSaga
Creates higher-order-saga that wraps target saga with async actions.
Resulting saga dispatches started
action once started and done
/failed
upon finish.
Example:
// 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'});
}