text: function isObject(testedValue) {
    return Object.prototype.toString.call(testedValue) === '[object Object]';
  }
  
  function mergeDeep(target, ...sources) {
    if (!sources.length) return target;
  
    const source = sources.shift();
  
    if (isObject(target) && isObject(source)) {
      for (const key in source) {
        if (isObject(source[key])) {
          if (!target[key]) {
            Object.assign(target, { [key]: {} });
          }
          mergeDeep(target[key], source[key]);
        } else {
          Object.assign(target, { [key]: source[key] });
        }
      }
    }
  
    return mergeDeep(target, ...sources);
  }
  
  module.exports = {
    isObject,
    mergeDeep,
  }
  