Failed Conditions
Pull Request — master (#2)
by Yo
01:38
created

lib/logger/Logger.js   A

Size

Lines of Code 112

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 6.25%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
nc 1
dl 0
loc 112
ccs 7
cts 112
cp 0.0625
rs 10
noi 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A Logger.js ➔ ??? 0 9 2
1
"use strict";
2
3
/**
4
 * @param {Object} winstonLogger
5
 * @param {string} level
6
 * @param {string} message
7
 * @param {Object} meta
8
 */
9 1
const wrapWinston = (winstonLogger, level, message, meta) => {
10
    const argList = [];
11
12 16
    argList.push(message);
13 16
    if (meta) {
14 16
        argList.push(meta);
15
    }
16 16
    winstonLogger[level].apply(winstonLogger, argList);
17
};
18
19
class Logger {
20
    /**
21
     *
22
     * @param {winston.Logger} logger
23
     */
24
    constructor(logger) {
25
        this.logger = logger;
26
    }
27
28
    /**
29
     * @public
30
     *
31
     * @param {string} message
32
     * @param {Object} meta
33
     */
34
    debug(message, meta = {}) {
35
        this.log('debug', message, meta);
36
    }
37
38
    /**
39
     * @public
40
     *
41
     * @param {string} message
42
     * @param {Object} meta
43
     */
44
    info(message, meta = {}) {
45
        this.log('info', message, meta);
46
    }
47
48
    /**
49
     * @public
50
     *
51
     * @param {string} message
52
     * @param {Object} meta
53
     */
54
    warning(message, meta = {}) {
55
        this.log('warn', message, meta);
56
    }
57
58
    /**
59
     * @public
60
     *
61
     * @param {string} message
62
     * @param {Object} meta
63
     */
64
    error(message, meta = {}) {
65
        this.log('error', message, meta);
66
    }
67
68
    /**
69
     * @protected
70
     * Could be overridden by child class
71
     *
72
     * @param {string} message
73
     * @param {Object} meta
74
     *
75
     * @returns {string}
76
     */
77
    normalizeMessage(message, meta = {}) {// eslint-disable-line no-unused-vars
1 ignored issue
show
Unused Code introduced by
The parameter meta is not used and could be removed.

This check looks for parameters in functions that are not used in the function body and are not followed by other parameters which are used inside the function.

Loading history...
78
        return message;
79
    }
80
81
    /**
82
     * @protected
83
     * Could be overridden by child class
84
     *
85
     * @param {Object} meta
86
     *
87
     * @returns {Object}
88
     */
89
    normalizeMeta(meta = {}) {
90
        return meta;
91
    }
92
93
    /**
94
     * @protected
95
     *
96
     * @param {string} level
97
     * @param {string} message
98
     * @param {Object} meta
99
     */
100
    log(level, message, meta = {}) {
101
        meta = this.normalizeMeta(meta);
102
103 16
        wrapWinston(
104
            this.logger,
105
            level,
106
            this.normalizeMessage(message, meta),
107
            meta
108
        );
109
    }
110
}
111
112
module.exports = Logger;
113