mirror of
https://github.com/wahyd4/vuepress.git
synced 2026-08-19 18:25:51 +10:00
57 lines
958 B
JavaScript
57 lines
958 B
JavaScript
const chalk = require('chalk')
|
|
const env = require('./env')
|
|
|
|
const logger = {}
|
|
|
|
const logTypes = {
|
|
success: {
|
|
color: 'green',
|
|
label: 'DONE'
|
|
},
|
|
error: {
|
|
color: 'red',
|
|
label: 'FAIL'
|
|
},
|
|
warn: {
|
|
color: 'yellow',
|
|
label: 'WARN'
|
|
},
|
|
tip: {
|
|
color: 'cyan',
|
|
label: 'TIP'
|
|
},
|
|
wait: {
|
|
color: 'blue',
|
|
label: 'WAIT'
|
|
}
|
|
}
|
|
|
|
const getLoggerFn = (color, label) => (msg, log = true) => {
|
|
let newLine = false
|
|
if (msg.startsWith('\n')) {
|
|
if (log) msg = msg.slice(1)
|
|
newLine = true
|
|
}
|
|
msg = chalk.reset.inverse.bold[color](` ${label} `) + ' ' + msg
|
|
if (log) {
|
|
console.log(newLine ? '\n' + msg : msg)
|
|
} else {
|
|
return msg
|
|
}
|
|
}
|
|
|
|
for (const type in logTypes) {
|
|
const { color, label } = logTypes[type]
|
|
logger[type] = getLoggerFn(color, label)
|
|
}
|
|
|
|
const debugFn = getLoggerFn('magenta', 'DEBUG')
|
|
|
|
logger.debug = function (msg) {
|
|
if (env.isDebug) {
|
|
debugFn(msg)
|
|
}
|
|
}
|
|
|
|
module.exports = logger
|