import { all, takeEvery, takeLatest } from 'redux-saga/effects'; import { failuresSaga } from './failure'; import { FETCH_BOARDS_REQUEST, SAVE_BOARD_REQUEST, DELETE_BOARD_REQUEST } from '../actions/boards'; import { fetchBoardsSaga, saveBoardSaga, deleteBoardSaga } from './boards'; import { FETCH_ISSUES_REQUEST, ADD_LABEL_REQUEST, REMOVE_LABEL_REQUEST, CREATE_ISSUE_REQUEST, CREATE_ISSUE_SUCCESS } from '../actions/issues'; import { fetchIssuesSaga, addLabelSaga, removeLabelSaga, createIssueSaga } from './issues'; import { FETCH_PROJECTS_REQUEST } from '../actions/projects'; import { fetchProjectsSaga } from './projects'; import { LOGOUT_REQUEST, LOGOUT_SUCCESS } from '../actions/logout'; import { logoutSaga, logoutSuccessSaga } from './logout'; import { BUILD_KANBOARD_REQUEST, MOVE_CARD } from '../actions/kanboards'; import { buildKanboardSaga, moveCardSaga, refreshKanboardSaga } from './kanboards'; export function* rootSaga() { yield all([ takeEvery(patternFromRegExp(/^.*_FAILURE/), failuresSaga), takeLatest(FETCH_BOARDS_REQUEST, fetchBoardsSaga), takeLatest(BUILD_KANBOARD_REQUEST, buildKanboardSaga), takeLatest(SAVE_BOARD_REQUEST, saveBoardSaga), takeLatest(DELETE_BOARD_REQUEST, deleteBoardSaga), takeLatest(FETCH_ISSUES_REQUEST, fetchIssuesSaga), takeLatest(FETCH_PROJECTS_REQUEST, fetchProjectsSaga), takeEvery(MOVE_CARD, moveCardSaga), takeEvery(ADD_LABEL_REQUEST, addLabelSaga), takeEvery(REMOVE_LABEL_REQUEST, removeLabelSaga), takeLatest(CREATE_ISSUE_REQUEST, createIssueSaga), takeLatest(CREATE_ISSUE_SUCCESS, refreshKanboardSaga), takeLatest(LOGOUT_REQUEST, logoutSaga), takeLatest(LOGOUT_SUCCESS, logoutSuccessSaga) ]); } export function patternFromRegExp(re: any) { return (action: any) => { return re.test(action.type); }; }