1import autoresetSaga from '../actions/autoreset'
2import botsSaga from '../actions/bots'
3import chat2Saga from '../actions/chat2'
4import cryptoSaga from '../actions/crypto'
5import configSaga from '../actions/config'
6import createSagaMiddleware from 'redux-saga'
7import deeplinksSaga from '../actions/deeplinks'
8import deviceSaga from '../actions/devices'
9import fsSaga from '../actions/fs'
10import gitSaga from '../actions/git'
11import gregorSaga from '../actions/gregor'
12import loginSaga from '../actions/login'
13import provisionSaga from '../actions/provision'
14import notificationsSaga from '../actions/notifications'
15import peopleSaga from '../actions/people'
16import pinentrySaga from '../actions/pinentry'
17import profileSaga from '../actions/profile'
18import recoverPasswordSaga from '../actions/recover-password'
19import tracker2Saga from '../actions/tracker2'
20import settingsSaga from '../actions/settings'
21import signupSaga from '../actions/signup'
22import teamsSaga from '../actions/teams'
23import unlockFoldersSaga from '../actions/unlock-folders'
24import usersSaga from '../actions/users'
25import walletsSaga from '../actions/wallets'
26import * as Saga from '../util/saga'
27
28function* mainSaga() {
29  yield Saga.spawn(autoresetSaga)
30  yield Saga.spawn(botsSaga)
31  yield Saga.spawn(chat2Saga)
32  yield Saga.spawn(cryptoSaga)
33  yield Saga.spawn(configSaga)
34  yield Saga.spawn(deeplinksSaga)
35  yield Saga.spawn(deviceSaga)
36  yield Saga.spawn(fsSaga)
37  yield Saga.spawn(gregorSaga)
38  yield Saga.spawn(loginSaga)
39  yield Saga.spawn(provisionSaga)
40  yield Saga.spawn(notificationsSaga)
41  yield Saga.spawn(pinentrySaga)
42  yield Saga.spawn(profileSaga)
43  yield Saga.spawn(recoverPasswordSaga)
44  yield Saga.spawn(tracker2Saga)
45  yield Saga.spawn(settingsSaga)
46  yield Saga.spawn(teamsSaga)
47  yield Saga.spawn(unlockFoldersSaga)
48  yield Saga.spawn(usersSaga)
49  yield Saga.spawn(gitSaga)
50  yield Saga.spawn(peopleSaga)
51  yield Saga.spawn(walletsSaga)
52  yield Saga.spawn(signupSaga)
53}
54
55let middleWare
56function create(crashHandler: (err: any) => void) {
57  if (!__DEV__ && middleWare) {
58    throw new Error('Only create one saga middleware!')
59  }
60  middleWare = createSagaMiddleware({
61    onError: crashHandler,
62  })
63  return middleWare
64}
65
66function run() {
67  middleWare && middleWare.run(mainSaga)
68}
69
70export {create, run}
71