Skip to content

Commit 2ed022d

Browse files
committed
Trying to combat redux devtools crashing
Before crashing it at least complains it is going to be slow and consume a huge amount of memory. That is described here: https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/Troubleshooting.md#excessive-use-of-memory-and-cpu In there is a link to a more useful example: zalmoxisus/redux-devtools-extension#455 Latest conversation seems to be here: zalmoxisus/redux-devtools-extension#619 Signed-off-by: michael sorens <[email protected]>
1 parent 4506651 commit 2ed022d

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

components/automate-ui/src/app/app.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { StoreDevtoolsModule } from '@ngrx/store-devtools';
1717
import { StoreModule } from '@ngrx/store';
1818
import { StoreRouterConnectingModule } from '@ngrx/router-store';
1919
import { NgrxEffectsModule } from './ngrx.effects';
20-
import { ngrxReducers, RouterSerializer, runtimeChecks } from './ngrx.reducers';
20+
import { ngrxReducers, RouterSerializer, runtimeChecks, actionSanitizer, stateSanitizer } from './ngrx.reducers';
2121

2222
// angular material stuff
2323
import {
@@ -276,7 +276,8 @@ import { WelcomeModalComponent } from './page-components/welcome-modal/welcome-m
276276
StoreRouterConnectingModule.forRoot({
277277
serializer: RouterSerializer
278278
}),
279-
!environment.production ? StoreDevtoolsModule.instrument({ maxAge: 25 }) : []
279+
environment.production ? []
280+
: StoreDevtoolsModule.instrument({ maxAge: 25 /* states */, actionSanitizer, stateSanitizer })
280281
],
281282
providers: [
282283
ApiTokenRequests,

components/automate-ui/src/app/ngrx.reducers.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,26 @@ export const ngrxReducers = {
250250
users: userEntity.userEntityReducer,
251251
userSelf: userSelfEntity.userSelfEntityReducer
252252
};
253+
254+
export const actionSanitizer = action => {
255+
const uiRouterActions = /@ui-router.+/g;
256+
return uiRouterActions.test(action.type)
257+
? { type: action.type, transition: sanitizeUIRouterTransition(action.transition) }
258+
: action;
259+
};
260+
export const stateSanitizer = (state): any => {
261+
if (state.router && state.router.last && state.router.last) {
262+
return {
263+
...state,
264+
router: sanitizeUIRouterTransition(state.router.last)
265+
};
266+
}
267+
return state;
268+
};
269+
const sanitizeUIRouterTransition = (transition): any => ({
270+
params: transition.router && transition.router.globals && transition.router.globals.params,
271+
current: transition.router && transition.router.globals && transition.router.globals.current,
272+
targetState: transition.targetState && transition.targetState().state(),
273+
from: transition.from && transition.from(),
274+
to: transition.to && transition.to()
275+
});

0 commit comments

Comments
 (0)