UNPKG

630 BJavaScriptView Raw
1/* eslint-env browser */
2'use strict';
3const arrify = require('arrify');
4const pAny = require('p-any');
5const prependHttp = require('prepend-http');
6const URL = require('url-parse');
7
8module.exports = async hosts => {
9 return pAny(arrify(hosts).map(url => {
10 return new Promise(resolve => {
11 let {hostname, protocol = '', port} = new URL(prependHttp(url));
12 port = port ? `:${port}` : '';
13
14 const image = new Image();
15 image.addEventListener('load', () => resolve(true));
16 image.addEventListener('error', () => resolve(false));
17 image.src = `${protocol}//${hostname}${port}/favicon.ico?${Date.now()}`;
18 });
19 }));
20};