var BSON = require('bson'); var require_optional = require('require_optional'); try { // Attempt to grab the native BSON parser var BSONNative = require_optional('bson-ext'); // If we got the native parser, use it instead of the // Javascript one if(BSONNative) { BSON = BSONNative } } catch(err) {} module.exports = { MongoError: require('./lib/error') , Connection: require('./lib/connection/connection') , Server: require('./lib/topologies/server') , ReplSet: require('./lib/topologies/replset') , Mongos: require('./lib/topologies/mongos') , Logger: require('./lib/connection/logger') , Cursor: require('./lib/cursor') , ReadPreference: require('./lib/topologies/read_preference') , BSON: BSON // Raw operations , Query: require('./lib/connection/commands').Query // Auth mechanisms , MongoCR: require('./lib/auth/mongocr') , X509: require('./lib/auth/x509') , Plain: require('./lib/auth/plain') , GSSAPI: require('./lib/auth/gssapi') , ScramSHA1: require('./lib/auth/scram') }