/
dbmon.js
45 lines (36 loc) · 1.09 KB
/
dbmon.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
35
36
37
38
39
40
41
42
43
44
45
// DbMon - Copyright Francesco Strappini <f@strx.it> (MIT Licensed)
var _=require('underscore')._,
channelDefaults=require('./channelDefaults').channelDefaults;
var dbmon={
version : '1.0.4'
};
dbmon.channel = function(opts){
opts=_.extend({}, channelDefaults, opts);
if (opts.monitor==='all') {
opts.monitor='insert,update,delete,truncate';
}
//Method deep opts, underscore does not support deep extend
//Dynamic Transports Init
var transports=[];
_.each(opts.transports.split(','), function(t){
t=t.trim();
//underscore does not support deep extend
if (channelDefaults.transportsOpts[t]){
opts.transportsOpts[t]=_.extend({}, channelDefaults.transportsOpts[t], opts.transportsOpts[t]);
}
if (t){
transports.push(require('./transports/'+t+'-transport').init(opts));
}
});
//Main Object to Return
var me={
//Dynamic driver initialization
driver:require('./drivers/'+opts.driver+'-driver').init(opts, transports),
transports:transports,
stop:function(){
me.driver.stop();
}
};
return me;
};
module.exports=dbmon;