-
-
Notifications
You must be signed in to change notification settings - Fork 591
/
log.js
107 lines (100 loc) · 2.98 KB
/
log.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const colors = {
Reset: "\x1b[0m",
Bright: "\x1b[1m",
Dim: "\x1b[2m",
Underscore: "\x1b[4m",
Blink: "\x1b[5m",
Reverse: "\x1b[7m",
Hidden: "\x1b[8m",
FgBlack: "\x1b[30m",
FgRed: "\x1b[31m",
FgGreen: "\x1b[32m",
FgYellow: "\x1b[33m",
FgBlue: "\x1b[34m",
FgMagenta: "\x1b[35m",
FgCyan: "\x1b[36m",
FgWhite: "\x1b[37m",
BgBlack: "\x1b[40m",
BgRed: "\x1b[41m",
BgGreen: "\x1b[42m",
BgYellow: "\x1b[43m",
BgBlue: "\x1b[44m",
BgMagenta: "\x1b[45m",
BgCyan: "\x1b[46m",
BgWhite: "\x1b[47m",
};
class Logger {
constructor(title) {
this.title = title;
process.stdout.write(`${colors.Bright}${title} - ${colors.FgCyan}webpack-cli ${colors.Reset}\n`);
}
log(message) {
const messages = message.split("\n");
if (messages.length === 1) {
process.stdout.write(`${colors.Bright} • ${colors.Reset}${messages[0]} \n`);
} else {
process.stdout.write(`${colors.Bright} • ${colors.Reset}${messages[0]} \n`);
messages.splice(0,1);
messages.forEach(message => {
process.stdout.write(` ${message}\n`);
});
}
}
info(message) {
const messages = message.split("\n");
if (messages.length === 1) {
process.stdout.write(`${colors.Bright}${colors.FgCyan} i ${messages[0]} ${colors.Reset}\n`);
} else {
process.stdout.write(`${colors.Bright}${colors.FgCyan} i ${messages[0]} \n`);
messages.splice(0,1);
messages.forEach(message => {
process.stdout.write(` ${message}\n`);
});
process.stdout.write(`${colors.Reset}`);
}
}
error(message) {
const messages = message.split("\n");
if (messages.length === 1) {
process.stderr.write(`${colors.Bright}${colors.FgRed} \u2717 ${messages[0]} ${colors.Reset}\n`);
} else {
process.stderr.write(`${colors.Bright}${colors.FgRed} \u2717 ${messages[0]} \n`);
messages.splice(0,1);
messages.forEach(message => {
process.stderr.write(` ${message}\n`);
});
process.stderr.write(`${colors.Reset}`);
}
}
warn(message) {
const messages = message.split("\n");
if (messages.length === 1) {
process.stdout.write(`${colors.FgYellow}${colors.Bright} ⚠ ${messages[0]} ${colors.Reset}\n`);
} else {
process.stdout.write(`${colors.FgYellow}${colors.Bright} ⚠ ${messages[0]} \n`);
messages.splice(0,1);
messages.forEach(message => {
process.stdout.write(` ${message}\n`);
});
process.stdout.write(`${colors.Reset}`);
}
}
success(message) {
const messages = message.split("\n");
if (messages.length === 1) {
process.stdout.write(`${colors.FgGreen}${colors.Bright} \u2713 ${colors.FgGreen}${messages[0]} ${colors.Reset}\n`);
} else {
process.stdout.write(`${colors.FgGreen}${colors.Bright} \u2713 ${colors.FgGreen}${messages[0]} \n`);
messages.splice(0,1);
messages.forEach(message => {
process.stdout.write(` ${message}\n`);
});
process.stdout.write(`${colors.Reset}`);
}
}
clrscr() {
process.stdout.write("\x1Bc");
process.stdout.write(`${colors.Bright}${this.title} - ${colors.FgCyan}webpack-cli ${colors.Reset}\n`);
}
}
module.exports = Logger;