@@ -5,97 +5,97 @@ import https from "node:https";
55import { ProxyAgent } from "proxy-agent" ;
66
77const router = express . Router ( {
8- caseSensitive : true ,
9- strict : true ,
10- mergeParams : true ,
8+ caseSensitive : true ,
9+ strict : true ,
10+ mergeParams : true ,
1111} ) ;
1212
1313/**
1414 * /api/version/check
1515 */
1616router
17- . route ( "/check" )
18- . options ( ( _ , res ) => {
19- res . sendStatus ( 204 ) ;
20- } )
17+ . route ( "/check" )
18+ . options ( ( _ , res ) => {
19+ res . sendStatus ( 204 ) ;
20+ } )
2121
22- /**
23- * GET /api/version/check
24- *
25- * Check for available updates
26- */
27- . get ( async ( req , res , next ) => {
28- try {
29- const agent = new ProxyAgent ( ) ;
30- const url = "https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest" ;
22+ /**
23+ * GET /api/version/check
24+ *
25+ * Check for available updates
26+ */
27+ . get ( async ( req , res , next ) => {
28+ try {
29+ const agent = new ProxyAgent ( ) ;
30+ const url = "https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest" ;
3131
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- }
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+ }
3939
40- response . setEncoding ( "utf8" ) ;
41- let raw_data = "" ;
40+ response . setEncoding ( "utf8" ) ;
41+ let raw_data = "" ;
4242
43- response . on ( "data" , ( chunk ) => {
44- raw_data += chunk ;
45- } ) ;
43+ response . on ( "data" , ( chunk ) => {
44+ raw_data += chunk ;
45+ } ) ;
4646
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- } ) ;
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+ } ) ;
5959
60- const latestVersion = data . tag_name ;
60+ const latestVersion = data . tag_name ;
6161
62- const version = pjson . version . split ( "-" ) . shift ( ) . split ( "." ) ;
63- const currentVersion = `v${ version [ 0 ] } .${ version [ 1 ] } .${ version [ 2 ] } ` ;
62+ const version = pjson . version . split ( "-" ) . shift ( ) . split ( "." ) ;
63+ const currentVersion = `v${ version [ 0 ] } .${ version [ 1 ] } .${ version [ 2 ] } ` ;
6464
65- res . status ( 200 ) . send ( {
66- current : currentVersion ,
67- latest : latestVersion ,
68- updateAvailable : compareVersions ( currentVersion , latestVersion ) ,
69- } ) ;
70- } catch ( error ) {
71- debug ( logger , `${ req . method . toUpperCase ( ) } ${ req . path } : ${ error } ` ) ;
72- res . status ( 200 ) . send ( {
73- current : null ,
74- latest : null ,
75- updateAvailable : false ,
76- } ) ;
77- }
78- } ) ;
65+ res . status ( 200 ) . send ( {
66+ current : currentVersion ,
67+ latest : latestVersion ,
68+ updateAvailable : compareVersions ( currentVersion , latestVersion ) ,
69+ } ) ;
70+ } catch ( error ) {
71+ debug ( logger , `${ req . method . toUpperCase ( ) } ${ req . path } : ${ error } ` ) ;
72+ res . status ( 200 ) . send ( {
73+ current : null ,
74+ latest : null ,
75+ updateAvailable : false ,
76+ } ) ;
77+ }
78+ } ) ;
7979
8080/**
8181 * Compare two version strings
8282 *
8383 */
8484function compareVersions ( current , latest ) {
85- const cleanCurrent = current . replace ( / ^ v / , "" ) ;
86- const cleanLatest = latest . replace ( / ^ v / , "" ) ;
85+ const cleanCurrent = current . replace ( / ^ v / , "" ) ;
86+ const cleanLatest = latest . replace ( / ^ v / , "" ) ;
8787
88- const currentParts = cleanCurrent . split ( "." ) . map ( Number ) ;
89- const latestParts = cleanLatest . split ( "." ) . map ( Number ) ;
88+ const currentParts = cleanCurrent . split ( "." ) . map ( Number ) ;
89+ const latestParts = cleanLatest . split ( "." ) . map ( Number ) ;
9090
91- for ( let i = 0 ; i < Math . max ( currentParts . length , latestParts . length ) ; i ++ ) {
92- const curr = currentParts [ i ] || 0 ;
93- const lat = latestParts [ i ] || 0 ;
91+ for ( let i = 0 ; i < Math . max ( currentParts . length , latestParts . length ) ; i ++ ) {
92+ const curr = currentParts [ i ] || 0 ;
93+ const lat = latestParts [ i ] || 0 ;
9494
95- if ( lat > curr ) return true ;
96- if ( lat < curr ) return false ;
97- }
98- return false ;
95+ if ( lat > curr ) return true ;
96+ if ( lat < curr ) return false ;
97+ }
98+ return false ;
9999}
100100
101101export default router ;
0 commit comments