const { bgBlue, black, green } = require(`chalk`); function dateTimePad(value, digits){ let number = value while (number.toString().length < digits) { number = `0` + number } return number; } function format(tDate){ return (tDate.getFullYear() + `-` + dateTimePad((tDate.getMonth() + 1), 2) + `-` + dateTimePad(tDate.getDate(), 2) + ` ` + dateTimePad(tDate.getHours(), 2) + `:` + dateTimePad(tDate.getMinutes(), 2) + `:` + dateTimePad(tDate.getSeconds(), 2) + `.` + dateTimePad(tDate.getMilliseconds(), 3)) } module.exports = class Logger { static log (content, type = `log`) { const date = `[${format(new Date(Date.now()))}]:`; switch (type) { case `log`: { return console.log(`${date} ${bgBlue(type.toUpperCase())} ${content} `); } case `warn`: { return console.log(`${date} ${black.bgYellow(type.toUpperCase())} ${content} `); } case `error`: { return console.log(`${date} ${black.bgRed(type.toUpperCase())} ${content} `); } case `debug`: { return console.log(`${date} ${green(type.toUpperCase())} ${content} `); } case `cmd`: { return console.log(`${date} ${black.bgWhite(type.toUpperCase())} ${content}`); } case `ready`: { return console.log(`${date} ${black.bgGreen(type.toUpperCase())} ${content}`); } default: throw new TypeError(`Logger type must be either warn, debug, log, ready, cmd or error.`); } } };