UNPKG

reachy-reachable-url

Version:

Drop in replacement for reachable-url in deno env using reachy-url

65 lines (64 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: ()=>_default }); const _url = require("url"); const _http = _interopRequireDefault(require("http")); const _https = _interopRequireDefault(require("https")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const isReachableUrl = (url, timeout = 2000, requestOptions)=>{ return new Promise((resolve, reject)=>{ const { host , protocol , pathname } = (0, _url.parse)(url); if (!host) { reject({ statusCode: 500 }); } const isHttps = protocol === "https:"; const options = { host, timeout, method: "HEAD", path: pathname, port: isHttps ? 443 : 80, ...requestOptions }; const network = isHttps ? _https.default : _http.default; const req = network.request(options, (res)=>{ const { headers , } = res; const statusCode = res.statusCode ?? 404; const isStatusOk = statusCode < 400; if (isStatusOk) { return resolve({ statusCode: res.statusCode, headers }); } resolve({ statusCode: 500 }); }); req.end(); req.on("timeout", ()=>{ resolve({ statusCode: 500 }); }); req.on("error", (err)=>{ resolve({ statusCode: 500 }); }); }); }; const _default = isReachableUrl; isReachableUrl.isReachable = ({ statusCode })=>statusCode >= 200 && statusCode < 400; module.exports = exports.default; /*#__PURE__*/ /*#__PURE__*/