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.
31 lines
748 B
31 lines
748 B
'use strict'; |
|
|
|
const getConstructorName = require('../getConstructorName'); |
|
|
|
/** |
|
* @typedef { import('mongodb').TopologyDescription } TopologyDescription |
|
*/ |
|
|
|
/** |
|
* Checks if topologyDescription contains servers connected to an atlas instance |
|
* |
|
* @param {TopologyDescription} topologyDescription |
|
* @returns {boolean} |
|
*/ |
|
module.exports = function isAtlas(topologyDescription) { |
|
if (getConstructorName(topologyDescription) !== 'TopologyDescription') { |
|
return false; |
|
} |
|
|
|
if (topologyDescription.servers.size === 0) { |
|
return false; |
|
} |
|
|
|
for (const server of topologyDescription.servers.values()) { |
|
if (server.host.endsWith('.mongodb.net') === false || server.port !== 27017) { |
|
return false; |
|
} |
|
} |
|
|
|
return true; |
|
};
|
|
|