You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
5 years ago
|
'use strict';
|
||
|
|
||
|
var BSON = require('bson');
|
||
|
var require_optional = require('require_optional');
|
||
|
const EJSON = require('./lib/utils').retrieveEJSON();
|
||
|
|
||
|
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) {} // eslint-disable-line
|
||
|
|
||
|
module.exports = {
|
||
|
// Errors
|
||
|
MongoError: require('./lib/error').MongoError,
|
||
|
MongoNetworkError: require('./lib/error').MongoNetworkError,
|
||
|
MongoParseError: require('./lib/error').MongoParseError,
|
||
|
MongoTimeoutError: require('./lib/error').MongoTimeoutError,
|
||
|
MongoWriteConcernError: require('./lib/error').MongoWriteConcernError,
|
||
|
mongoErrorContextSymbol: require('./lib/error').mongoErrorContextSymbol,
|
||
|
// Core
|
||
|
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'),
|
||
|
Sessions: require('./lib/sessions'),
|
||
|
BSON: BSON,
|
||
|
EJSON: EJSON,
|
||
|
Topology: require('./lib/sdam/topology'),
|
||
|
// Raw operations
|
||
|
Query: require('./lib/connection/commands').Query,
|
||
|
// Auth mechanisms
|
||
|
MongoCredentials: require('./lib/auth/mongo_credentials').MongoCredentials,
|
||
|
defaultAuthProviders: require('./lib/auth/defaultAuthProviders').defaultAuthProviders,
|
||
|
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').ScramSHA1,
|
||
|
ScramSHA256: require('./lib/auth/scram').ScramSHA256,
|
||
|
// Utilities
|
||
|
parseConnectionString: require('./lib/uri_parser')
|
||
|
};
|