Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
// setup for client side encryption
let AutoEncrypter;
try {
require.resolve('mongodb-client-encryption');
} catch (err) {
callback(
new MongoError(
'Auto-encryption requested, but the module is not installed. Please add `mongodb-client-encryption` as a dependency of your project'
)
);
return;
}
try {
AutoEncrypter = require('mongodb-client-encryption')(require('../../index')).AutoEncrypter;
} catch (err) {
callback(err);
return;
}
const mongoCryptOptions = Object.assign({}, options.autoEncryption);
topology.s.options.autoEncrypter = new AutoEncrypter(mongoClient, mongoCryptOptions);
topology.s.options.autoEncrypter.init(err => {
if (err) return callback(err, null);
callback(null, topology);
});
});
}
topology.connect(options, (err, newTopology) => {
if (err) {
topology.close(true);
return callback(err);
}
assignTopology(mongoClient, newTopology);
if (options.autoEncryption == null) {
callback(null, newTopology);
return;
}
// setup for client side encryption
let AutoEncrypter;
try {
AutoEncrypter = require('mongodb-client-encryption').AutoEncrypter;
} catch (err) {
callback(
new MongoError(
'Auto-encryption requested, but the module is not installed. Please add `mongodb-client-encryption` as a dependency of your project'
)
);
return;
}
const MongoClient = loadClient();
let connectionString;
if (options.autoEncryption.extraOptions && options.autoEncryption.extraOptions.mongocryptURI) {
connectionString = options.autoEncryption.extraOptions.mongocryptURI;
} else if (os.platform() === 'win32') {
connectionString = 'mongodb://localhost:27020/?serverSelectionTimeoutMS=1000';