1 |
|
2 | require('ssl-root-cas').inject()
|
3 | const https = require('https')
|
4 | const querystring = require('querystring')
|
5 |
|
6 | module.exports = function rabbitConfig(settings) {
|
7 |
|
8 |
|
9 | const config = {
|
10 | hostname: settings.hostname || 'localhost',
|
11 | port: settings.port || '5672',
|
12 | restPort: settings.restPort || '15672',
|
13 | username: settings.username || 'guest',
|
14 | password: settings.password || 'guest',
|
15 | vhost: settings.vhost || '/',
|
16 | protocol: settings.protocol || 'amqp',
|
17 | }
|
18 |
|
19 |
|
20 | const jackrabbitConnection = {
|
21 | username: config.username,
|
22 | password: config.password,
|
23 | hostname: config.hostname,
|
24 | port: config.port,
|
25 | protocol: config.protocol,
|
26 | vhost: querystring.escape(config.vhost),
|
27 | }
|
28 |
|
29 |
|
30 | const cas = https.globalAgent.options.ca || []
|
31 |
|
32 |
|
33 | if (settings.sslKey) {
|
34 | cas.push(settings.sslKey.replace(/\\n/g, '\n'))
|
35 | }
|
36 |
|
37 | const jackrabbitSsl = {
|
38 | ca: cas,
|
39 | }
|
40 |
|
41 |
|
42 | const amqpStats = {
|
43 | username: config.username,
|
44 | password: config.password,
|
45 | hostname: `${config.hostname}:${config.restPort}`,
|
46 | protocol: (config.protocol === 'amqps') ? 'https' : 'http',
|
47 | }
|
48 |
|
49 | return {
|
50 | jackrabbitConnection,
|
51 | jackrabbitSsl,
|
52 | amqpStats,
|
53 | }
|
54 | }
|