-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
34 lines (27 loc) · 847 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//
// given a set of enabled/disabled loggers, determines log level
// levels will be sorted so all disabled loggers are below the enabled level
//
module.exports = function(loggers) {
if(typeof loggers != 'object') throw new Error();
var level = null,
levels = {};
// put enabled loggers at the top
Object.keys(loggers).forEach(function(type) {
if(!loggers[type]) return;
// set level to last enabled logger (last one wins)
level = type;
levels[type] = Object.keys(levels).length;
});
// append disabled loggers
Object.keys(loggers).forEach(function(type) {
if(loggers[type]) return;
levels[type] = Object.keys(levels).length;
});
// levels will be sorted with disabled loggers at the top
// level will be set to the first enabled logger
return {
level: level,
levels: levels
};
};