homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
58 lines • 1.5 kB
JavaScript
import ora from 'ora';
export class Logger {
hbService;
constructor(hbService) {
this.hbService = hbService;
}
log(msg) {
this._log(msg, 'info');
}
success(msg) {
this._log(msg, 'success');
}
error(msg) {
this._log(msg, 'error');
}
warn(msg) {
this._log(msg, 'warn');
}
debug(msg) {
this._log(msg, 'debug');
}
verbose(msg) {
this._log(msg, 'verbose');
}
_log(msg, level) {
if (this.hbService.action === 'run') {
msg = `\x1B[37m[${new Date().toLocaleString()}]\x1B[0m `
+ `\x1B[36m[HB Supervisor]\x1B[0m [${level.toUpperCase()}] ${msg}`;
if (this.hbService.logFile) {
this.hbService.logFile.write(`${msg}\n`);
}
else {
console.log(msg);
}
}
else {
let oraLevel;
switch (level) {
case 'info':
case 'debug':
case 'verbose':
oraLevel = 'info';
break;
case 'success':
oraLevel = 'succeed';
break;
case 'error':
oraLevel = 'fail';
break;
case 'warn':
oraLevel = 'warn';
break;
}
ora()[oraLevel](msg);
}
}
}
//# sourceMappingURL=logger.js.map