npmtest-is-reachable (v0.0.1)

Code coverage report for node-npmtest-is-reachable/node_modules/is-reachable/browser.js

Statements: 29.41% (5 / 17)      Branches: 0% (0 / 4)      Functions: 100% (0 / 0)      Lines: 33.33% (5 / 15)      Ignored: none     

All files » node-npmtest-is-reachable/node_modules/is-reachable/ » browser.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25    1 1 1 1   1                                  
/* eslint-env browser */
'use strict';
const arrify = require('arrify');
const pAny = require('p-any');
const prependHttp = require('prepend-http');
const URL = require('url-parse');
 
module.exports = hosts => {
	return pAny(arrify(hosts).map(url => {
		return new Promise(resolve => {
			url = new URL(prependHttp(url));
 
			const hostname = url.hostname;
			const protocol = url.protocol || '';
			const port = url.port ? `:${url.port}` : '';
 
			const img = new Image();
			img.onload = () => resolve(true);
			img.onerror = () => resolve(false);
			img.src = `${protocol}//${hostname}${port}/favicon.ico?${Date.now()}`;
		});
	}));
};