index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. let BSON = require('bson');
  3. const require_optional = require('optional-require')(require);
  4. const EJSON = require('./utils').retrieveEJSON();
  5. try {
  6. // Ensure you always wrap an optional require in the try block NODE-3199
  7. // Attempt to grab the native BSON parser
  8. const BSONNative = require_optional('bson-ext');
  9. // If we got the native parser, use it instead of the
  10. // Javascript one
  11. if (BSONNative) {
  12. BSON = BSONNative;
  13. }
  14. } catch (err) {} // eslint-disable-line
  15. /** An enumeration of valid server API versions */
  16. const ServerApiVersion = Object.freeze({
  17. v1: '1'
  18. });
  19. const ValidServerApiVersions = Object.keys(ServerApiVersion).map(key => ServerApiVersion[key]);
  20. module.exports = {
  21. // Versioned API
  22. ServerApiVersion,
  23. ValidServerApiVersions,
  24. // Errors
  25. MongoError: require('./error').MongoError,
  26. MongoNetworkError: require('./error').MongoNetworkError,
  27. MongoParseError: require('./error').MongoParseError,
  28. MongoTimeoutError: require('./error').MongoTimeoutError,
  29. MongoServerSelectionError: require('./error').MongoServerSelectionError,
  30. MongoWriteConcernError: require('./error').MongoWriteConcernError,
  31. // Core
  32. Connection: require('./connection/connection'),
  33. Server: require('./topologies/server'),
  34. ReplSet: require('./topologies/replset'),
  35. Mongos: require('./topologies/mongos'),
  36. Logger: require('./connection/logger'),
  37. Cursor: require('./cursor').CoreCursor,
  38. ReadPreference: require('./topologies/read_preference'),
  39. Sessions: require('./sessions'),
  40. BSON: BSON,
  41. EJSON: EJSON,
  42. Topology: require('./sdam/topology').Topology,
  43. // Raw operations
  44. Query: require('./connection/commands').Query,
  45. // Auth mechanisms
  46. MongoCredentials: require('./auth/mongo_credentials').MongoCredentials,
  47. defaultAuthProviders: require('./auth/defaultAuthProviders').defaultAuthProviders,
  48. MongoCR: require('./auth/mongocr'),
  49. X509: require('./auth/x509'),
  50. Plain: require('./auth/plain'),
  51. GSSAPI: require('./auth/gssapi'),
  52. ScramSHA1: require('./auth/scram').ScramSHA1,
  53. ScramSHA256: require('./auth/scram').ScramSHA256,
  54. // Utilities
  55. parseConnectionString: require('./uri_parser')
  56. };