Passed
Pull Request — main (#13)
by Pieter Epeüs
07:26 queued 03:47
created

src/logging/sentry.js   A

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 46
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
eloc 28
mnd 0
bc 0
fnc 1
dl 0
loc 46
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
ccs 5
cts 5
cp 1
1
import * as Sentry from '@sentry/node';
2
import Obj from '@hckrnews/objects';
3
4
/**
5
 * The logging object
6
 * @typedef {Object} Logging
7
 * @property {String} type
8
 * @property {String} release
9
 * @property {String} environment
10
 * @property {Number} tracesSampleRate
11
 * @property {Boolean} debug
12
 */
13
14 2
const schema = {
15
    dsn: String,
16
    release: String,
17
    environment: String,
18
    tracesSampleRate: Number,
19
    debug: Boolean,
20
};
21 2
const Logging = Obj({ schema });
22
23
export default ({
24
    dsn,
25
    release,
26
    environment = 'production',
27
    tracesSampleRate = 1,
28
    debug = false,
29
}) => {
30 3
    const logging = Logging.create({
31
        dsn,
32
        release,
33
        environment,
34
        tracesSampleRate,
35
        debug,
36
    });
37 3
    Sentry.init({
38
        dsn: logging.dsn,
39
        release: logging.release,
40
        environment: logging.environment,
41
        tracesSampleRate: logging.tracesSampleRate,
42
        debug: logging.debug,
43
    });
44
45 3
    return Sentry;
46
};
47