isAtlas.js 748 B

12345678910111213141516171819202122232425262728293031
  1. 'use strict';
  2. const getConstructorName = require('../getConstructorName');
  3. /**
  4. * @typedef { import('mongodb').TopologyDescription } TopologyDescription
  5. */
  6. /**
  7. * Checks if topologyDescription contains servers connected to an atlas instance
  8. *
  9. * @param {TopologyDescription} topologyDescription
  10. * @returns {boolean}
  11. */
  12. module.exports = function isAtlas(topologyDescription) {
  13. if (getConstructorName(topologyDescription) !== 'TopologyDescription') {
  14. return false;
  15. }
  16. if (topologyDescription.servers.size === 0) {
  17. return false;
  18. }
  19. for (const server of topologyDescription.servers.values()) {
  20. if (server.host.endsWith('.mongodb.net') === false || server.port !== 27017) {
  21. return false;
  22. }
  23. }
  24. return true;
  25. };