JaneJeon/express-objection-starter

View on GitHub
lib/redis.js

Summary

Maintainability
A
0 mins
Test Coverage
const Redis = require('ioredis')
const config = require('../config')
const log = require('./logger')

const defaultInstance = new Redis(config.get('redis:url'))
const publisherInstance = new Redis(config.get('redis:url'))
const subscriberInstance = new Redis(config.get('redis:url'))

// ioredis eats up errors by default
defaultInstance.on('error', err => log.error(err, 'Redis error'))
publisherInstance.on('error', err => log.error(err, 'Redis error'))
subscriberInstance.on('error', err => log.error(err, 'Redis error'))

module.exports = defaultInstance
module.exports.pub = publisherInstance
module.exports.sub = subscriberInstance
module.exports.createClient = type => {
  switch (type) {
    case 'client':
      return publisherInstance
    case 'subscriber':
      return subscriberInstance
    default:
      return defaultInstance
  }
}