Deep merging of objects, found & copied from this Gist, and on Ramda.js. As always, feel free to make it better! 🐛🐞🐜.

const mergePlan = (x, y) => {
  if(Array.isArray(x) && Array.isArray(y)) {
    return uniq(concat(x, y));
  }

  if(typeof x === 'object' && typeof y === 'object'){
    return mergeWith(mergePlan, x, y)
  }

  return y;
}

const deepMerge = mergeWith(mergePlan);

Example