clone.js 515 Bytes
'use strict';
module.exports = cloneAllProperties;

/**
 * clone the error properties to the data objects
 * [err.name,  err.message, err.stack] are not enumerable properties
 * @param data Object to be altered
 * @param err Error Object
 */
function cloneAllProperties(data, err) {
  data.name = err.name;
  data.message = err.message;
  for (var p in err) {
    if ((p in data)) continue;
    data[p] = err[p];
  }
  // stack is appended last to ensure order is the same for response
  data.stack = err.stack;
};