Lines of Code | 62 |
Duplicated Lines | 0 |
Ratio | 0 % |
Coverage | 86.36% |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | "use strict"; |
||
2 | |||
3 | 1 | const Logger = require('./Logger'); |
|
4 | 1 | const Response = require('../model/Response'); |
|
5 | 1 | const Request = require('../model/Request'); |
|
6 | 1 | const transformers = require('./transformers'); |
|
7 | |||
8 | 1 | const normalize = (meta = {}, level = 0) => { |
|
9 | 185 | if (level++ < 5) { |
|
10 | 185 | if (Array.isArray(meta)) { |
|
11 | return meta.map(metaData => normalize(metaData, level)); |
||
12 | 185 | } else if (meta instanceof Request) { |
|
13 | return transformers.request(meta); |
||
14 | 185 | } else if (meta instanceof Response) { |
|
15 | 7 | return transformers.response(meta); |
|
16 | 178 | } else if (meta instanceof Object) { |
|
17 | 66 | const newObject = {}; |
|
18 | 66 | for (let metaKey in meta) { |
|
19 | 169 | if (meta.hasOwnProperty(metaKey)) { |
|
20 | 169 | newObject[metaKey] = normalize(meta[metaKey], level); |
|
21 | } |
||
22 | } |
||
23 | |||
24 | 66 | return newObject; |
|
25 | } |
||
26 | } |
||
27 | |||
28 | 112 | return meta; |
|
29 | }; |
||
30 | |||
31 | class EnhancedLogger extends Logger { |
||
32 | /** |
||
33 | * @public |
||
34 | * @param {Object} request |
||
35 | * |
||
36 | * @returns {Object} |
||
37 | */ |
||
38 | formatRequest(request) { |
||
39 | return { |
||
40 | url: request.url, |
||
41 | query: request.query, |
||
42 | path: request.path, |
||
43 | method: request.method, |
||
44 | mime: request.mime, |
||
45 | params: request.paramsArray, |
||
46 | payload: request.payload |
||
47 | }; |
||
48 | } |
||
49 | |||
50 | /** |
||
51 | * @inheritDoc |
||
52 | */ |
||
53 | normalizeMeta(meta = {}) { |
||
54 | 16 | return normalize(meta); |
|
55 | } |
||
56 | |||
57 | } |
||
58 | |||
59 | /** |
||
60 | * @return {TaskLogger} Logger for a task |
||
61 | */ |
||
62 | 1 | module.exports = EnhancedLogger; |
|
63 | |||
64 |