"use strict";

const _ = require("lodash");

module.exports = function() {
  const mergeWithArgs = [{}];
  Array.from(arguments).forEach(arg => mergeWithArgs.push(arg));
  mergeWithArgs.push(mergeCustomizer);

  return _.mergeWith.apply(_, mergeWithArgs);
};

function mergeCustomizer(objValue, srcValue) {
  if (_.isArray(objValue, mergeCustomizer)) {
    return objValue.concat(srcValue);
  }
}