import { isNotEmpty } from './shared/empty.util'; import { StoreActionTypes } from './store.actions'; // fallback ngrx debugger let actionCounter = 0; export function debugMetaReducer(reducer) { return (state, action) => { actionCounter++; console.log('@ngrx action', actionCounter, action.type); console.log('state', JSON.stringify(state)); console.log('action', JSON.stringify(action)); console.log('------------------------------------'); return reducer(state, action); } } export function universalMetaReducer(reducer) { return (state, action) => { switch (action.type) { case StoreActionTypes.REHYDRATE: state = Object.assign({}, state, action.payload); break; case StoreActionTypes.REPLAY: default: break; } return reducer(state, action); } } export const debugMetaReducers = [ debugMetaReducer ]; export const appMetaReducers = [ universalMetaReducer ];