2016-01-04 22:26:07 +00:00
|
|
|
export function nameSpacedTransformer(ns, transformer) {
|
|
|
|
if (!transformer) {
|
|
|
|
return nameSpacedTransformer.bind(null, ns);
|
|
|
|
}
|
|
|
|
return (state) => {
|
|
|
|
const newState = transformer(state[ns]);
|
2016-01-05 20:05:01 +00:00
|
|
|
|
2016-01-04 22:26:07 +00:00
|
|
|
// nothing has changed
|
2016-01-05 20:05:01 +00:00
|
|
|
// noop
|
|
|
|
if (!newState || newState === state[ns]) {
|
|
|
|
return null;
|
2016-01-04 22:26:07 +00:00
|
|
|
}
|
2016-01-05 20:05:01 +00:00
|
|
|
|
2016-01-04 22:26:07 +00:00
|
|
|
return { ...state, [ns]: newState };
|
|
|
|
};
|
|
|
|
}
|