import { ActionReducerMap, ActionReducer, MetaReducer } from '@ngrx/store'; import { environment } from '../environments/environment'; import * as fromRouter from '@ngrx/router-store'; export interface State { router: fromRouter.RouterReducerState; } export const reducers: ActionReducerMap<State> = { router: fromRouter.routerReducer }; export function logger(reducer: ActionReducer<State>): ActionReducer<State> { return (state: State, action: any): State => { console.group(action.type); const nextState = reducer(state, action); console.log(`%c prev state`, `color: #9E9E9E; font-weight: bold`, state); console.log(`%c action`, `color: #03A9F4; font-weight: bold`, action); console.log(`%c next state`, `color: #4CAF50; font-weight: bold`, nextState); console.groupEnd(); return nextState; }; } export const metaReducers: MetaReducer<State>[] = !environment.production ? [logger] : [];