UNPKG

1.21 kBJavaScriptView Raw
1const util = require('util');
2const color = require('chalk');
3const { parse } = require('url');
4const stackParser = require('error-stack-parser');
5const httpstatus = require('http-status');
6
7const explain = require('./explainer');
8
9class Logger {
10 static printRequestResponse(context) {
11 const { request, response, params } = context;
12 const { method } = request;
13 const { pathname, _query } = parse(context.request.url, true); // TODO Test perf vs RegEx
14 const { statusCode } = response;
15
16 console.log(
17 color`{green ●} {magenta ${method}} {bold ${pathname}} → {red ${statusCode}} ${
18 httpstatus[statusCode]
19 }
20 {gray Params}
21${util
22 .inspect(params, { compact: false, colors: true, sorted: true })
23 .slice(2, -2)}`
24 );
25 }
26
27 static printError(error, layer = 'General') {
28 console.error(
29 color` {bold.red Error} {bold.underline ${error.message}}
30 {gray Explanation} \n ${explain.for(error)}
31\n {gray Stack trace}`
32 );
33
34 for (let message of stackParser.parse(error)) {
35 console.error(color` - {yellow ${message.functionName}}
36 {bold ${message.fileName}}:{bold.underline.cyan ${message.lineNumber}}`);
37 }
38 }
39}
40
41module.exports = Logger;