@@ -23,7 +23,8 @@ var pluginDependencies = require('./pluginDependencies.js'),
2323 logDriverDb = log ( 'driver:db' ) ,
2424 exec = cp . exec ,
2525 spawn = cp . spawn ,
26- configextender = require ( '../api/configextender' ) ;
26+ configextender = require ( '../api/configextender' ) ,
27+ { ConnectionString } = require ( "mongodb-connection-string-url" ) ;
2728var pluginConfig = { } ;
2829
2930/**
@@ -1768,31 +1769,10 @@ var pluginManager = function pluginManager() {
17681769 * @param {string } db - database name
17691770 * @returns {string } modified connection string
17701771 **/
1771- this . replaceDatabaseString = function ( str , db ) {
1772- if ( ! db ) {
1773- db = "countly" ;
1774- }
1775- var i = str . lastIndexOf ( '/countly' ) ;
1776- var k = str . lastIndexOf ( '/' + db ) ;
1777- if ( i !== k && i !== - 1 && db ) {
1778- return str . substr ( 0 , i ) + "/" + db + str . substr ( i + ( '/countly' ) . length ) ;
1779- }
1780- else if ( i === - 1 && k === - 1 ) {
1781- //no db found in the string, we should insert the needed one
1782- var urlparts = str . split ( "://" ) ;
1783- if ( typeof urlparts [ 1 ] === "string" ) {
1784- var parts = urlparts [ 1 ] . split ( "/" ) ;
1785- if ( parts . length === 1 ) {
1786- parts [ 0 ] += "/" + db ;
1787- }
1788- else {
1789- parts [ parts . length - 1 ] = db + parts [ parts . length - 1 ] ;
1790- }
1791- urlparts [ 1 ] = parts . join ( "/" ) ;
1792- }
1793- return urlparts . join ( "://" ) ;
1794- }
1795- return str ;
1772+ this . replaceDatabaseString = function ( str , db = "countly" ) {
1773+ const connectionString = new ConnectionString ( str ) ;
1774+ connectionString . pathname = "/" + db ;
1775+ return connectionString . toString ( ) ;
17961776 } ;
17971777
17981778 this . connectToAllDatabases = async ( ) => {
0 commit comments