E.W.O. Next / All files / src/client store.ts

47.62% Statements 10/21
33.33% Branches 2/6
50% Functions 1/2
47.62% Lines 10/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44          3x 3x 3x 3x   3x   3x   3x       3x   3x                                       3x      
/**
 * @module Client.Store
 * Redux Store
 */
 
import { applyMiddleware, compose, createStore as reduxCreateStore, Store } from 'redux';
import { createLogger } from 'redux-logger';
import reduxThunk from 'redux-thunk';
import rootReducer, { IStateFrontend } from './reducers';
 
export const createStore = (socketSendMiddleware?, initialState?): Store<IStateFrontend> => {
 
  const middlewares = [reduxThunk];
 
  Iif (socketSendMiddleware) {
    middlewares.push(socketSendMiddleware);
  }
 
  const hasLog = ['1', 'true', 'action'].includes(process.env.CLIENT_LOG);
 
  Iif (hasLog) {
 
    const onlyAction = process.env.CLIENT_LOG === 'action';
 
    const EmptyStateTransformer = () => {
      return null;
    };
 
    const options: any = {};
 
    if (onlyAction) {
      options.stateTransformer = EmptyStateTransformer;
      options.collapsed = true;
      options.duration = true;
    }
 
    const logger = createLogger(options);
    middlewares.push(logger);
  }
 
  return reduxCreateStore(rootReducer, initialState, compose(applyMiddleware(...middlewares)));
 
};