Skip to content

Commit b9a9def

Browse files
author
David Gómez Matarrodona
committed
optional modules
1 parent bc7d7c4 commit b9a9def

File tree

6 files changed

+390
-152
lines changed

6 files changed

+390
-152
lines changed

lib/config/inputs.js

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,39 @@
11
const
22
path = require('path'),
3+
logger = require('../logger'),
4+
srequire = require('./srequire'),
35
exec = require('child_process').exec;
46

57
const INPUTS = {
6-
null : require("../input/null"),
7-
static : require("../input/static"),
8-
stdin : require("../input/stdin"),
9-
command : require("../input/command"),
10-
udp : require("../input/udp"),
11-
tcp : require("../input/tcp"),
12-
http : require("../input/http"),
13-
httpsm : require("../input/httpsm"),
14-
httpserver : require("../input/http-server"),
15-
syslog : require("../input/syslog"),
16-
file : require("../input/file"),
17-
windows : require("../input/windows"),
18-
kafka : require("../input/kafka"),
19-
redis : require("../input/redis"),
20-
amqp : require("../input/amqp"),
21-
mongo : require("../input/mongo"),
22-
sqlserver : require("../input/sqlserver"),
23-
//zmq : require("../input/zmq"),
24-
ws : require("../input/ws"),
25-
elastic : require("../input/elastic")
8+
null : srequire("../input/null"),
9+
static : srequire("../input/static"),
10+
stdin : srequire("../input/stdin"),
11+
command : srequire("../input/command"),
12+
udp : srequire("../input/udp"),
13+
tcp : srequire("../input/tcp"),
14+
http : srequire("../input/http"),
15+
httpsm : srequire("../input/httpsm"),
16+
httpserver : srequire("../input/http-server"),
17+
syslog : srequire("../input/syslog"),
18+
file : srequire("../input/file"),
19+
windows : srequire("../input/windows"),
20+
kafka : srequire("../input/kafka"),
21+
redis : srequire("../input/redis"),
22+
amqp : srequire("../input/amqp"),
23+
mongo : srequire("../input/mongo"),
24+
sqlserver : srequire("../input/sqlserver"),
25+
zmq : srequire("../input/zmq"),
26+
ws : srequire("../input/ws"),
27+
elastic : srequire("../input/elastic")
2628
};
2729

30+
Object.keys(INPUTS).forEach(p=>{
31+
if(INPUTS[p]===null) {
32+
logger.warn(`Input module ${p} couldn't be loaded. Proceeding with 'null' input`);
33+
INPUTS[p] = require('../input/null');
34+
}
35+
});
36+
2837
function npmi(module) {
2938
return new Promise((ok,rej)=>{
3039
exec(`npm i ${module}`,(err,body)=>{

lib/config/processors.js

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,46 @@
11
const
22
path = require('path'),
3+
logger = require('../logger'),
34
exec = require('child_process').exec,
5+
srequire = require('./srequire'),
46
Component = require('../component'),
57
Transform = require('stream').Transform,
68
Writable = require('stream').Writable;
79

810
const PROCESSORS = {
9-
null : require("../processor"),
10-
sequence : require("../processor/sequence"),
11-
array : require("../processor/array"),
12-
split : require("../processor/split"),
13-
properties : require("../processor/properties"),
14-
merge : require("../processor/merge"),
15-
filter : require("../processor/filter"),
16-
parser : require("../processor/parser"),
17-
syslogparser : require("../processor/syslogparser"),
18-
csvparser : require("../processor/csvparser"),
19-
jsonparser : require("../processor/jsonparser"),
20-
xmlparser : require("../processor/xmlparser"),
21-
keyvalparser : require("../processor/keyvalparser"),
22-
timestamp : require("../processor/timestamp"),
23-
dateformat : require("../processor/dateformat"),
24-
multilang : require("../processor/multilang"),
25-
csvout : require("../processor/csvout"),
26-
translate : require("../processor/translate"),
27-
throttle : require("../processor/throttle"),
28-
nools : require("../processor/nools"),
29-
stats : require("../processor/stats"),
30-
transform : require("../processor/transform"),
31-
http : require("../processor/http"),
32-
crypto : require("../processor/crypto")
11+
null : srequire("../processor"),
12+
sequence : srequire("../processor/sequence"),
13+
array : srequire("../processor/array"),
14+
split : srequire("../processor/split"),
15+
properties : srequire("../processor/properties"),
16+
merge : srequire("../processor/merge"),
17+
filter : srequire("../processor/filter"),
18+
parser : srequire("../processor/parser"),
19+
syslogparser : srequire("../processor/syslogparser"),
20+
csvparser : srequire("../processor/csvparser"),
21+
jsonparser : srequire("../processor/jsonparser"),
22+
xmlparser : srequire("../processor/xmlparser"),
23+
keyvalparser : srequire("../processor/keyvalparser"),
24+
timestamp : srequire("../processor/timestamp"),
25+
dateformat : srequire("../processor/dateformat"),
26+
multilang : srequire("../processor/multilang"),
27+
csvout : srequire("../processor/csvout"),
28+
translate : srequire("../processor/translate"),
29+
throttle : srequire("../processor/throttle"),
30+
nools : srequire("../processor/nools"),
31+
stats : srequire("../processor/stats"),
32+
transform : srequire("../processor/transform"),
33+
http : srequire("../processor/http"),
34+
crypto : srequire("../processor/crypto")
3335
};
3436

37+
Object.keys(PROCESSORS).forEach(p=>{
38+
if(PROCESSORS[p]===null) {
39+
logger.warn(`Processor module ${p} couldn't be loaded. Proceeding with 'null' processor`);
40+
PROCESSORS[p] = require("../processor");
41+
}
42+
});
43+
3544
var INSTANCES = {
3645

3746
};

lib/config/srequire.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = function(path) {
2+
try {
3+
return require(path);
4+
}catch(err) {
5+
return null;
6+
}
7+
}

lib/config/transporters.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
11
const
22
path = require("path"),
33
logger = require('../logger'),
4+
srequire = require('./srequire'),
45
Component = require('../component'),
56
Transform = require('stream').Transform,
67
Writable = require('stream').Writable;
78

89
const TRANSPORTERS = {
9-
null : require("../transporter/null"),
10-
file : require("../transporter/file"),
11-
http : require("../transporter/http"),
12-
console : require("../transporter/console"),
13-
elastic : require("../transporter/elastic"),
14-
mongo : require("../transporter/mongo"),
15-
stat : require("../transporter/stat"),
16-
syslog : require("../transporter/syslog"),
17-
//zmq : require("../transporter/zmq"),
18-
kafka : require("../transporter/kafka"),
19-
redis : require("../transporter/redis"),
20-
global : require("../transporter/global"),
21-
acker : require("../transporter/acker"),
22-
reemit : require("../transporter/reemit")
10+
null : srequire("../transporter/null"),
11+
file : srequire("../transporter/file"),
12+
http : srequire("../transporter/http"),
13+
console : srequire("../transporter/console"),
14+
elastic : srequire("../transporter/elastic"),
15+
mongo : srequire("../transporter/mongo"),
16+
stat : srequire("../transporter/stat"),
17+
syslog : srequire("../transporter/syslog"),
18+
zmq : srequire("../transporter/zmq"),
19+
kafka : srequire("../transporter/kafka"),
20+
redis : srequire("../transporter/redis"),
21+
global : srequire("../transporter/global"),
22+
acker : srequire("../transporter/acker"),
23+
reemit : srequire("../transporter/reemit")
2324
};
2425

26+
Object.keys(TRANSPORTERS).forEach(p=>{
27+
if(TRANSPORTERS[p]===null) {
28+
logger.warn(`Transporter module ${p} couldn't be loaded. Proceeding with 'null' transporter`);
29+
TRANSPORTERS[p] = require("../transporter/null");
30+
}
31+
});
32+
2533
var INSTANCES = {
2634

2735
};

0 commit comments

Comments
 (0)