mongodb-build-info
TypeScript icon, indicating that this package has built-in type declarations

1.7.2 • Public • Published

mongodb-build-info

Helpful functions to figure out if a connection is on Atlas, Atlas Data Lake, Enterpise, or DocumentDB/CosmosDB.

Usage

const getBuildInfo = require('mongodb-build-info')
const MongoClient = require('mongodb').MongoClient

MongoClient.connect('localhost:27017', function (err, client) {
  const adminDB = client.db('test').admin()
  let buildInfo;

  adminDB.command({ buildInfo: 1 }, {}, parseBuildInfo)
  adminDB.command({ getCmdLineOpts: 1 }, {}, parseCmdLineOpts)

  function parseBuildInfo (err, res) {
    if (err) console.log('Command failed, ', err)
    buildInfo = res

    const { isDataLake, dlVersion } = getBuildInfo.getDataLake(buildInfo)
    const isEnterprise = getBuildInfo.isEnterprise(buildInfo)
  }

  function parseCmdLineOpts (err, res) {
    if (err) console.log('Command failed', err.message)

    const { isGenuine, serverName } = getGenuineMongoDB(buildInfo, res)
  }
})

API

getDataLake(buildInfo)

Returns an object:

isDataLake: boolean. dlVersion: version of dataLake, a string.

isEnterprise(buildInfo)

Returns a boolean.

isAtlas(uri)

Returns a boolean.

isLocalAtlas(count: (db: string, coll: string, query: Document) => Promise<number>)

Returns a Promise<boolean>.

isAtlasStream(uri)

Returns a boolean.

isLocalhost(uri)

Returns a boolean.

isDigitalOcean(uri)

Returns a boolean.

getGenuineMongoDB(buildInfo, cmdLineOpts)

Returns an object:

isGenuine: boolean. serverName: name of the server (mongoDB, cosmosDB, or documentDB).

getBuildEnv(buildInfo)

Returns an object:

serverOs: build's OS version (macOS, linux, windows etc.). serverArch: build's architecture (e.g. x86_64).

Installation

npm install -S mongodb-build-info

License

Apache-2.0

Package Sidebar

Install

npm i mongodb-build-info

Weekly Downloads

42,040

Version

1.7.2

License

Apache-2.0

Unpacked Size

37.9 kB

Total Files

11

Last publish

Collaborators

  • lerouxb
  • mabaasit
  • satyasinha
  • alena.khineika
  • mcasimir
  • rhysm
  • addaleax
  • gribnoysup
  • lrlna