'use strict'
|
|
const { colors, clearConsole } = require('../utils/log')
|
const consola = require('consola')
|
|
class ConsolaReporter {
|
constructor () {
|
this.enabled = true
|
this.consola = consola.withTag('friendly-errors')
|
this.initLevels()
|
}
|
|
enable () {
|
this.enabled = true
|
}
|
|
log () {
|
if (this.enabled) {
|
this.consola.log.apply(this.consola, arguments)
|
}
|
}
|
|
initLevels () {
|
for (const level of Object.keys(colors)) {
|
this[level] = (title, message) => {
|
if (!this.enabled) return
|
if (title === 'WAIT') return
|
|
if (message === undefined) {
|
this.consola.log(title)
|
return
|
}
|
(this.consola[level] || this.consola.log)(message)
|
}
|
}
|
}
|
|
clearConsole () {
|
if (this.enabled) {
|
clearConsole()
|
}
|
}
|
}
|
|
module.exports = ConsolaReporter
|