You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							61 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							61 lines
						
					
					
						
							2.1 KiB
						
					
					
				'use strict';
 | 
						|
 | 
						|
let BSON = require('bson');
 | 
						|
const require_optional = require('optional-require')(require);
 | 
						|
const EJSON = require('./utils').retrieveEJSON();
 | 
						|
 | 
						|
try {
 | 
						|
  // Ensure you always wrap an optional require in the try block NODE-3199
 | 
						|
  // Attempt to grab the native BSON parser
 | 
						|
  const 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
 | 
						|
 | 
						|
/** An enumeration of valid server API versions */
 | 
						|
const ServerApiVersion = Object.freeze({
 | 
						|
  v1: '1'
 | 
						|
});
 | 
						|
const ValidServerApiVersions = Object.keys(ServerApiVersion).map(key => ServerApiVersion[key]);
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  // Versioned API
 | 
						|
  ServerApiVersion,
 | 
						|
  ValidServerApiVersions,
 | 
						|
  // Errors
 | 
						|
  MongoError: require('./error').MongoError,
 | 
						|
  MongoNetworkError: require('./error').MongoNetworkError,
 | 
						|
  MongoParseError: require('./error').MongoParseError,
 | 
						|
  MongoTimeoutError: require('./error').MongoTimeoutError,
 | 
						|
  MongoServerSelectionError: require('./error').MongoServerSelectionError,
 | 
						|
  MongoWriteConcernError: require('./error').MongoWriteConcernError,
 | 
						|
  // Core
 | 
						|
  Connection: require('./connection/connection'),
 | 
						|
  Server: require('./topologies/server'),
 | 
						|
  ReplSet: require('./topologies/replset'),
 | 
						|
  Mongos: require('./topologies/mongos'),
 | 
						|
  Logger: require('./connection/logger'),
 | 
						|
  Cursor: require('./cursor').CoreCursor,
 | 
						|
  ReadPreference: require('./topologies/read_preference'),
 | 
						|
  Sessions: require('./sessions'),
 | 
						|
  BSON: BSON,
 | 
						|
  EJSON: EJSON,
 | 
						|
  Topology: require('./sdam/topology').Topology,
 | 
						|
  // Raw operations
 | 
						|
  Query: require('./connection/commands').Query,
 | 
						|
  // Auth mechanisms
 | 
						|
  MongoCredentials: require('./auth/mongo_credentials').MongoCredentials,
 | 
						|
  defaultAuthProviders: require('./auth/defaultAuthProviders').defaultAuthProviders,
 | 
						|
  MongoCR: require('./auth/mongocr'),
 | 
						|
  X509: require('./auth/x509'),
 | 
						|
  Plain: require('./auth/plain'),
 | 
						|
  GSSAPI: require('./auth/gssapi'),
 | 
						|
  ScramSHA1: require('./auth/scram').ScramSHA1,
 | 
						|
  ScramSHA256: require('./auth/scram').ScramSHA256,
 | 
						|
  // Utilities
 | 
						|
  parseConnectionString: require('./uri_parser')
 | 
						|
};
 |