59 lines
1.8 KiB
JavaScript
59 lines
1.8 KiB
JavaScript
|
/*eslint no-var: "error"*/
|
||
|
/*eslint no-console: "off"*/
|
||
|
/*eslint-env es6*/
|
||
|
|
||
|
import Config from "core/config";
|
||
|
|
||
|
/**
|
||
|
* Start a new debugger
|
||
|
* @param {*} handle The string to attach to all messages from this debugger
|
||
|
* @returns Debugger object
|
||
|
*/
|
||
|
export default function (handle) {
|
||
|
let output_enabled = Config.developerdebug;
|
||
|
if(output_enabled){
|
||
|
console.warn(`In development environment. Debugger output enabled for ${handle}`);
|
||
|
} else {
|
||
|
console.warn(`In production environment. Debugger output disabled for ${handle}`);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
write: function debugger_write() {
|
||
|
if (output_enabled) {
|
||
|
let args = Array.prototype.slice.call(arguments);
|
||
|
args.unshift(handle + ": ");
|
||
|
console.info.apply(console, args);
|
||
|
}
|
||
|
},
|
||
|
info: function debugger_info() {
|
||
|
if (output_enabled) {
|
||
|
let args = Array.prototype.slice.call(arguments);
|
||
|
args.unshift(handle + ": ");
|
||
|
console.info.apply(console, args);
|
||
|
}
|
||
|
},
|
||
|
warn: function debugger_warn() {
|
||
|
if (output_enabled) {
|
||
|
let args = Array.prototype.slice.call(arguments);
|
||
|
args.unshift(handle + ": ");
|
||
|
console.warn.apply(console, args);
|
||
|
}
|
||
|
},
|
||
|
error: function debugger_error() {
|
||
|
if (output_enabled) {
|
||
|
let args = Array.prototype.slice.call(arguments);
|
||
|
args.unshift(handle + ": ");
|
||
|
console.error.apply(console, args);
|
||
|
}
|
||
|
},
|
||
|
enable: function debugger_enable() {
|
||
|
output_enabled = true;
|
||
|
},
|
||
|
|
||
|
disable: function debugger_disable() {
|
||
|
output_enabled = false;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
}
|