freeCodeCamp/common/utils/index.js

17 lines
360 B
JavaScript

export function nameSpacedTransformer(ns, transformer) {
if (!transformer) {
return nameSpacedTransformer.bind(null, ns);
}
return (state) => {
const newState = transformer(state[ns]);
// nothing has changed
// noop
if (!newState || newState === state[ns]) {
return null;
}
return { ...state, [ns]: newState };
};
}