コード例 #1
0
ファイル: configureStore.dev.js プロジェクト: D-EOS/eos-voter
const configureStore = (initialState, resourcePath) => {
  const middleware = [];

  middleware.push(thunk);

  const enhancer = compose(
    applyMiddleware(...middleware),
    electronEnhancer({
      dispatchProxy: a => store.dispatch(a),
    })
  );

  const persistedReducer = persistReducer(persistConfig, rootReducer);
  const store = createStore(persistedReducer, initialState, enhancer);
  const persistor = persistStore(store, null, () => {
    // Destroy any invalid settings that may have made its way into persistant storage
    store.dispatch({
      type: types.RESET_INVALID_SETTINGS
    });
    // Configure localization after the store has rehydrated to get the language from settings
    configureLocalization(resourcePath, store.getState());
  });

  if (module.hot) {
    module.hot.accept('../../reducers', () =>
      store.replaceReducer(require('../../reducers'))); // eslint-disable-line global-require
  }

  return { store, persistor };
};
コード例 #2
0
ファイル: app.js プロジェクト: k-rister/pbench
const persistEnhancer = () => createStore => (reducer, initialState, enhancer) => {
  const store = createStore(persistReducer(persistConfig, reducer), initialState, enhancer);
  const persist = persistStore(store, null);
  return {
    persist,
    ...store,
  };
};
コード例 #3
0
ファイル: store.js プロジェクト: krivera/webarrio-mobile
export default () => {
  const persistedReducer = persistReducer(persistConfig, reducers);
  const store = createStore(
    persistedReducer,
    undefined,
    applyMiddleware(thunk)
  );

  const persistor = persistStore(store);

  return { store, persistor };
}
コード例 #4
0
function configureStore(initialState, resourcePath) {
  const enhancer = compose(
    applyMiddleware(thunk),
    electronEnhancer({
      dispatchProxy: a => store.dispatch(a)
    })
  );
  const persistedReducer = persistReducer(persistConfig, rootReducer);
  const store = createStore(persistedReducer, initialState, enhancer);
  const persistor = persistStore(store, null, () => {
    // Destroy any invalid settings that may have made its way into persistant storage
    store.dispatch({
      type: types.RESET_INVALID_SETTINGS
    });
    // Configure localization after the store has rehydrated to get the language from settings
    configureLocalization(resourcePath, store.getState());
  });
  return { store, persistor };
}
コード例 #5
0
import { createStore, applyMiddleware, compose } from 'redux';
import createSagaMiddleware from 'redux-saga';
import { persistStore, persistReducer } from 'redux-persist';

import rootReducer from './reducers/rootReducer';
import rootSaga from './sagas/rootSaga';
import { storagePersistConfig } from '../config/storagePersist';

const sagaMiddleware = createSagaMiddleware();
// eslint-disable-next-line
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const middleware = composeEnhancers(applyMiddleware(sagaMiddleware));
const persistedReducer = persistReducer(storagePersistConfig, rootReducer);
const store = createStore(persistedReducer, middleware);
const persistor = persistStore(store);

sagaMiddleware.run(rootSaga);

export { store, persistor };
コード例 #6
0
ファイル: appStore.js プロジェクト: VocaDB/VocaDB-App
import { createStore, applyMiddleware } from 'redux'
import rootReducers from './appReducer'
// import loggerMiddleware from 'redux-logger'
import { navMiddleware } from './AppWithNavigationState'
import createSagaMiddleware from 'redux-saga'
import saga from './appSagas'
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage' // defaults to localStorage for web and AsyncStorage for react-native

const persistConfig = {
    key: 'root',
    storage,
    blacklist: ['nav'],
}

const persistedReducer = persistReducer(persistConfig, rootReducers)

const sagaMiddleware = createSagaMiddleware()


export default () => {
    let store = createStore(
        persistedReducer,
        applyMiddleware(
            // loggerMiddleware,
            navMiddleware,
            sagaMiddleware)
    )
    let persistor = persistStore(store)

    sagaMiddleware.run(saga)
コード例 #7
0
ファイル: store.js プロジェクト: Firmanc/giftable-frontend
const isProd: boolean = String(process.env.NODE_ENV) === 'production';
const composeEnhancers: Function = isProd ? compose : composeWithDevTools;
const epicMiddleware: Object = createEpicMiddleware();

export const history: Object = createHistory();

const persistConfig: Object = {
  key: 'root',
  storage,
  whitelist: ['auth'],
};

const middlewares: Array<any> = [
  epicMiddleware,
  routerMiddleware(history),
];

const persistedReducer: Object = persistReducer(persistConfig, reducers);

export function configureStore(): Object {
  const store: Object = createStore(
    persistedReducer,
    composeEnhancers(applyMiddleware(...middlewares)),
  );

  epicMiddleware.run(epics);

  return store;
}
コード例 #8
0
const configureStore = router => {
  const middlewares = [];
  // NOTE: Order is very important for middlewares - downstream can only intercept
  // upstream events

  // Thunks: async side effects
  middlewares.push(thunkMiddleware);

  // Persist (on client side) certain pieces of data
  const analyticsPersistConfig = {
    key: "analytics",
    storage,
    version: 0,
    migrate: createMigrate({ 0: state => ({ ...state }) }, { debug: false })
  };

  const authPersistConfig = {
    key: "auth",
    storage,
    version: 0,
    migrate: createMigrate({ 0: state => ({ ...state }) }, { debug: false })
  };

  const persistedReducer = combineReducers({
    ...rootReducerObject,
    analytics: persistReducer(
      analyticsPersistConfig,
      rootReducerObject.analytics
    ),
    auth: persistReducer(authPersistConfig, rootReducerObject.auth)
  });

  // Authentication middleware
  middlewares.push(createAuthMiddleware());

  // Analytics middleware
  /* eslint-disable no-undef */
  if (ANALYTICS === "yes") {
    /* eslint-enable no-undef */
    middlewares.push(createAnalyticsMiddleware());
  }

  // Router middleware
  middlewares.push(createRouter5Middleware(router));

  // Logging middleware - for debug purposes
  /* eslint-disable global-require */
  /* eslint-disable no-undef */
  if (NODE_ENV === "development") {
    /* eslint-enable no-undef */
    const { logger } = require("redux-logger");
    middlewares.push(logger);
  }
  /* eslint-enable global-require */

  const store = createStore(persistedReducer, applyMiddleware(...middlewares));

  // Sync router navigations to redux store
  router.usePlugin(router5ReduxPlugin(store.dispatch));

  return store;
};
// #region constants
export const history = createHistory();
// #endregion

// #region createStore : enhancer
const enhancer = composeWithDevTools(
  applyMiddleware(thunkMiddleware, fetchMiddleware, routerMiddleware(history)),
);
// #endregion

// #region persisted reducer
const persistConfig = {
  key: 'root',
  storage,
  blacklist: ['router'],
  // whitelist: ['userAuth'],
};

const persistedReducer = persistReducer(
  persistConfig,
  connectRouter(history)(reducer),
);
// #endregion

export default function configureStore(initialState: any = {}) {
  // $FlowIgnore
  const store = createStore(persistedReducer, initialState, enhancer);
  const persistor = persistStore(store);
  return { store, persistor };
}
コード例 #10
0
ファイル: store.js プロジェクト: suluping/eltwallet
      ...token,
      id: uuid.v4(),
    })),
  }),
};

const storage = createSensitiveStorage({
  encrypt: true,
  keychainService: 'eltwallet',
  sharedPreferencesName: 'eltwallet',
});

const persistConfig = {
  key: 'eltwallet',
  version: 1,
  storage,
  migrate: createMigrate(migrations, { debug: false }),
};

const store = createStore(
  persistReducer(persistConfig, rootReducer),
  defaultState,
  process.env.NODE_ENV === 'production'
    ? undefined
    : applyMiddleware(createLogger()),
);

const persistor = persistStore(store);

export { persistor, store };
コード例 #11
0
import { createLogger } from 'redux-logger';
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'

// import { getToken, setAuthorizationToken } from 'src/actions/authentication/auth.js';

const initialState = {};

const persistConfig = {
    key: 'root',
    storage: storage,
    whitelist: ['auth']
}

const persistedReducer = persistReducer(persistConfig, combineReducers({
    ...reducers,
    routing: routerReducer
}));

export default () => {
  let store = createStore(
        persistedReducer,
        applyMiddleware(
            thunk,
            createLogger({ predicate: () => process.env.NODE_ENV === 'development' })
        )
    )
  let persistor = persistStore(store)
  return { store, persistor }
}
コード例 #12
0
        });
      });
    } else {
      return Promise.resolve(state);
    }
  },
  serialize: false,
  storage: localStorage,

  // Disable redux-persist timeout functionality so it never erroneously wipes out the store. That's
  // never desired no matter how long the timeout lasts.
  //
  // See https://github.com/rt2zz/redux-persist/issues/809#issuecomment-437589932
  timeout: 0,
  version: 2,
};

const rootReducer = combineReducers({
  localStorage: persistReducer(localStoragePersistConfig, localStorageReducer),
  tempStorage: tempStorageReducer,
});

export default function() {
  // $FlowFixMe
  const store = createStore(rootReducer, applyMiddleware(thunk));
  return {
    persistor: persistStore(store),
    store,
  };
}