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.
		
		
		
		
		
			
		
			
				
					78 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					78 lines
				
				2.6 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | // Core module
 | ||
|  | const core = require('./lib/core'); | ||
|  | const Instrumentation = require('./lib/apm'); | ||
|  | 
 | ||
|  | // Set up the connect function
 | ||
|  | const connect = require('./lib/mongo_client').connect; | ||
|  | 
 | ||
|  | // Expose error class
 | ||
|  | connect.MongoError = core.MongoError; | ||
|  | connect.MongoNetworkError = core.MongoNetworkError; | ||
|  | connect.MongoTimeoutError = core.MongoTimeoutError; | ||
|  | connect.MongoServerSelectionError = core.MongoServerSelectionError; | ||
|  | connect.MongoParseError = core.MongoParseError; | ||
|  | connect.MongoWriteConcernError = core.MongoWriteConcernError; | ||
|  | connect.MongoBulkWriteError = require('./lib/bulk/common').BulkWriteError; | ||
|  | connect.BulkWriteError = connect.MongoBulkWriteError; | ||
|  | 
 | ||
|  | // Expose server versions
 | ||
|  | connect.ServerApiVersion = core.ServerApiVersion; | ||
|  | 
 | ||
|  | // Actual driver classes exported
 | ||
|  | connect.Admin = require('./lib/admin'); | ||
|  | connect.MongoClient = require('./lib/mongo_client'); | ||
|  | connect.Db = require('./lib/db'); | ||
|  | connect.Collection = require('./lib/collection'); | ||
|  | connect.Server = require('./lib/topologies/server'); | ||
|  | connect.ReplSet = require('./lib/topologies/replset'); | ||
|  | connect.Mongos = require('./lib/topologies/mongos'); | ||
|  | connect.ReadPreference = core.ReadPreference; | ||
|  | connect.GridStore = require('./lib/gridfs/grid_store'); | ||
|  | connect.Chunk = require('./lib/gridfs/chunk'); | ||
|  | connect.Logger = core.Logger; | ||
|  | connect.AggregationCursor = require('./lib/aggregation_cursor'); | ||
|  | connect.CommandCursor = require('./lib/command_cursor'); | ||
|  | connect.Cursor = require('./lib/cursor'); | ||
|  | connect.GridFSBucket = require('./lib/gridfs-stream'); | ||
|  | // Exported to be used in tests not to be used anywhere else
 | ||
|  | connect.CoreServer = core.Server; | ||
|  | connect.CoreConnection = core.Connection; | ||
|  | 
 | ||
|  | // BSON types exported
 | ||
|  | connect.Binary = core.BSON.Binary; | ||
|  | connect.Code = core.BSON.Code; | ||
|  | connect.Map = core.BSON.Map; | ||
|  | connect.DBRef = core.BSON.DBRef; | ||
|  | connect.Double = core.BSON.Double; | ||
|  | connect.Int32 = core.BSON.Int32; | ||
|  | connect.Long = core.BSON.Long; | ||
|  | connect.MinKey = core.BSON.MinKey; | ||
|  | connect.MaxKey = core.BSON.MaxKey; | ||
|  | /** @deprecated Please use `ObjectId` */ | ||
|  | connect.ObjectID = core.BSON.ObjectID; | ||
|  | connect.ObjectId = core.BSON.ObjectID; | ||
|  | connect.Symbol = core.BSON.Symbol; | ||
|  | connect.Timestamp = core.BSON.Timestamp; | ||
|  | connect.BSONRegExp = core.BSON.BSONRegExp; | ||
|  | connect.Decimal128 = core.BSON.Decimal128; | ||
|  | 
 | ||
|  | // Add connect method
 | ||
|  | connect.connect = connect; | ||
|  | 
 | ||
|  | // Set up the instrumentation method
 | ||
|  | connect.instrument = function(options, callback) { | ||
|  |   if (typeof options === 'function') { | ||
|  |     callback = options; | ||
|  |     options = {}; | ||
|  |   } | ||
|  | 
 | ||
|  |   const instrumentation = new Instrumentation(); | ||
|  |   instrumentation.instrument(connect.MongoClient, callback); | ||
|  |   return instrumentation; | ||
|  | }; | ||
|  | 
 | ||
|  | // Set our exports to be the connect function
 | ||
|  | module.exports = connect; |