sharyn
Version:
Combines all the other packages under one.
28 lines (23 loc) • 639 B
Flow
// @flow
// flow-disable-next-line
import swit from '@sharyn/util/swit'
import {
asyncAsyncRequestCase,
asyncAsyncSuccessOrFailureCase,
asyncFetchPageRequestCase,
asyncFetchPageSuccessOrFailureCase,
asyncNavigationCase,
} from './async-cases'
const asyncReducer = (asyncState: Object = {}, { type, payload }: { type: string, payload: any }) =>
swit(
type,
[
asyncFetchPageRequestCase,
asyncAsyncRequestCase,
asyncNavigationCase,
asyncAsyncSuccessOrFailureCase,
asyncFetchPageSuccessOrFailureCase,
].map(c => c(asyncState, payload)),
asyncState,
)
export default asyncReducer