Redis URL Parse
Spread a Redis URL string into a configuration object.
Module usage
const redisUrlParse = // Defaults to localhost:6379/0//=> {host: 'localhost', port: 6379, database: '0', password: undefined} // But you can change databases by adding a path//=> {host: 'localhost', port: 6379, database: '1', password: undefined} // And change hosts//=> {host: 'example.com', port: 39143, database: '0', password: undefined} // And even add passwords//=> {host: 'example.com', port: 39143, database: '0', password: 'n9y25ah7'} // If you add a username, it's ignored//=> {host: 'example.com', port: 39143, database: '0', password: 'hunter2'} // If your password uses special characters, you may need to URI encode it//=> {host: 'example.com', port: 39143, database: '0', password: 'my:super!secure?password'}
Complete example
const redisUrlParse = require('redis-url-parse')
redisUrlParse(process.env.REDIS_URL) // redis://
//=> {host: 'localhost', port: 6379, database: '0', password: undefined}
Prior art
- parse-redis-url not maintained and has an extremely awkward interface
require('parse-redis-url')(null).parse(url)
- redis-url not maintained and requires
redis
as a requirement - redis-url-parser not maintained and only works if your URL has a password