react-redux-provide
Version:
Build your UI with React. Manage application state with Redux providers. Persist and share application state with replication. Use pure functions everywhere.
31 lines (26 loc) • 773 B
JavaScript
export default function createKeyConcat(keys, unshift) {
let key = keys;
let getTarget = provider => provider;
if (Array.isArray(keys)) {
keys = [].concat(keys);
key = keys.pop();
getTarget = provider => keys.reduce((obj, key) => obj[key], provider);
}
return function (providers, value) {
for (let providerKey in providers) {
let target = getTarget(providers[providerKey]);
if (target) {
if (!target[key]) {
target[key] = [];
} else if (!Array.isArray(target[key])) {
target[key] = [ target[key] ];
}
if (unshift) {
target[key] = [].concat(value).concat(target[key]);
} else {
target[key] = target[key].concat(value);
}
}
}
}
}