UNPKG

1.38 kBJavaScriptView Raw
1
2require('ssl-root-cas').inject()
3const https = require('https')
4const querystring = require('querystring')
5
6module.exports = function rabbitConfig(settings) {
7
8 // Build up config object
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 // Define a connection config for jackrabbit
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 // Define a the SSL config for jackrabbit
30 const cas = https.globalAgent.options.ca || []
31
32 // Optionally add SSL cert to the registry
33 if (settings.sslKey) {
34 cas.push(settings.sslKey.replace(/\\n/g, '\n'))
35 }
36
37 const jackrabbitSsl = {
38 ca: cas,
39 }
40
41 // Define a connection object for amqp-stats
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}