mirror of
https://github.com/debug-js/debug.git
synced 2026-01-18 16:12:38 +00:00
Add debug.enable and debug.enabled APIs.
Makes wildcard filters work once again.
This commit is contained in:
parent
811471fba2
commit
97c6ddf070
45
debug.js
45
debug.js
@ -5,6 +5,12 @@
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
/**
|
||||
* The currently active debug mode names.
|
||||
*/
|
||||
|
||||
var names = [];
|
||||
|
||||
/**
|
||||
* Previous debug() call.
|
||||
*/
|
||||
@ -20,11 +26,8 @@ var prev = {};
|
||||
*/
|
||||
|
||||
function debug(name) {
|
||||
if (!debug.enable) {
|
||||
throw new Error('You must set a function for `debug.enable`');
|
||||
}
|
||||
|
||||
var enabled = debug.enable(name);
|
||||
var enabled = debug.enabled(name);
|
||||
|
||||
if (!enabled) return function(){};
|
||||
|
||||
@ -44,3 +47,37 @@ function debug(name) {
|
||||
|
||||
return plain;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables a debug mode by name. This can include modes
|
||||
* separated by a colon and wildcards.
|
||||
*
|
||||
* @param {String} name
|
||||
* @api public
|
||||
*/
|
||||
|
||||
debug.enable = function(name) {
|
||||
var split = (name || '').split(/[\s,]+/)
|
||||
, len = split.length
|
||||
for (var i=0; i<len; i++) {
|
||||
name = split[i].replace('*', '.*?');
|
||||
names.push(new RegExp('^' + name + '$'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the given mode name is enabled, false otherwise.
|
||||
*
|
||||
* @param {String} name
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
debug.enabled = function(name) {
|
||||
for (var i=0, l=names.length; i<l; i++) {
|
||||
if (names[i].test(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -3,9 +3,7 @@
|
||||
<title>debug()</title>
|
||||
<script src="../debug.js"></script>
|
||||
<script>
|
||||
debug.enable = function(name) {
|
||||
return true;
|
||||
}
|
||||
debug.enable('*');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user