libraries/helpers.js

Summary

Maintainability
A
3 hrs
Test Coverage
/* eslint-disable no-restricted-syntax */

export default () => {};

export function dump(obj) {
  let out = '';
  for (const key in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, key)) {
      out += `${key}: ${obj[key]}\n`;
    }
  }

  return out;
}

export function mergeObjects(...args) {
  const dst = {};
  let src;
  let p;
  const aargs = [].splice.call(args, 0);

  while (aargs.length > 0) {
    const idx = 0;
    src = aargs.splice(0, 1)[idx];
    if (toString.call(src) === '[object Object]') {
      for (p in src) {
        if (Object.prototype.hasOwnProperty.call(src, p)) {
          if (toString.call(src[p]) === '[object Object]') {
            dst[p] = mergeObjects(dst[p] || {}, src[p]);
          } else {
            dst[p] = src[p];
          }
        }
      }
    }
  }

  return dst;
}

/* eslint-enable no-restricted-syntax */