UNPKG

is-internet-available

Version:

Checks if internet is available using http2, node v8.4.0+ only

35 lines (30 loc) 830 B
const http2 = require('http2'); /** * @param {Object} [options] * @param {String} [options.authority] * @param {Number} [options.timeout] * @param {Object} [options.options] */ function isInternetAvailable(options = { authority: 'https://www.google.com', }) { if (!options.authority) options.authority = 'https://www.google.com'; return new Promise((resolve) => { const client = http2.connect(options.authority, options.options, () => { resolve(true); client.destroy(); }); if (typeof options.timeout === 'number') { client.setTimeout(options.timeout); client.on('timeout', () => { resolve(false); client.destroy(); }); } client.on('error', () => { resolve(false); client.destroy(); }); }); } module.exports = isInternetAvailable;