UNPKG

ucsc-xena-client

Version:

UCSC Xena Client. Functional genomics visualizations.

59 lines (47 loc) 1.83 kB
'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _ = require('./underscore_ext'); // properities of Error objects which we want to serialize. var errorProps = ['name', 'message', 'context']; var getErrorProps = function getErrorProps(err) { var props = _.pick(err, errorProps); return err.errors ? _.assoc(props, 'errors', err.errors.map(getErrorProps)) : props; }; function CompositeError(message) { Error.call(this, message); this.name = 'CompositeError'; for (var _len = arguments.length, errors = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { errors[_key - 1] = arguments[_key]; } this.errors = errors; } CompositeError.prototype = Object.create(Error.prototype); CompositeError.prototype.constructor = CompositeError; function compositeError(message) { var err = new Error(message); for (var _len2 = arguments.length, errors = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { errors[_key2 - 1] = arguments[_key2]; } err.errors = errors; return err; } function logError(err) { if (err.errors) { err.errors.forEach(logError); } if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && typeof window.chrome !== 'undefined') { // In Chrome, rethrowing provides better source map support setTimeout(function () { throw err; }); } else { console.error(err.stack || err); // uglify should drop this for us in production } return err; } module.exports = { CompositeError: CompositeError, compositeError: compositeError, getErrorProps: getErrorProps, logError: logError };