You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
748 B
JavaScript
32 lines
748 B
JavaScript
11 months ago
|
'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;
|
||
|
};
|