|
|
@ -7,6 +7,7 @@ const express = require('express'); |
|
|
|
const http = require('http'); |
|
|
|
const redis = require('redis'); |
|
|
|
const pg = require('pg'); |
|
|
|
const dbUrlToConfig = require('pg-connection-string').parse; |
|
|
|
const log = require('npmlog'); |
|
|
|
const url = require('url'); |
|
|
|
const uuid = require('uuid'); |
|
|
@ -23,43 +24,6 @@ dotenv.config({ |
|
|
|
|
|
|
|
log.level = process.env.LOG_LEVEL || 'verbose'; |
|
|
|
|
|
|
|
/** |
|
|
|
* @param {string} dbUrl |
|
|
|
* @return {Object.<string, any>} |
|
|
|
*/ |
|
|
|
const dbUrlToConfig = (dbUrl) => { |
|
|
|
if (!dbUrl) { |
|
|
|
return {}; |
|
|
|
} |
|
|
|
|
|
|
|
const params = url.parse(dbUrl, true); |
|
|
|
const config = {}; |
|
|
|
|
|
|
|
if (params.auth) { |
|
|
|
[config.user, config.password] = params.auth.split(':'); |
|
|
|
} |
|
|
|
|
|
|
|
if (params.hostname) { |
|
|
|
config.host = params.hostname; |
|
|
|
} |
|
|
|
|
|
|
|
if (params.port) { |
|
|
|
config.port = params.port; |
|
|
|
} |
|
|
|
|
|
|
|
if (params.pathname) { |
|
|
|
config.database = params.pathname.split('/')[1]; |
|
|
|
} |
|
|
|
|
|
|
|
const ssl = params.query && params.query.ssl; |
|
|
|
|
|
|
|
if (ssl && ssl === 'true' || ssl === '1') { |
|
|
|
config.ssl = true; |
|
|
|
} |
|
|
|
|
|
|
|
return config; |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
|
* @param {Object.<string, any>} defaultConfig |
|
|
|
* @param {string} redisUrl |
|
|
|