@sap/cds
Version:
SAP Cloud Application Programming Model - CDS for Node.js
41 lines (38 loc) • 1.27 kB
JavaScript
const _checkRequiredCredentials = options => {
if (!options || !options.credentials || !options.credentials.amqp10) {
throw new Error(
'No amqp10 credentials found. Hint: You need to bind your app to a Message Queuing service or provide the necessary credentials through environment variables.'
)
}
}
module.exports = options => {
_checkRequiredCredentials(options)
const [host, port] = options.credentials.amqp10.url.replace(/^amqps:\/\//, '').split(':')
const amqp =
options.credentials.uaa && options.credentials.uaa.certificate
? {
uri: options.credentials.amqp10.url,
tls: {
key: Buffer.from(options.credentials.uaa.key),
cert: Buffer.from(options.credentials.uaa.certificate),
servername: host
},
sasl: {
mechanism: 'EXTERNAL'
}
}
: {
tls: {
servername: host,
host,
port: Number(port)
},
sasl: {
mechanism: 'PLAIN',
user: options.credentials.amqp10.auth.basic.userName,
password: options.credentials.amqp10.auth.basic.password
}
}
if (options.amqp) amqp.amqp = options.amqp
return amqp
}