How to use the redux-saga function in redux-saga

To help you get started, we’ve selected a few redux-saga examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github happylinks / blrplt / client / store.js View on Github external
// @flow
import { createStore, applyMiddleware, compose } from 'redux';
import createSagaMiddleware, { END } from 'redux-saga';
import createLogger from 'redux-logger';

import rootReducer from 'reducers';

import appConfig from '../config/main';

const sagaMiddleware = createSagaMiddleware();
const devtools = typeof window === 'object' && window.devToolsExtension ?
  window.devToolsExtension :
  (() => noop => noop);

export default function configureStore(initialState: Object) {
  const middlewares = [
    sagaMiddleware,
  ];

  if (appConfig.env !== 'production' && process.env.BROWSER) {
    const logger = createLogger();
    middlewares.push(logger);
  }

  const enhancers = [
    applyMiddleware(...middlewares),
github platformio / platformio-atom-ide / lib / core / store.js View on Github external
export function initStore(preloadedState) {
  const sagaMiddleware = createSagaMiddleware();
  const middlewares = [sagaMiddleware];
  try {
    middlewares.push(require('redux-logger').logger);
  }
  // eslint-disable-next-line no-empty
  catch (_) {}
  const store = createStore(
    rootReducer,
    preloadedState || {},
    applyMiddleware(...middlewares)
  );
  store.close = () => store.dispatch(END);
  sagaMiddleware.run(rootSaga);
  storeInstance = store;
  return store;
}
github jiggum / redux-batched-dispatch / test / createBatchEnhancer.spec.js View on Github external
it('dispatch batched actions before saga', async done => {
      function* createTodo() {
        yield put(addTodo('Hello'))
        const response = yield call(mockFetch, { response: 'Actions' })
        yield put(addTodo(response))
      }

      function* mySaga() {
        yield takeEvery(REQUEST_ADD_TODO, createTodo)
      }

      const sagaMiddleware = createSagaMiddleware()

      const store = createStore(
        reducers.todos,
        createBatchEnhancer(applyMiddleware(sagaMiddleware)),
      )

      sagaMiddleware.run(mySaga)

      function* stateCheckerGen() {
        yield expect(store.getState()).toEqual([
          {
            id: 1,
            text: 'Hello',
          },
          {
            id: 2,
github quiltdata / quilt / catalog / app / utils / SagaInjector.js View on Github external
export const withSaga = (...sagaMWArgs) => (createStore) => (...args) => {
  const sagaMiddleware = createSagaMiddleware(...sagaMWArgs)
  const store = applyMiddleware(sagaMiddleware)(createStore)(...args)
  return {
    ...store,
    runSaga: sagaMiddleware.run,
  }
}
github supercomments / supercomments / src / store / configureStore.dev.js View on Github external
export default function configureStore() {
  const sagaMiddleware = createSagaMiddleware();

  const store = createStore(
    rootReducer,
    compose(
      applyMiddleware(
        sagaMiddleware,
        createLogger()
      ),
      window.devToolsExtension ? window.devToolsExtension() : value => value
    )
  );

  sagaMiddleware.run(rootSaga);

  if (module.hot) {
    module.hot.accept('../reducers', () => {
github RocketChat / Rocket.Chat.Electron / src / renderer / store.js View on Github external
export const setupStore = () => {
	const sagaMiddleware = createSagaMiddleware();

	const store = createStore(
		withDebug(rootReducer),
		getInitialStateRenderer(),
		applyMiddleware(forwardToMain, sagaMiddleware)
	);

	replayActionRenderer(store);

	if (process.env.NODE_ENV === 'development') {
		window.store = store;
	}

	resolve({ store, sagaMiddleware });
};
github moderntribe / events-gutenberg / plugins / common / src / modules / store / configure-store.js View on Github external
/**
 * External dependencies
 */
import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension/developmentOnly';
import { augmentStore } from '@nfen/redux-reducer-injector';
import thunk from 'redux-thunk';
import createSagaMiddleware from 'redux-saga';

/**
 * Internal dependencies
 */
import reducer from '@moderntribe/common/data';
import { wpRequest } from './middlewares';

const sagaMiddleware = createSagaMiddleware();

export default () => {
	if ( window.__tribe_common_store__ ) {
		return window.__tribe_common_store__;
	}

	const middlewares = [
		thunk,
		sagaMiddleware,
		wpRequest,
	];

	const composeEnhancers = composeWithDevTools( { name: 'tribe/common' } );

	const store = createStore( reducer( {} ), composeEnhancers( applyMiddleware( ...middlewares ) ) );
	augmentStore( reducer, store );
github wincent / corpus / src / app / configureStore.js View on Github external
export default function configureStore() {
  const sagaMiddleware = createSagaMiddleware();
  const store = createStore(reducer, applyMiddleware(sagaMiddleware));
  sagaMiddleware.run(saga);
  return store;
}
github tunepack / tunepack-desktop / src / renderer / utils / configureStore.js View on Github external
export const configureStore = (initialState = {}) => {
  const enhancers = []

  if (process.env.NODE_ENV === 'development' && window.__REDUX_DEVTOOLS_EXTENSION__) {
    enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__())
  }

  const sagaMiddleware = createSagaMiddleware()

  const ipcMiddleware = createIpc({
    [Channel.DOWNLOAD_PROGRESS]: (event, args) => {
      return downloadsActions.onDownloadProgress(args)
    },
    [Channel.DOWNLOAD_COMPLETE]: (event, args) => {
      return downloadsActions.onDownloadComplete(args)
    },
    [Channel.DOWNLOAD_ERROR]: (event, args) => {
      return downloadsActions.onDownloadError(args)
    },
    [Channel.SEARCH_FOUND]: (event, args) => {
      return downloadsActions.onSearchFound(args)
    },
    [Channel.UPDATE_SETTINGS]: (event, args) => {
      return settingsActions.onUpdateSettings(args)