mirror of
https://github.com/debug-js/debug.git
synced 2026-01-25 16:42:28 +00:00
47 lines
831 B
JavaScript
47 lines
831 B
JavaScript
|
|
/*!
|
|
* debug
|
|
* Copyright(c) 2012 TJ Holowaychuk <tj@vision-media.ca>
|
|
* MIT Licensed
|
|
*/
|
|
|
|
/**
|
|
* Previous debug() call.
|
|
*/
|
|
|
|
var prev = {};
|
|
|
|
/**
|
|
* Create a debugger with the given `name`.
|
|
*
|
|
* @param {String} name
|
|
* @return {Type}
|
|
* @api public
|
|
*/
|
|
|
|
function debug(name) {
|
|
if (!debug.enable) {
|
|
throw new Error('You must set a function for `debug.enable`');
|
|
}
|
|
|
|
var enabled = debug.enable(name);
|
|
|
|
if (!enabled) return function(){};
|
|
|
|
function plain(fmt) {
|
|
var curr = new Date;
|
|
var ms = curr - (prev[name] || curr);
|
|
prev[name] = curr;
|
|
|
|
fmt = name
|
|
+ ' +' + ms + 'ms '
|
|
+ fmt;
|
|
|
|
// This hackery is required for IE8, where `console.log` doesn't have 'apply'
|
|
window.console && console.log &&
|
|
Function.prototype.apply.call(console.log, console, arguments);
|
|
}
|
|
|
|
return plain;
|
|
}
|