Remove lodash from redux-devtools

This commit is contained in:
Nathan Bierema 2024-08-13 23:16:49 -04:00
parent 71b1261757
commit 5f07399f3b
3 changed files with 12 additions and 16 deletions

View File

@ -42,8 +42,7 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.25.0", "@babel/runtime": "^7.25.0",
"@redux-devtools/instrument": "^2.2.0", "@redux-devtools/instrument": "^2.2.0"
"lodash-es": "^4.17.21"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.24.8", "@babel/cli": "^7.24.8",
@ -54,7 +53,6 @@
"@babel/preset-react": "^7.24.7", "@babel/preset-react": "^7.24.7",
"@babel/preset-typescript": "^7.24.7", "@babel/preset-typescript": "^7.24.7",
"@types/jest": "^29.5.12", "@types/jest": "^29.5.12",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.14.14", "@types/node": "^20.14.14",
"@types/react": "^18.3.3", "@types/react": "^18.3.3",
"jest": "^29.7.0", "jest": "^29.7.0",

View File

@ -1,11 +1,10 @@
import { identity, mapValues } from 'lodash-es';
import { Action, Reducer, StoreEnhancer } from 'redux'; import { Action, Reducer, StoreEnhancer } from 'redux';
import { LiftedState } from '@redux-devtools/instrument'; import { LiftedState } from '@redux-devtools/instrument';
export default function persistState<S, A extends Action<string>, MonitorState>( export default function persistState<S, A extends Action<string>, MonitorState>(
sessionId?: string | null, sessionId?: string | null,
deserializeState: (state: S) => S = identity, deserializeState: (state: S) => S = (state) => state,
deserializeAction: (action: A) => A = identity, deserializeAction: (action: A) => A = (state) => state,
): StoreEnhancer { ): StoreEnhancer {
if (!sessionId) { if (!sessionId) {
return (next) => return (next) =>
@ -18,10 +17,15 @@ export default function persistState<S, A extends Action<string>, MonitorState>(
): LiftedState<S, A, MonitorState> { ): LiftedState<S, A, MonitorState> {
return { return {
...state, ...state,
actionsById: mapValues(state.actionsById, (liftedAction) => ({ actionsById: Object.fromEntries(
...liftedAction, Object.entries(state.actionsById).map(([actionId, liftedAction]) => [
action: deserializeAction(liftedAction.action), actionId,
})), {
...liftedAction,
action: deserializeAction(liftedAction.action),
},
]),
),
committedState: deserializeState(state.committedState), committedState: deserializeState(state.committedState),
computedStates: state.computedStates.map((computedState) => ({ computedStates: state.computedStates.map((computedState) => ({
...computedState, ...computedState,

View File

@ -617,9 +617,6 @@ importers:
'@redux-devtools/instrument': '@redux-devtools/instrument':
specifier: ^2.2.0 specifier: ^2.2.0
version: link:../redux-devtools-instrument version: link:../redux-devtools-instrument
lodash-es:
specifier: ^4.17.21
version: 4.17.21
devDependencies: devDependencies:
'@babel/cli': '@babel/cli':
specifier: ^7.24.8 specifier: ^7.24.8
@ -645,9 +642,6 @@ importers:
'@types/jest': '@types/jest':
specifier: ^29.5.12 specifier: ^29.5.12
version: 29.5.12 version: 29.5.12
'@types/lodash-es':
specifier: ^4.17.12
version: 4.17.12
'@types/node': '@types/node':
specifier: ^20.14.14 specifier: ^20.14.14
version: 20.14.14 version: 20.14.14