1 |
|
2 | 'use strict';
|
3 | const arrify = require('arrify');
|
4 | const pAny = require('p-any');
|
5 | const prependHttp = require('prepend-http');
|
6 | const URL = require('url-parse');
|
7 |
|
8 | module.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 | };
|