113 lines
2.6 KiB
JavaScript
113 lines
2.6 KiB
JavaScript
module.exports = class DBG {
|
|
/**
|
|
* @param ${'none'|'warn'|'info'|'debug'|'nitpick'} [level='info']
|
|
**/
|
|
constructor(level = 'info') {
|
|
this.setLevel(level);
|
|
}
|
|
|
|
_levels = ['nitpick', 'debug', 'info', 'warn', 'none'];
|
|
|
|
setLevel(level) {
|
|
if (this._levels.includes(level)) {
|
|
this._level = level;
|
|
} else {
|
|
throw new Error(`'${level}' is not a valid debug level`);
|
|
}
|
|
}
|
|
|
|
/** @param {any} s **/
|
|
warn = (s='', ...z) => {
|
|
if (this._lvl2num('warn') < this._lvl2num(this._level)) return
|
|
console.log(s, ...z);
|
|
}
|
|
/** @param {any} s **/
|
|
i = (s='', ...z) => {
|
|
if (this._lvl2num('info') < this._lvl2num(this._level)) return
|
|
console.log(s, ...z);
|
|
}
|
|
/** @param {any} s **/
|
|
d = (s='', ...z) => {
|
|
if (this._lvl2num('debug') < this._lvl2num(this._level)) return
|
|
console.log(s, ...z);
|
|
}
|
|
/** @param {any} s **/
|
|
nit = (s='', ...z) => {
|
|
if (this._lvl2num('nitpick') < this._lvl2num(this._level)) return
|
|
console.log(s, ...z);
|
|
}
|
|
|
|
warnGroup = (s) => {
|
|
if (this._lvl2num('warn') < this._lvl2num(this._level)) return
|
|
console.group(s);
|
|
}
|
|
infoGroup = (s) => {
|
|
if (this._lvl2num('info') < this._lvl2num(this._level)) return
|
|
console.group(s);
|
|
}
|
|
debugGroup = (s) => {
|
|
if (this._lvl2num('debug') < this._lvl2num(this._level)) return
|
|
console.group(s);
|
|
}
|
|
nitGroup = (s) => {
|
|
if (this._lvl2num('nit') < this._lvl2num(this._level)) return
|
|
console.group(s);
|
|
}
|
|
|
|
warnGroupEnd = (s) => {
|
|
if (this._lvl2num('warn') < this._lvl2num(this._level)) return
|
|
console.groupEnd();
|
|
}
|
|
infoGroupEnd = (s) => {
|
|
if (this._lvl2num('info') < this._lvl2num(this._level)) return
|
|
console.group();
|
|
}
|
|
debugGroupEnd = (s) => {
|
|
if (this._lvl2num('debug') < this._lvl2num(this._level)) return
|
|
console.group();
|
|
}
|
|
nitGroupEnd = (s) => {
|
|
if (this._lvl2num('nit') < this._lvl2num(this._level)) return
|
|
console.group();
|
|
}
|
|
|
|
warnExec = (fn) => {
|
|
if (this._lvl2num('warn') < this._lvl2num(this._level)) return
|
|
fn();
|
|
}
|
|
infoExec = (fn) => {
|
|
if (this._lvl2num('info') < this._lvl2num(this._level)) return
|
|
fn();
|
|
}
|
|
debugExec = (fn) => {
|
|
if (this._lvl2num('debug') < this._lvl2num(this._level)) return
|
|
fn();
|
|
}
|
|
nitExec = (fn) => {
|
|
if (this._lvl2num('nit') < this._lvl2num(this._level)) return
|
|
fn();
|
|
}
|
|
|
|
_lvl2num(lvl) {
|
|
return 1 + this._levels.findIndex(l => l === lvl);
|
|
}
|
|
}
|
|
|
|
/* TEST
|
|
const dbg = new DBG('nitpick');
|
|
dbg.warnGroup('w');
|
|
dbg.warn('warn');
|
|
dbg.warnGroupEnd();
|
|
|
|
dbg.iGroup('i');
|
|
dbg.i('info');
|
|
dbg.iGroupEnd();
|
|
|
|
dbg.dGroup('d');
|
|
dbg.d('debug');
|
|
dbg.dGroupEnd();
|
|
|
|
dbg.nitGroup('n');
|
|
dbg.nit('nitpick');
|
|
dbg.nitGroupEnd();
|
|
*/ |