import { StoreDevtoolsModule } from '@ngrx/store-devtools'; import { ActionReducer, MetaReducer, StoreModule } from '@ngrx/store'; import { reduxLocalStorage } from './utils'; function localStorageSyncReducer(reducer: ActionReducer): any { return reduxLocalStorage()(reducer); } export const metaReducers: Array> = [localStorageSyncReducer]; export const ReduxModule = { forFeature: (featureName, reducer) => StoreModule.forFeature(featureName, reducer), forRoot: (reducer) => StoreModule.forRoot(reducer, { metaReducers }), devTools: (env) => !env.production ? StoreDevtoolsModule.instrument({ maxAge: 50 }) : [], };