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')
 | |
| };
 |