diff --git a/src/index.ts b/src/index.ts index 380b082..5a2c1a4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -37,6 +37,7 @@ import { Command } from "commander"; import semver from "semver"; import { execSync } from "child_process"; import { tmpdir } from "os"; +import { request } from "http"; const GetConfig = async () => { if (fs.existsSync(path.join(process.cwd(), ".rczrc"))) { @@ -105,6 +106,21 @@ const GetPostReleaseScript = async () => { return null; } }; +const isOnline = () => { + return new Promise((resolve) => { + request({ method: "GET", hostname: "icanhazip.com" }, (res) => { + res.on("data", () => {}); + + res.on("end", () => { + resolve(res.statusCode === 200); + }); + }) + .on("error", () => { + resolve(false); + }) + .end(); + }); +}; const CheckForUpdates = async () => { const updateText = @@ -119,8 +135,7 @@ const CheckForUpdates = async () => { // even if cached once in a while it should get newest data if ((cachedVersion && Math.random() < 0.1) || cachedVersion === null) { - const isOnline = (await fetch("https://icanhazip.com")).status === 200; - if (!isOnline) return; + if (!(await isOnline())) return; const serverVersion = execSync("npm show @resultium/rcz version") .toString()