UNPKG

1.76 kBJavaScriptView Raw
1
2export default (req, res) => {
3 const status = res.statusCode;
4 let statusCode;
5
6 const paint = (word, color) => {
7 word = word.toString();
8
9 switch (color) {
10 case 'red': return `\u001b[31m${word}\u001b[39m`;
11 case 'green': return `\u001b[32m${word}\u001b[39m`;
12 case 'cyan': return `\u001b[36m${word}\u001b[39m`;
13 case 'magenta': return `\u001b[35m${word}\u001b[39m`;
14 case 'bold': return `\u001b[1m${word}\u001b[22m`;
15 case 'bgWhite': return `\u001b[47m${word}\u001b[49m`;
16 case 'black': return `\u001b[30m${word}\u001b[39m`;
17 }
18 };
19
20 if (status >= 200 && status <= 226) statusCode = paint(status, 'green');
21 if (status >= 300 && status <= 307) statusCode = paint(status, 'cyan');
22 if (status >= 400 && status <= 451) statusCode = paint(status, 'red');
23 if (status >= 500 && status <= 511) statusCode = paint(status, 'red');
24
25 if (req.method.length === 3) {
26 console.info(
27 paint(' ', 'magenta') + paint(paint(req.method, 'bold'), 'magenta') + paint('\u0020\u0020\u0020 ', 'magenta') + paint(statusCode, 'bold') + ' ' + paint(' ', 'bgWhite') + paint(paint(req.url, 'black'), 'bgWhite') + paint(' ', 'bgWhite')
28 );
29 } else if (req.method.length === 4) {
30 console.info(
31 paint(' ', 'magenta') + paint(paint(req.method, 'bold'), 'magenta') + paint('\u0020\u0020 ', 'magenta') + paint(statusCode, 'bold') + ' ' + paint(' ', 'bgWhite') + paint(paint(req.url, 'black'), 'bgWhite') + paint(' ', 'bgWhite')
32 );
33 } else {
34 console.info(
35 paint(' ', 'magenta') + paint(paint(req.method, 'bold'), 'magenta') + paint(' ', 'magenta') + paint(statusCode, 'bold') + ' ' + paint(' ', 'bgWhite') + paint(paint(req.url, 'black'), 'bgWhite') + paint(' ', 'bgWhite')
36 );
37 }
38};