diff --git a/index.js b/index.js index abdd8cd..444fcaf 100755 --- a/index.js +++ b/index.js @@ -6,13 +6,15 @@ var Base = require('db-migrate-base'); var Promise = require('bluebird'); var log; var type; +var fs = require('fs'); var MongodbDriver = Base.extend({ - init: function(connection, internals, mongoString) { + init: function(connection, internals, mongoString, options) { this._super(internals); this.connection = connection; this.connectionString = mongoString; + this.options = options; }, /** @@ -291,10 +293,10 @@ var MongodbDriver = Base.extend({ }; // Get a connection to mongo - this.connection.connect(this.connectionString, function(err, db) { + this.connection.connect(this.connectionString, this.options, function(err, db) { if(err) { - prCB(err); + return prCB(err); } // Callback function to return mongo records @@ -543,11 +545,19 @@ exports.connect = function(config, intern, callback) { extraParams.push('replicaSet=' + config.replicaSet); } + if (config.readPreference){ + extraParams.push('readPreference=' + config.readPreference); + } + if(extraParams.length > 0){ mongoString += '?' + extraParams.join('&'); } + if (config.options && config.options.sslCA) { + config.options.sslCA = Buffer.from(config.options.sslCA); + } + + db = config.db || new MongoClient(); - db = config.db || new MongoClient(new Server(host, port)); - callback(null, new MongodbDriver(db, intern, mongoString)); + callback(null, new MongodbDriver(db, intern, mongoString, config.options)); }; diff --git a/package-lock.json b/package-lock.json index 92ba38e..d3a8d2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "db-migrate-mongodb", - "version": "1.4.0", + "version": "1.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -35,7 +35,7 @@ "resolved": "https://registry.npmjs.org/db-migrate-base/-/db-migrate-base-1.3.3.tgz", "integrity": "sha512-gahWCfkAxNSEicwwE/D1yB3K23a3OBL2r3/+vteoijpgwkdBs1TtG6rc2N9g2Jt4iWtB0ijYnosYDhdAAMJg6g==", "requires": { - "bluebird": "3.5.0" + "bluebird": "^3.1.1" }, "dependencies": { "bluebird": { @@ -74,10 +74,10 @@ "integrity": "sha1-aVxQvdTi+1xdNwsJHziNNwfikac=", "dev": true, "requires": { - "graceful-fs": "3.0.11", - "inherits": "2.0.3", - "minimatch": "1.0.0", - "once": "1.4.0" + "graceful-fs": "^3.0.2", + "inherits": "2", + "minimatch": "^1.0.0", + "once": "^1.3.0" } }, "graceful-fs": { @@ -86,7 +86,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "natives": "1.1.0" + "natives": "^1.1.0" } }, "inherits": { @@ -111,8 +111,8 @@ "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } }, "moment": { @@ -135,8 +135,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", "requires": { - "bson": "1.0.4", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "natives": { @@ -151,7 +151,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "process-nextick-args": { @@ -164,13 +164,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "require_optional": { @@ -178,8 +178,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "resolve-from": { @@ -208,7 +208,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "util-deprecate": { @@ -222,9 +222,9 @@ "integrity": "sha1-zQESKnGk+oU4chmBgtQQ3mw9uKM=", "dev": true, "requires": { - "diff": "1.0.8", - "eyes": "0.1.8", - "glob": "4.0.6" + "diff": "~1.0.8", + "eyes": "~0.1.6", + "glob": "~4.0.6" } }, "wrappy": { diff --git a/package.json b/package.json index c2bd573..5e5ba11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "db-migrate-mongodb", - "version": "1.4.0", + "version": "1.5.0", "description": "mongodb driver for db-migrate", "main": "index.js", "scripts": {