in conductor.js [52:77]
function createRedisClient (p) {
const client = require(/* webpackIgnore: true */ 'redis').createClient(p.s.redis.uri, p.s.redis.ca ? { tls: { ca: Buffer.from(p.s.redis.ca, 'base64').toString('binary') } } : {})
const noop = () => { }
let handler = noop
client.on('error', error => handler(error))
require(/* webpackIgnore: true */ 'redis-commands').list.forEach(f => {
client[`${f}Async`] = function () {
let failed = false
return new Promise((resolve, reject) => {
handler = error => {
handler = noop
failed = true
reject(error)
}
client[f](...arguments, (error, result) => {
handler = noop
return error ? reject(error) : resolve(result)
})
}).catch(error => {
if (failed) client.end(true)
return Promise.reject(error)
})
}
})
return client
}