"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)
  }
}
