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