Skip to content

Commit 2d6252d

Browse files
committed
https.get
1 parent 87eef10 commit 2d6252d

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

backend/routes/version.js

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import express from "express";
22
import { debug, express as logger } from "../logger.js";
33
import pjson from "../package.json" with { type: "json" };
4+
import https from "node:https";
5+
import { ProxyAgent } from "proxy-agent";
46

57
const router = express.Router({
68
caseSensitive: true,
@@ -24,15 +26,37 @@ router
2426
*/
2527
.get(async (req, res, next) => {
2628
try {
27-
const response = await fetch(
28-
"https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest"
29-
);
29+
const agent = new ProxyAgent();
30+
const url = "https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest";
3031

31-
if (!response.ok) {
32-
throw new Error(`GitHub API returned ${response.status}`);
33-
}
32+
const data = await new Promise((resolve, reject) => {
33+
https
34+
.get(url, { agent }, (response) => {
35+
if (response.statusCode !== 200) {
36+
reject(new Error(`GitHub API returned ${response.statusCode}`));
37+
return;
38+
}
39+
40+
response.setEncoding("utf8");
41+
let raw_data = "";
42+
43+
response.on("data", (chunk) => {
44+
raw_data += chunk;
45+
});
46+
47+
response.on("end", () => {
48+
try {
49+
resolve(JSON.parse(raw_data));
50+
} catch (err) {
51+
reject(err);
52+
}
53+
});
54+
})
55+
.on("error", (err) => {
56+
reject(err);
57+
});
58+
});
3459

35-
const data = await response.json();
3660
const latestVersion = data.tag_name;
3761

3862
const version = pjson.version.split("-").shift().split(".");

0 commit comments

Comments
 (0)