Plato on Github
Report Home
node_modules/when/monitor/ConsoleReporter.js
Maintainability
72.26
Lines of code
94
Difficulty
35.32
Estimated Errors
0.56
Function weight
By Complexity
By SLOC
/** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ (function(define) { 'use strict'; define(function(require) { var error = require('./error'); var unhandledRejectionsMsg = '[promises] Unhandled rejections: '; var allHandledMsg = '[promises] All previously unhandled rejections have now been handled'; function ConsoleReporter() { this._previouslyReported = false; } ConsoleReporter.prototype = initDefaultLogging(); ConsoleReporter.prototype.log = function(traces) { if(traces.length === 0) { if(this._previouslyReported) { this._previouslyReported = false; this.msg(allHandledMsg); } return; } this._previouslyReported = true; this.groupStart(unhandledRejectionsMsg + traces.length); try { this._log(traces); } finally { this.groupEnd(); } }; ConsoleReporter.prototype._log = function(traces) { for(var i=0; i<traces.length; ++i) { this.warn(error.format(traces[i])); } }; function initDefaultLogging() { /*jshint maxcomplexity:7*/ var log, warn, groupStart, groupEnd; if(typeof console === 'undefined') { log = warn = consoleNotAvailable; } else { if(typeof console.error === 'function' && typeof console.dir === 'function') { warn = function(s) { console.error(s); }; log = function(s) { console.log(s); }; if(typeof console.groupCollapsed === 'function') { groupStart = function(s) { console.groupCollapsed(s); }; groupEnd = function() { console.groupEnd(); }; } } else { // IE8 has console.log and JSON, so we can make a // reasonably useful warn() from those. // Credit to webpro (https://github.com/webpro) for this idea if (typeof console.log ==='function' && typeof JSON !== 'undefined') { log = warn = function (x) { if(typeof x !== 'string') { try { x = JSON.stringify(x); } catch(e) {} } console.log(x); }; } } } return { msg: log, warn: warn, groupStart: groupStart || warn, groupEnd: groupEnd || consoleNotAvailable }; } function consoleNotAvailable() {} return ConsoleReporter; }); }(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); }));