I needed a way to detect internet access as part of a local Node.js script and it turns out to be a little convoluted as there is no built-in way to do that (which is not too surprising either). The gist is to try resolving the Google DNS (or any other, really but Google felt like a fine choice).

const { promisify } = require('util')
const dns = require('dns')
const resolve = promisify(dns.resolve)

const hasInternetAccess = async () => {
try {
await resolve('www.google.com')
return true
} catch {
return false
}
}

Read previous snippet: groom_dependencies()

Read next snippet: <IconLink />