index.js
thoward37@gmail.com/push-test3-1791933214491 / index.js
@ fe5b370d
Download
Ladder Summary
- file The module exports a single **default async function `isUp(url)`** that checks whether a given website is reachable. It extracts the hostname from the provided URL, queries the `https://isitup.org/<hostname>.json` API via `got`, throws an error if the API reports an invalid domain, and otherwise returns `true` when the site’s status code indicates it is up (and `false` when it is down).
import got from 'got';
const statusCodes = {
isUp: 1,
isDown: 2,
invalidDomain: 3,
};
export default async function isUp(url) {
const hostname = encodeURIComponent((new URL(url)).hostname);
const {status_code: statusCode} = await got(`https://isitup.org/${hostname}.json`, {
headers: {
'user-agent': 'https://github.com/sindresorhus/is-up',
},
}).json();
if (statusCode === statusCodes.invalidDomain) {
throw new Error('Invalid domain');
}
return statusCode === statusCodes.isUp;
}