moodle_local_treestudyplan/amd/src/util/debugger.js

59 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-08-19 17:54:40 +02:00
/*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;
}
};
}