compodoc
Version:
The missing documentation tool for your Angular application
79 lines (62 loc) • 1.14 kB
text/typescript
let gutil = require('gulp-util')
let c = gutil.colors;
let pkg = require('../package.json');
enum LEVEL {
INFO,
DEBUG,
ERROR
}
class Logger {
name;
logger;
version;
silent;
constructor() {
this.name = pkg.name;
this.version = pkg.version;
this.logger = gutil.log;
this.silent = true;
}
info(...args) {
if(!this.silent) return;
this.logger(
this.format(LEVEL.INFO, ...args)
);
}
error(...args) {
if(!this.silent) return;
this.logger(
this.format(LEVEL.ERROR, ...args)
);
}
debug(...args) {
if(!this.silent) return;
this.logger(
this.format(LEVEL.DEBUG, ...args)
);
}
private format(level, ...args) {
let pad = (s, l, c='') => {
return s + Array( Math.max(0, l - s.length + 1)).join( c )
};
let msg = args.join(' ');
if(args.length > 1) {
msg = `${ pad(args.shift(), 15, ' ') }: ${ args.join(' ') }`;
}
switch(level) {
case LEVEL.INFO:
msg = c.green(msg);
break;
case LEVEL.DEBUG:
msg = c.cyan(msg);
break;
case LEVEL.ERROR:
msg = c.red(msg);
break;
}
return [
msg
].join('');
}
}
export let logger = new Logger();