1 | const log = require("fancy-log");
|
2 | const getColonTimeFromDate = () => new Date().toTimeString().slice(0, 8);
|
3 | const chalk = require("chalk");
|
4 |
|
5 | class Logger {
|
6 | constructor() {
|
7 | this.opts = {};
|
8 | }
|
9 |
|
10 | setOptions({ quiet }) {
|
11 | if (quiet !== undefined) {
|
12 | this.opts.quiet = typeof quiet === "boolean" ? quiet : false;
|
13 | }
|
14 | }
|
15 |
|
16 | log(...args) {
|
17 | if (this.opts.quiet) return;
|
18 |
|
19 | log(...args);
|
20 | }
|
21 | l(msg = "", additional = "") {
|
22 | console.log(
|
23 | `${chalk.rgb(58, 65, 255).bold("_".repeat(msg.length + additional.length + 12))}`
|
24 | );
|
25 | console.log(
|
26 | `${chalk.gray(getColonTimeFromDate())}${chalk.magenta.bold(":")} ${chalk.magenta.bold(
|
27 | msg || "--"
|
28 | )} ${additional ? chalk.cyan.underline.bold(additional) : ""}`
|
29 | );
|
30 | }
|
31 | error(...args) {
|
32 | log.error(...args);
|
33 | }
|
34 | clear() {
|
35 | process.stdout.write("\x1B[2J\x1B[0f");
|
36 | }
|
37 | }
|
38 |
|
39 | module.exports = new Logger();
|